{"openapi":"3.1.0","info":{"title":"Superwall API V2","version":"2.0.0","description":"Superwall V2 API - Scope-based authentication with organization API keys"},"paths":{"/v2/projects":{"get":{"tags":["Projects V2"],"operationId":"projectsv2.listProjects","parameters":[{"name":"limit","in":"query","schema":{"allOf":[{"$ref":"#/components/schemas/NumberFromString"}],"description":"Maximum number of items to return (1-100, default: 10)"},"required":false,"description":"Maximum number of items to return (1-100, default: 10)"},{"name":"starting_after","in":"query","schema":{"type":"string","description":"a string to be decoded into a number"},"required":false,"description":"a string to be decoded into a number"},{"name":"ending_before","in":"query","schema":{"type":"string","description":"a string to be decoded into a number"},"required":false,"description":"a string to be decoded into a number"},{"name":"archived","in":"query","schema":{"allOf":[{"$ref":"#/components/schemas/BooleanFromString"}],"description":"Include archived items (default: false)"},"required":false,"description":"Include archived items (default: false)"},{"name":"organization_id","in":"query","schema":{"type":"string","description":"a string to be decoded into a number"},"required":false,"description":"a string to be decoded into a number"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","url","has_more","data"],"properties":{"object":{"type":"string","enum":["list"],"description":"Object type, always `list`"},"url":{"type":"string","enum":["/v2/projects"],"description":"API endpoint URL for this list"},"has_more":{"type":"boolean","description":"Whether there are more results available beyond this page"},"data":{"type":"array","items":{"type":"object","required":["id","object","name","organization_id","applications","created_at","updated_at","archived","metadata"],"properties":{"id":{"type":"string","description":"Unique identifier for the project"},"object":{"type":"string","enum":["project"],"description":"Object type, always `project`"},"name":{"type":"string","description":"Display name of the project"},"organization_id":{"type":"integer","description":"ID of the organization that owns this project","title":"int"},"applications":{"type":"array","items":{"type":"object","required":["id","project_id","platform","is_stripe_application","project_has_stripe_application","name","public_api_key","created_at","updated_at","integrated","bundle_id","app_id","revenue_cat_public_api_key","apple_url_scheme","notification_redirect_url","team_id","android_app_fingerprints","support_url","support_email","application_icon","redeemable_on_desktop","web_2_app_post_purchase_behavior","web_2_app_disable_customer_emails","apple_small_business_start_date","apple_small_business_end_date","globally_disabled","slug","archived_at","features_enabled","apple_search_ads_configured","language_and_framework"],"properties":{"id":{"type":"string","description":"Application ID"},"project_id":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"Project ID this application belongs to, or null for standalone applications"},"platform":{"anyOf":[{"type":"string","enum":["ios"],"description":"iOS (App Store)"},{"type":"string","enum":["android"],"description":"Android (Google Play)"},{"type":"string","enum":["flutter"],"description":"Flutter (legacy, read-only - cannot be created via API)"},{"type":"string","enum":["react_native"],"description":"React Native (legacy, read-only - cannot be created via API)"},{"type":"string","enum":["web"],"description":"Web (Stripe)"},{"type":"string","enum":["promotional"],"description":"Promotional offers application (read-only - cannot be created via API)"},{"type":"string","enum":["webapp"],"description":"Web App (Web SDK) (read-only - cannot be created via API)"}],"description":"Platform of the application"},"is_stripe_application":{"type":"boolean","description":"Whether this application is the legacy Stripe application type"},"project_has_stripe_application":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether this application's project contains a legacy Stripe application, or null for standalone applications"},"name":{"type":"string","description":"Display name of the application"},"public_api_key":{"type":"string","description":"Public API key for SDK integration"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the application was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the application was last updated"},"integrated":{"type":"boolean","description":"Whether the application has been integrated with the SDK"},"bundle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bundle identifier (iOS) or package name (Android)"},"app_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"App Store or Play Store app ID"},"revenue_cat_public_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"RevenueCat public API key"},"apple_url_scheme":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"URL scheme used for deep links on mobile"},"notification_redirect_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Notification redirect URL for iOS applications"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple Developer Team ID for iOS applications"},"android_app_fingerprints":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Android app signing certificate fingerprints"},"support_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Support URL shown during web checkout redemption"},"support_email":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Reply-to support email for web checkout emails"},"application_icon":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Custom application icon URL shown on management pages and in emails"},"redeemable_on_desktop":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether web purchases can be redeemed on desktop devices"},"web_2_app_post_purchase_behavior":{"anyOf":[{"anyOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["redeem"]}},"additionalProperties":false},{"type":"object","required":["type","url"],"properties":{"type":{"type":"string","enum":["redirect"]},"url":{"type":"string"}},"additionalProperties":false}],"description":"Behavior after a web-to-app purchase"},{"type":"null"}],"description":"Behavior after a web-to-app purchase"},"web_2_app_disable_customer_emails":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether Superwall post-purchase customer emails are disabled"},"apple_small_business_start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple Small Business Program start date"},"apple_small_business_end_date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple Small Business Program end date"},"globally_disabled":{"type":"boolean","description":"Whether all paywalls are disabled for this application"},"slug":{"type":"string","description":"URL-safe identifier for the application"},"archived_at":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 timestamp of when the application was archived, or null if active"},"features_enabled":{"type":"array","items":{"type":"string"},"description":"List of enabled feature flags for the application"},"apple_search_ads_configured":{"type":"boolean","description":"Whether Apple Search Ads is configured for this application"},"language_and_framework":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Detected language/framework for the application (e.g. `flutter`, `react-native`), sourced from marketing metadata, or null if unknown"},"sdk_framework":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Exact SDK framework selected for this application platform (e.g. `expo`, `swiftui`), or null if unknown. Optional for compatibility with older API deployments."}},"additionalProperties":false},"description":"List of applications in this project"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the project was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the project was last updated"},"archived":{"type":"boolean","description":"Whether the project is archived"},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500}}},"additionalProperties":false},"description":"List of results"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns a list of projects for the organization. Supports pagination and filtering by archived status. Requires projects:read scope.","summary":"List Projects"},"post":{"tags":["Projects V2"],"operationId":"projectsv2.createProject","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","name","organization_id","applications","created_at","updated_at","archived","metadata"],"properties":{"id":{"type":"string","description":"Unique identifier for the project"},"object":{"type":"string","enum":["project"],"description":"Object type, always `project`"},"name":{"type":"string","description":"Display name of the project"},"organization_id":{"type":"integer","description":"ID of the organization that owns this project","title":"int"},"applications":{"type":"array","items":{"type":"object","required":["id","project_id","platform","is_stripe_application","project_has_stripe_application","name","public_api_key","created_at","updated_at","integrated","bundle_id","app_id","revenue_cat_public_api_key","apple_url_scheme","notification_redirect_url","team_id","android_app_fingerprints","support_url","support_email","application_icon","redeemable_on_desktop","web_2_app_post_purchase_behavior","web_2_app_disable_customer_emails","apple_small_business_start_date","apple_small_business_end_date","globally_disabled","slug","archived_at","features_enabled","apple_search_ads_configured","language_and_framework"],"properties":{"id":{"type":"string","description":"Application ID"},"project_id":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"Project ID this application belongs to, or null for standalone applications"},"platform":{"anyOf":[{"type":"string","enum":["ios"],"description":"iOS (App Store)"},{"type":"string","enum":["android"],"description":"Android (Google Play)"},{"type":"string","enum":["flutter"],"description":"Flutter (legacy, read-only - cannot be created via API)"},{"type":"string","enum":["react_native"],"description":"React Native (legacy, read-only - cannot be created via API)"},{"type":"string","enum":["web"],"description":"Web (Stripe)"},{"type":"string","enum":["promotional"],"description":"Promotional offers application (read-only - cannot be created via API)"},{"type":"string","enum":["webapp"],"description":"Web App (Web SDK) (read-only - cannot be created via API)"}],"description":"Platform of the application"},"is_stripe_application":{"type":"boolean","description":"Whether this application is the legacy Stripe application type"},"project_has_stripe_application":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether this application's project contains a legacy Stripe application, or null for standalone applications"},"name":{"type":"string","description":"Display name of the application"},"public_api_key":{"type":"string","description":"Public API key for SDK integration"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the application was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the application was last updated"},"integrated":{"type":"boolean","description":"Whether the application has been integrated with the SDK"},"bundle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bundle identifier (iOS) or package name (Android)"},"app_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"App Store or Play Store app ID"},"revenue_cat_public_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"RevenueCat public API key"},"apple_url_scheme":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"URL scheme used for deep links on mobile"},"notification_redirect_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Notification redirect URL for iOS applications"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple Developer Team ID for iOS applications"},"android_app_fingerprints":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Android app signing certificate fingerprints"},"support_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Support URL shown during web checkout redemption"},"support_email":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Reply-to support email for web checkout emails"},"application_icon":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Custom application icon URL shown on management pages and in emails"},"redeemable_on_desktop":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether web purchases can be redeemed on desktop devices"},"web_2_app_post_purchase_behavior":{"anyOf":[{"anyOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["redeem"]}},"additionalProperties":false},{"type":"object","required":["type","url"],"properties":{"type":{"type":"string","enum":["redirect"]},"url":{"type":"string"}},"additionalProperties":false}],"description":"Behavior after a web-to-app purchase"},{"type":"null"}],"description":"Behavior after a web-to-app purchase"},"web_2_app_disable_customer_emails":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether Superwall post-purchase customer emails are disabled"},"apple_small_business_start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple Small Business Program start date"},"apple_small_business_end_date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple Small Business Program end date"},"globally_disabled":{"type":"boolean","description":"Whether all paywalls are disabled for this application"},"slug":{"type":"string","description":"URL-safe identifier for the application"},"archived_at":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 timestamp of when the application was archived, or null if active"},"features_enabled":{"type":"array","items":{"type":"string"},"description":"List of enabled feature flags for the application"},"apple_search_ads_configured":{"type":"boolean","description":"Whether Apple Search Ads is configured for this application"},"language_and_framework":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Detected language/framework for the application (e.g. `flutter`, `react-native`), sourced from marketing metadata, or null if unknown"},"sdk_framework":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Exact SDK framework selected for this application platform (e.g. `expo`, `swiftui`), or null if unknown. Optional for compatibility with older API deployments."}},"additionalProperties":false},"description":"List of applications in this project"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the project was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the project was last updated"},"archived":{"type":"boolean","description":"Whether the project is archived"},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Creates a new project in the organization. Requires projects:write scope.","summary":"Create Project","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["name","organization_id"],"properties":{"name":{"type":"string","description":"Display name of the project","title":"maxLength(255)","minLength":1,"maxLength":255},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500},"description":"Arbitrary key-value metadata to attach to the project"},"organization_id":{"type":"integer","description":"Organization ID to create the project in","title":"int"}},"additionalProperties":false}}},"required":true}}},"/v2/projects/applications/{application_id}/project":{"post":{"tags":["Projects V2"],"operationId":"projectsv2.convertApplicationToProject","parameters":[{"name":"application_id","in":"path","schema":{"type":"string","description":"Standalone application ID to convert into a project"},"required":true,"description":"Standalone application ID to convert into a project"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","name","organization_id","applications","created_at","updated_at","archived","metadata"],"properties":{"id":{"type":"string","description":"Unique identifier for the project"},"object":{"type":"string","enum":["project"],"description":"Object type, always `project`"},"name":{"type":"string","description":"Display name of the project"},"organization_id":{"type":"integer","description":"ID of the organization that owns this project","title":"int"},"applications":{"type":"array","items":{"type":"object","required":["id","project_id","platform","is_stripe_application","project_has_stripe_application","name","public_api_key","created_at","updated_at","integrated","bundle_id","app_id","revenue_cat_public_api_key","apple_url_scheme","notification_redirect_url","team_id","android_app_fingerprints","support_url","support_email","application_icon","redeemable_on_desktop","web_2_app_post_purchase_behavior","web_2_app_disable_customer_emails","apple_small_business_start_date","apple_small_business_end_date","globally_disabled","slug","archived_at","features_enabled","apple_search_ads_configured","language_and_framework"],"properties":{"id":{"type":"string","description":"Application ID"},"project_id":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"Project ID this application belongs to, or null for standalone applications"},"platform":{"anyOf":[{"type":"string","enum":["ios"],"description":"iOS (App Store)"},{"type":"string","enum":["android"],"description":"Android (Google Play)"},{"type":"string","enum":["flutter"],"description":"Flutter (legacy, read-only - cannot be created via API)"},{"type":"string","enum":["react_native"],"description":"React Native (legacy, read-only - cannot be created via API)"},{"type":"string","enum":["web"],"description":"Web (Stripe)"},{"type":"string","enum":["promotional"],"description":"Promotional offers application (read-only - cannot be created via API)"},{"type":"string","enum":["webapp"],"description":"Web App (Web SDK) (read-only - cannot be created via API)"}],"description":"Platform of the application"},"is_stripe_application":{"type":"boolean","description":"Whether this application is the legacy Stripe application type"},"project_has_stripe_application":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether this application's project contains a legacy Stripe application, or null for standalone applications"},"name":{"type":"string","description":"Display name of the application"},"public_api_key":{"type":"string","description":"Public API key for SDK integration"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the application was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the application was last updated"},"integrated":{"type":"boolean","description":"Whether the application has been integrated with the SDK"},"bundle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bundle identifier (iOS) or package name (Android)"},"app_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"App Store or Play Store app ID"},"revenue_cat_public_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"RevenueCat public API key"},"apple_url_scheme":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"URL scheme used for deep links on mobile"},"notification_redirect_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Notification redirect URL for iOS applications"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple Developer Team ID for iOS applications"},"android_app_fingerprints":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Android app signing certificate fingerprints"},"support_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Support URL shown during web checkout redemption"},"support_email":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Reply-to support email for web checkout emails"},"application_icon":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Custom application icon URL shown on management pages and in emails"},"redeemable_on_desktop":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether web purchases can be redeemed on desktop devices"},"web_2_app_post_purchase_behavior":{"anyOf":[{"anyOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["redeem"]}},"additionalProperties":false},{"type":"object","required":["type","url"],"properties":{"type":{"type":"string","enum":["redirect"]},"url":{"type":"string"}},"additionalProperties":false}],"description":"Behavior after a web-to-app purchase"},{"type":"null"}],"description":"Behavior after a web-to-app purchase"},"web_2_app_disable_customer_emails":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether Superwall post-purchase customer emails are disabled"},"apple_small_business_start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple Small Business Program start date"},"apple_small_business_end_date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple Small Business Program end date"},"globally_disabled":{"type":"boolean","description":"Whether all paywalls are disabled for this application"},"slug":{"type":"string","description":"URL-safe identifier for the application"},"archived_at":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 timestamp of when the application was archived, or null if active"},"features_enabled":{"type":"array","items":{"type":"string"},"description":"List of enabled feature flags for the application"},"apple_search_ads_configured":{"type":"boolean","description":"Whether Apple Search Ads is configured for this application"},"language_and_framework":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Detected language/framework for the application (e.g. `flutter`, `react-native`), sourced from marketing metadata, or null if unknown"},"sdk_framework":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Exact SDK framework selected for this application platform (e.g. `expo`, `swiftui`), or null if unknown. Optional for compatibility with older API deployments."}},"additionalProperties":false},"description":"List of applications in this project"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the project was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the project was last updated"},"archived":{"type":"boolean","description":"Whether the project is archived"},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"409":{"description":"The resource already exists or conflicts with an existing resource","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"identifier":{"type":"string"},"field":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/Conflict"]}},"additionalProperties":false,"description":"The resource already exists or conflicts with an existing resource","title":"Conflict"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Atomically creates a project and associates an existing standalone application. Requires projects:write and applications:write scope.","summary":"Convert Standalone Application to Project","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Display name of the new project","title":"maxLength(255)","minLength":1,"maxLength":255}},"additionalProperties":false}}},"required":true}}},"/v2/projects/applications/{application_id}":{"get":{"tags":["Projects V2"],"operationId":"projectsv2.retrieveApplication","parameters":[{"name":"application_id","in":"path","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"},{"name":"organization_id","in":"query","schema":{"type":"string","description":"Organization ID that owns the application"},"required":true,"description":"Organization ID that owns the application"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","project_id","platform","is_stripe_application","project_has_stripe_application","name","public_api_key","created_at","updated_at","integrated","bundle_id","app_id","revenue_cat_public_api_key","apple_url_scheme","notification_redirect_url","team_id","android_app_fingerprints","support_url","support_email","application_icon","redeemable_on_desktop","web_2_app_post_purchase_behavior","web_2_app_disable_customer_emails","apple_small_business_start_date","apple_small_business_end_date","globally_disabled","slug","archived_at","features_enabled","apple_search_ads_configured","language_and_framework"],"properties":{"id":{"type":"string","description":"Application ID"},"project_id":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"Project ID this application belongs to, or null for standalone applications"},"platform":{"anyOf":[{"type":"string","enum":["ios"],"description":"iOS (App Store)"},{"type":"string","enum":["android"],"description":"Android (Google Play)"},{"type":"string","enum":["flutter"],"description":"Flutter (legacy, read-only - cannot be created via API)"},{"type":"string","enum":["react_native"],"description":"React Native (legacy, read-only - cannot be created via API)"},{"type":"string","enum":["web"],"description":"Web (Stripe)"},{"type":"string","enum":["promotional"],"description":"Promotional offers application (read-only - cannot be created via API)"},{"type":"string","enum":["webapp"],"description":"Web App (Web SDK) (read-only - cannot be created via API)"}],"description":"Platform of the application"},"is_stripe_application":{"type":"boolean","description":"Whether this application is the legacy Stripe application type"},"project_has_stripe_application":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether this application's project contains a legacy Stripe application, or null for standalone applications"},"name":{"type":"string","description":"Display name of the application"},"public_api_key":{"type":"string","description":"Public API key for SDK integration"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the application was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the application was last updated"},"integrated":{"type":"boolean","description":"Whether the application has been integrated with the SDK"},"bundle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bundle identifier (iOS) or package name (Android)"},"app_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"App Store or Play Store app ID"},"revenue_cat_public_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"RevenueCat public API key"},"apple_url_scheme":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"URL scheme used for deep links on mobile"},"notification_redirect_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Notification redirect URL for iOS applications"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple Developer Team ID for iOS applications"},"android_app_fingerprints":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Android app signing certificate fingerprints"},"support_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Support URL shown during web checkout redemption"},"support_email":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Reply-to support email for web checkout emails"},"application_icon":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Custom application icon URL shown on management pages and in emails"},"redeemable_on_desktop":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether web purchases can be redeemed on desktop devices"},"web_2_app_post_purchase_behavior":{"anyOf":[{"anyOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["redeem"]}},"additionalProperties":false},{"type":"object","required":["type","url"],"properties":{"type":{"type":"string","enum":["redirect"]},"url":{"type":"string"}},"additionalProperties":false}],"description":"Behavior after a web-to-app purchase"},{"type":"null"}],"description":"Behavior after a web-to-app purchase"},"web_2_app_disable_customer_emails":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether Superwall post-purchase customer emails are disabled"},"apple_small_business_start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple Small Business Program start date"},"apple_small_business_end_date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple Small Business Program end date"},"globally_disabled":{"type":"boolean","description":"Whether all paywalls are disabled for this application"},"slug":{"type":"string","description":"URL-safe identifier for the application"},"archived_at":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 timestamp of when the application was archived, or null if active"},"features_enabled":{"type":"array","items":{"type":"string"},"description":"List of enabled feature flags for the application"},"apple_search_ads_configured":{"type":"boolean","description":"Whether Apple Search Ads is configured for this application"},"language_and_framework":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Detected language/framework for the application (e.g. `flutter`, `react-native`), sourced from marketing metadata, or null if unknown"},"sdk_framework":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Exact SDK framework selected for this application platform (e.g. `expo`, `swiftui`), or null if unknown. Optional for compatibility with older API deployments."}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns one application by ID within the specified organization. Requires projects:read scope.","summary":"Retrieve Application"}},"/v2/projects/{id}":{"get":{"tags":["Projects V2"],"operationId":"projectsv2.retrieveProject","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","name","organization_id","applications","created_at","updated_at","archived","metadata"],"properties":{"id":{"type":"string","description":"Unique identifier for the project"},"object":{"type":"string","enum":["project"],"description":"Object type, always `project`"},"name":{"type":"string","description":"Display name of the project"},"organization_id":{"type":"integer","description":"ID of the organization that owns this project","title":"int"},"applications":{"type":"array","items":{"type":"object","required":["id","project_id","platform","is_stripe_application","project_has_stripe_application","name","public_api_key","created_at","updated_at","integrated","bundle_id","app_id","revenue_cat_public_api_key","apple_url_scheme","notification_redirect_url","team_id","android_app_fingerprints","support_url","support_email","application_icon","redeemable_on_desktop","web_2_app_post_purchase_behavior","web_2_app_disable_customer_emails","apple_small_business_start_date","apple_small_business_end_date","globally_disabled","slug","archived_at","features_enabled","apple_search_ads_configured","language_and_framework"],"properties":{"id":{"type":"string","description":"Application ID"},"project_id":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"Project ID this application belongs to, or null for standalone applications"},"platform":{"anyOf":[{"type":"string","enum":["ios"],"description":"iOS (App Store)"},{"type":"string","enum":["android"],"description":"Android (Google Play)"},{"type":"string","enum":["flutter"],"description":"Flutter (legacy, read-only - cannot be created via API)"},{"type":"string","enum":["react_native"],"description":"React Native (legacy, read-only - cannot be created via API)"},{"type":"string","enum":["web"],"description":"Web (Stripe)"},{"type":"string","enum":["promotional"],"description":"Promotional offers application (read-only - cannot be created via API)"},{"type":"string","enum":["webapp"],"description":"Web App (Web SDK) (read-only - cannot be created via API)"}],"description":"Platform of the application"},"is_stripe_application":{"type":"boolean","description":"Whether this application is the legacy Stripe application type"},"project_has_stripe_application":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether this application's project contains a legacy Stripe application, or null for standalone applications"},"name":{"type":"string","description":"Display name of the application"},"public_api_key":{"type":"string","description":"Public API key for SDK integration"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the application was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the application was last updated"},"integrated":{"type":"boolean","description":"Whether the application has been integrated with the SDK"},"bundle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bundle identifier (iOS) or package name (Android)"},"app_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"App Store or Play Store app ID"},"revenue_cat_public_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"RevenueCat public API key"},"apple_url_scheme":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"URL scheme used for deep links on mobile"},"notification_redirect_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Notification redirect URL for iOS applications"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple Developer Team ID for iOS applications"},"android_app_fingerprints":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Android app signing certificate fingerprints"},"support_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Support URL shown during web checkout redemption"},"support_email":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Reply-to support email for web checkout emails"},"application_icon":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Custom application icon URL shown on management pages and in emails"},"redeemable_on_desktop":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether web purchases can be redeemed on desktop devices"},"web_2_app_post_purchase_behavior":{"anyOf":[{"anyOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["redeem"]}},"additionalProperties":false},{"type":"object","required":["type","url"],"properties":{"type":{"type":"string","enum":["redirect"]},"url":{"type":"string"}},"additionalProperties":false}],"description":"Behavior after a web-to-app purchase"},{"type":"null"}],"description":"Behavior after a web-to-app purchase"},"web_2_app_disable_customer_emails":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether Superwall post-purchase customer emails are disabled"},"apple_small_business_start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple Small Business Program start date"},"apple_small_business_end_date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple Small Business Program end date"},"globally_disabled":{"type":"boolean","description":"Whether all paywalls are disabled for this application"},"slug":{"type":"string","description":"URL-safe identifier for the application"},"archived_at":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 timestamp of when the application was archived, or null if active"},"features_enabled":{"type":"array","items":{"type":"string"},"description":"List of enabled feature flags for the application"},"apple_search_ads_configured":{"type":"boolean","description":"Whether Apple Search Ads is configured for this application"},"language_and_framework":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Detected language/framework for the application (e.g. `flutter`, `react-native`), sourced from marketing metadata, or null if unknown"},"sdk_framework":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Exact SDK framework selected for this application platform (e.g. `expo`, `swiftui`), or null if unknown. Optional for compatibility with older API deployments."}},"additionalProperties":false},"description":"List of applications in this project"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the project was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the project was last updated"},"archived":{"type":"boolean","description":"Whether the project is archived"},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Retrieves a project by ID. Requires projects:read scope.","summary":"Retrieve Project"},"patch":{"tags":["Projects V2"],"operationId":"projectsv2.updateProject","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","name","organization_id","applications","created_at","updated_at","archived","metadata"],"properties":{"id":{"type":"string","description":"Unique identifier for the project"},"object":{"type":"string","enum":["project"],"description":"Object type, always `project`"},"name":{"type":"string","description":"Display name of the project"},"organization_id":{"type":"integer","description":"ID of the organization that owns this project","title":"int"},"applications":{"type":"array","items":{"type":"object","required":["id","project_id","platform","is_stripe_application","project_has_stripe_application","name","public_api_key","created_at","updated_at","integrated","bundle_id","app_id","revenue_cat_public_api_key","apple_url_scheme","notification_redirect_url","team_id","android_app_fingerprints","support_url","support_email","application_icon","redeemable_on_desktop","web_2_app_post_purchase_behavior","web_2_app_disable_customer_emails","apple_small_business_start_date","apple_small_business_end_date","globally_disabled","slug","archived_at","features_enabled","apple_search_ads_configured","language_and_framework"],"properties":{"id":{"type":"string","description":"Application ID"},"project_id":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"Project ID this application belongs to, or null for standalone applications"},"platform":{"anyOf":[{"type":"string","enum":["ios"],"description":"iOS (App Store)"},{"type":"string","enum":["android"],"description":"Android (Google Play)"},{"type":"string","enum":["flutter"],"description":"Flutter (legacy, read-only - cannot be created via API)"},{"type":"string","enum":["react_native"],"description":"React Native (legacy, read-only - cannot be created via API)"},{"type":"string","enum":["web"],"description":"Web (Stripe)"},{"type":"string","enum":["promotional"],"description":"Promotional offers application (read-only - cannot be created via API)"},{"type":"string","enum":["webapp"],"description":"Web App (Web SDK) (read-only - cannot be created via API)"}],"description":"Platform of the application"},"is_stripe_application":{"type":"boolean","description":"Whether this application is the legacy Stripe application type"},"project_has_stripe_application":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether this application's project contains a legacy Stripe application, or null for standalone applications"},"name":{"type":"string","description":"Display name of the application"},"public_api_key":{"type":"string","description":"Public API key for SDK integration"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the application was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the application was last updated"},"integrated":{"type":"boolean","description":"Whether the application has been integrated with the SDK"},"bundle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bundle identifier (iOS) or package name (Android)"},"app_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"App Store or Play Store app ID"},"revenue_cat_public_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"RevenueCat public API key"},"apple_url_scheme":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"URL scheme used for deep links on mobile"},"notification_redirect_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Notification redirect URL for iOS applications"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple Developer Team ID for iOS applications"},"android_app_fingerprints":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Android app signing certificate fingerprints"},"support_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Support URL shown during web checkout redemption"},"support_email":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Reply-to support email for web checkout emails"},"application_icon":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Custom application icon URL shown on management pages and in emails"},"redeemable_on_desktop":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether web purchases can be redeemed on desktop devices"},"web_2_app_post_purchase_behavior":{"anyOf":[{"anyOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["redeem"]}},"additionalProperties":false},{"type":"object","required":["type","url"],"properties":{"type":{"type":"string","enum":["redirect"]},"url":{"type":"string"}},"additionalProperties":false}],"description":"Behavior after a web-to-app purchase"},{"type":"null"}],"description":"Behavior after a web-to-app purchase"},"web_2_app_disable_customer_emails":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether Superwall post-purchase customer emails are disabled"},"apple_small_business_start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple Small Business Program start date"},"apple_small_business_end_date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple Small Business Program end date"},"globally_disabled":{"type":"boolean","description":"Whether all paywalls are disabled for this application"},"slug":{"type":"string","description":"URL-safe identifier for the application"},"archived_at":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 timestamp of when the application was archived, or null if active"},"features_enabled":{"type":"array","items":{"type":"string"},"description":"List of enabled feature flags for the application"},"apple_search_ads_configured":{"type":"boolean","description":"Whether Apple Search Ads is configured for this application"},"language_and_framework":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Detected language/framework for the application (e.g. `flutter`, `react-native`), sourced from marketing metadata, or null if unknown"},"sdk_framework":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Exact SDK framework selected for this application platform (e.g. `expo`, `swiftui`), or null if unknown. Optional for compatibility with older API deployments."}},"additionalProperties":false},"description":"List of applications in this project"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the project was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the project was last updated"},"archived":{"type":"boolean","description":"Whether the project is archived"},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Updates a project's name or metadata. Requires projects:write scope.","summary":"Update Project","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"Display name of the project","title":"maxLength(255)","minLength":1,"maxLength":255},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500},"description":"Arbitrary key-value metadata to attach to the project"}},"additionalProperties":false}}},"required":true}}},"/v2/projects/{id}/archive":{"post":{"tags":["Projects V2"],"operationId":"projectsv2.archiveProject","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","id","archived"],"properties":{"object":{"type":"string","enum":["project"],"description":"Object type, always `project`"},"id":{"type":"string","description":"ID of the project"},"archived":{"type":"boolean","description":"Whether the project is now archived"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Archives a project. Archived projects are not returned in list queries by default. Requires projects:write scope.","summary":"Archive Project"}},"/v2/projects/{id}/unarchive":{"post":{"tags":["Projects V2"],"operationId":"projectsv2.unarchiveProject","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","id","archived"],"properties":{"object":{"type":"string","enum":["project"],"description":"Object type, always `project`"},"id":{"type":"string","description":"ID of the project"},"archived":{"type":"boolean","description":"Whether the project is now archived"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Unarchives a previously archived project. Requires projects:write scope.","summary":"Unarchive Project"}},"/v2/projects/{id}/applications":{"post":{"tags":["Projects V2"],"operationId":"projectsv2.createApplication","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","name","organization_id","applications","created_at","updated_at","archived","metadata"],"properties":{"id":{"type":"string","description":"Unique identifier for the project"},"object":{"type":"string","enum":["project"],"description":"Object type, always `project`"},"name":{"type":"string","description":"Display name of the project"},"organization_id":{"type":"integer","description":"ID of the organization that owns this project","title":"int"},"applications":{"type":"array","items":{"type":"object","required":["id","project_id","platform","is_stripe_application","project_has_stripe_application","name","public_api_key","created_at","updated_at","integrated","bundle_id","app_id","revenue_cat_public_api_key","apple_url_scheme","notification_redirect_url","team_id","android_app_fingerprints","support_url","support_email","application_icon","redeemable_on_desktop","web_2_app_post_purchase_behavior","web_2_app_disable_customer_emails","apple_small_business_start_date","apple_small_business_end_date","globally_disabled","slug","archived_at","features_enabled","apple_search_ads_configured","language_and_framework"],"properties":{"id":{"type":"string","description":"Application ID"},"project_id":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"Project ID this application belongs to, or null for standalone applications"},"platform":{"anyOf":[{"type":"string","enum":["ios"],"description":"iOS (App Store)"},{"type":"string","enum":["android"],"description":"Android (Google Play)"},{"type":"string","enum":["flutter"],"description":"Flutter (legacy, read-only - cannot be created via API)"},{"type":"string","enum":["react_native"],"description":"React Native (legacy, read-only - cannot be created via API)"},{"type":"string","enum":["web"],"description":"Web (Stripe)"},{"type":"string","enum":["promotional"],"description":"Promotional offers application (read-only - cannot be created via API)"},{"type":"string","enum":["webapp"],"description":"Web App (Web SDK) (read-only - cannot be created via API)"}],"description":"Platform of the application"},"is_stripe_application":{"type":"boolean","description":"Whether this application is the legacy Stripe application type"},"project_has_stripe_application":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether this application's project contains a legacy Stripe application, or null for standalone applications"},"name":{"type":"string","description":"Display name of the application"},"public_api_key":{"type":"string","description":"Public API key for SDK integration"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the application was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the application was last updated"},"integrated":{"type":"boolean","description":"Whether the application has been integrated with the SDK"},"bundle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bundle identifier (iOS) or package name (Android)"},"app_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"App Store or Play Store app ID"},"revenue_cat_public_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"RevenueCat public API key"},"apple_url_scheme":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"URL scheme used for deep links on mobile"},"notification_redirect_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Notification redirect URL for iOS applications"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple Developer Team ID for iOS applications"},"android_app_fingerprints":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Android app signing certificate fingerprints"},"support_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Support URL shown during web checkout redemption"},"support_email":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Reply-to support email for web checkout emails"},"application_icon":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Custom application icon URL shown on management pages and in emails"},"redeemable_on_desktop":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether web purchases can be redeemed on desktop devices"},"web_2_app_post_purchase_behavior":{"anyOf":[{"anyOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["redeem"]}},"additionalProperties":false},{"type":"object","required":["type","url"],"properties":{"type":{"type":"string","enum":["redirect"]},"url":{"type":"string"}},"additionalProperties":false}],"description":"Behavior after a web-to-app purchase"},{"type":"null"}],"description":"Behavior after a web-to-app purchase"},"web_2_app_disable_customer_emails":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether Superwall post-purchase customer emails are disabled"},"apple_small_business_start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple Small Business Program start date"},"apple_small_business_end_date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple Small Business Program end date"},"globally_disabled":{"type":"boolean","description":"Whether all paywalls are disabled for this application"},"slug":{"type":"string","description":"URL-safe identifier for the application"},"archived_at":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 timestamp of when the application was archived, or null if active"},"features_enabled":{"type":"array","items":{"type":"string"},"description":"List of enabled feature flags for the application"},"apple_search_ads_configured":{"type":"boolean","description":"Whether Apple Search Ads is configured for this application"},"language_and_framework":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Detected language/framework for the application (e.g. `flutter`, `react-native`), sourced from marketing metadata, or null if unknown"},"sdk_framework":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Exact SDK framework selected for this application platform (e.g. `expo`, `swiftui`), or null if unknown. Optional for compatibility with older API deployments."}},"additionalProperties":false},"description":"List of applications in this project"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the project was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the project was last updated"},"archived":{"type":"boolean","description":"Whether the project is archived"},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"409":{"description":"The resource already exists or conflicts with an existing resource","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"identifier":{"type":"string"},"field":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/Conflict"]}},"additionalProperties":false,"description":"The resource already exists or conflicts with an existing resource","title":"Conflict"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["message","step","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"step":{"type":"string","enum":["insert","link","transaction"]},"application_name":{"type":"string"},"project_id":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ApplicationCreationError"]}},"additionalProperties":false,"description":"Application creation failed at one of the create-flow steps","title":"Application Creation Failed"}]}}}}},"description":"Creates a new application and adds it to the project. Will fail if the project already has an application for that platform. Requires projects:write scope. For web platform, domain is required.","summary":"Create Application in Project","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["name","platform"],"properties":{"name":{"type":"string","description":"Display name of the application","title":"maxLength(255)","minLength":1,"maxLength":255},"platform":{"type":"string","enum":["ios","android","web"],"description":"Platform for the application"},"app_id":{"type":"string","description":"App Store or Play Store app ID"},"bundle_id":{"type":"string","description":"Bundle identifier (iOS) or package name (Android)"},"domain":{"type":"string","description":"Domain for web applications"}},"additionalProperties":false}}},"required":true}}},"/v2/projects/{id}/applications/assign":{"post":{"tags":["Projects V2"],"operationId":"projectsv2.assignApplication","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","project_id","application_id","associated"],"properties":{"object":{"type":"string","enum":["project_application_association"],"description":"Object type, always `project_application_association`"},"project_id":{"type":"string","description":"Project ID"},"application_id":{"type":"string","description":"Application ID"},"associated":{"type":"boolean","description":"Whether the application is now associated with the project"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"409":{"description":"The resource already exists or conflicts with an existing resource","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"identifier":{"type":"string"},"field":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/Conflict"]}},"additionalProperties":false,"description":"The resource already exists or conflicts with an existing resource","title":"Conflict"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Associates an existing application with a project. Requires projects:write and applications:write scope.","summary":"Assign Application to Project","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id"],"properties":{"application_id":{"type":"string","description":"Application ID to add/remove"}},"additionalProperties":false}}},"required":true}}},"/v2/projects/{id}/applications/remove":{"post":{"tags":["Projects V2"],"operationId":"projectsv2.removeApplication","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","project_id","application_id","associated"],"properties":{"object":{"type":"string","enum":["project_application_association"],"description":"Object type, always `project_application_association`"},"project_id":{"type":"string","description":"Project ID"},"application_id":{"type":"string","description":"Application ID"},"associated":{"type":"boolean","description":"Whether the application is now associated with the project"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Removes an existing application association from a project. Requires projects:write and applications:write scope.","summary":"Remove Application from Project","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id"],"properties":{"application_id":{"type":"string","description":"Application ID to add/remove"}},"additionalProperties":false}}},"required":true}}},"/v2/projects/{id}/applications/{application_id}":{"patch":{"tags":["Projects V2"],"operationId":"projectsv2.updateApplication","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"application_id","in":"path","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","name","organization_id","applications","created_at","updated_at","archived","metadata"],"properties":{"id":{"type":"string","description":"Unique identifier for the project"},"object":{"type":"string","enum":["project"],"description":"Object type, always `project`"},"name":{"type":"string","description":"Display name of the project"},"organization_id":{"type":"integer","description":"ID of the organization that owns this project","title":"int"},"applications":{"type":"array","items":{"type":"object","required":["id","project_id","platform","is_stripe_application","project_has_stripe_application","name","public_api_key","created_at","updated_at","integrated","bundle_id","app_id","revenue_cat_public_api_key","apple_url_scheme","notification_redirect_url","team_id","android_app_fingerprints","support_url","support_email","application_icon","redeemable_on_desktop","web_2_app_post_purchase_behavior","web_2_app_disable_customer_emails","apple_small_business_start_date","apple_small_business_end_date","globally_disabled","slug","archived_at","features_enabled","apple_search_ads_configured","language_and_framework"],"properties":{"id":{"type":"string","description":"Application ID"},"project_id":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"Project ID this application belongs to, or null for standalone applications"},"platform":{"anyOf":[{"type":"string","enum":["ios"],"description":"iOS (App Store)"},{"type":"string","enum":["android"],"description":"Android (Google Play)"},{"type":"string","enum":["flutter"],"description":"Flutter (legacy, read-only - cannot be created via API)"},{"type":"string","enum":["react_native"],"description":"React Native (legacy, read-only - cannot be created via API)"},{"type":"string","enum":["web"],"description":"Web (Stripe)"},{"type":"string","enum":["promotional"],"description":"Promotional offers application (read-only - cannot be created via API)"},{"type":"string","enum":["webapp"],"description":"Web App (Web SDK) (read-only - cannot be created via API)"}],"description":"Platform of the application"},"is_stripe_application":{"type":"boolean","description":"Whether this application is the legacy Stripe application type"},"project_has_stripe_application":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether this application's project contains a legacy Stripe application, or null for standalone applications"},"name":{"type":"string","description":"Display name of the application"},"public_api_key":{"type":"string","description":"Public API key for SDK integration"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the application was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the application was last updated"},"integrated":{"type":"boolean","description":"Whether the application has been integrated with the SDK"},"bundle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bundle identifier (iOS) or package name (Android)"},"app_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"App Store or Play Store app ID"},"revenue_cat_public_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"RevenueCat public API key"},"apple_url_scheme":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"URL scheme used for deep links on mobile"},"notification_redirect_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Notification redirect URL for iOS applications"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple Developer Team ID for iOS applications"},"android_app_fingerprints":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Android app signing certificate fingerprints"},"support_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Support URL shown during web checkout redemption"},"support_email":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Reply-to support email for web checkout emails"},"application_icon":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Custom application icon URL shown on management pages and in emails"},"redeemable_on_desktop":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether web purchases can be redeemed on desktop devices"},"web_2_app_post_purchase_behavior":{"anyOf":[{"anyOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["redeem"]}},"additionalProperties":false},{"type":"object","required":["type","url"],"properties":{"type":{"type":"string","enum":["redirect"]},"url":{"type":"string"}},"additionalProperties":false}],"description":"Behavior after a web-to-app purchase"},{"type":"null"}],"description":"Behavior after a web-to-app purchase"},"web_2_app_disable_customer_emails":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether Superwall post-purchase customer emails are disabled"},"apple_small_business_start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple Small Business Program start date"},"apple_small_business_end_date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple Small Business Program end date"},"globally_disabled":{"type":"boolean","description":"Whether all paywalls are disabled for this application"},"slug":{"type":"string","description":"URL-safe identifier for the application"},"archived_at":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 timestamp of when the application was archived, or null if active"},"features_enabled":{"type":"array","items":{"type":"string"},"description":"List of enabled feature flags for the application"},"apple_search_ads_configured":{"type":"boolean","description":"Whether Apple Search Ads is configured for this application"},"language_and_framework":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Detected language/framework for the application (e.g. `flutter`, `react-native`), sourced from marketing metadata, or null if unknown"},"sdk_framework":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Exact SDK framework selected for this application platform (e.g. `expo`, `swiftui`), or null if unknown. Optional for compatibility with older API deployments."}},"additionalProperties":false},"description":"List of applications in this project"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the project was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the project was last updated"},"archived":{"type":"boolean","description":"Whether the project is archived"},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Updates core application identity fields (name, app_id, bundle_id) within a project. Requires applications:write scope.","summary":"Update Application in Project","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"Display name of the application","title":"maxLength(255)","minLength":1,"maxLength":255},"app_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"App Store or Play Store app ID"},"bundle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bundle identifier (iOS) or package name (Android)"}},"additionalProperties":false}}},"required":true}}},"/v2/projects/{id}/applications/{application_id}/settings":{"patch":{"tags":["Projects V2"],"operationId":"projectsv2.updateApplicationSettings","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"application_id","in":"path","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","project_id","application_id","updated"],"properties":{"object":{"type":"string","enum":["application_settings_update"],"description":"Object type, always `application_settings_update`"},"project_id":{"type":"string","description":"Project ID"},"application_id":{"type":"string","description":"Application ID"},"updated":{"type":"boolean","enum":[true],"description":"Whether the settings were updated"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Updates platform-scoped application settings. Only settings supported by the application's platform are accepted. Requires applications:write scope.","summary":"Update Application Settings in Project","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"Display name of the application","title":"maxLength(255)","minLength":1,"maxLength":255},"app_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"App Store or Play Store app ID"},"bundle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bundle identifier (iOS) or package name (Android)"},"revenue_cat_public_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"RevenueCat public API key"},"apple_url_scheme":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"URL scheme used for deep links on mobile"},"notification_redirect_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Notification redirect URL for iOS applications"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple Developer Team ID for iOS applications"},"android_app_fingerprints":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Android app signing certificate fingerprints"},"support_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Support URL shown during web checkout redemption"},"support_email":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Reply-to support email for web checkout emails"},"application_icon":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Custom application icon URL shown on management pages and in emails"},"redeemable_on_desktop":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether web purchases can be redeemed on desktop devices"},"web_2_app_post_purchase_behavior":{"anyOf":[{"anyOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["redeem"]}},"additionalProperties":false},{"type":"object","required":["type","url"],"properties":{"type":{"type":"string","enum":["redirect"]},"url":{"type":"string"}},"additionalProperties":false}],"description":"Behavior after a web-to-app purchase"},{"type":"null"}],"description":"Behavior after a web-to-app purchase"},"web_2_app_disable_customer_emails":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether Superwall post-purchase customer emails are disabled"},"app_store_connect_shared_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"App Store Connect shared secret"},"stripe_private_key":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Stripe private key for web/stripe applications"},"apple_small_business_start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple Small Business Program start date (ISO-8601 string)"},"apple_small_business_end_date":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple Small Business Program end date (ISO-8601 string)"}},"additionalProperties":false}}},"required":true}}},"/v2/projects/{id}/applications/{application_id}/features":{"patch":{"tags":["Projects V2"],"operationId":"projectsv2.updateApplicationFeatures","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"application_id","in":"path","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","project_id","application_id","features_enabled"],"properties":{"object":{"type":"string","enum":["application_features_update"],"description":"Object type, always `application_features_update`"},"project_id":{"type":"string","description":"Project ID"},"application_id":{"type":"string","description":"Application ID"},"features_enabled":{"type":"array","items":{"type":"string"},"description":"Updated enabled feature flags"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Updates public beta feature flags for an application. Requires applications:write scope.","summary":"Update Application Public Beta Features","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["features"],"properties":{"features":{"type":"array","items":{"type":"object","required":["key","enabled"],"properties":{"key":{"type":"string","enum":["web_2_app","flows","dashboard_web2","editor_ai_chat"],"description":"Public beta application feature flag"},"enabled":{"type":"boolean"}},"additionalProperties":false},"description":"Public beta feature states to update"}},"additionalProperties":false}}},"required":true}}},"/v2/projects/{id}/applications/{application_id}/availability":{"patch":{"tags":["Projects V2"],"operationId":"projectsv2.updateApplicationAvailability","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"application_id","in":"path","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","project_id","application_id","globally_disabled"],"properties":{"object":{"type":"string","enum":["application_availability_update"],"description":"Object type, always `application_availability_update`"},"project_id":{"type":"string","description":"Project ID"},"application_id":{"type":"string","description":"Application ID"},"globally_disabled":{"type":"boolean","description":"Whether all paywalls are disabled for this application"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Enables or disables all paywalls for an application. Requires applications:write scope.","summary":"Update Application Availability","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["globally_disabled"],"properties":{"globally_disabled":{"type":"boolean","description":"Whether all paywalls should be disabled for this application"}},"additionalProperties":false}}},"required":true}}},"/v2/projects/{id}/applications/{application_id}/statistics":{"get":{"tags":["Projects V2"],"operationId":"projectsv2.getApplicationStatistics","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"application_id","in":"path","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"},{"name":"environment","in":"query","schema":{"type":"string","enum":["PRODUCTION","SANDBOX"],"description":"Environment to query"},"required":true,"description":"Environment to query"},{"name":"date_preset","in":"query","schema":{"type":"string","enum":["last_24_hours","today","yesterday","last_7_days","last_30_days","last_90_days","last_180_days","last_365_days","year_to_date"],"description":"Preset reporting window"},"required":false,"description":"Preset reporting window"},{"name":"from","in":"query","schema":{"type":"string","description":"Start datetime (legacy; used when date_preset is absent)"},"required":false,"description":"Start datetime (legacy; used when date_preset is absent)"},{"name":"to","in":"query","schema":{"type":"string","description":"End datetime (legacy; used when date_preset is absent)"},"required":false,"description":"End datetime (legacy; used when date_preset is absent)"},{"name":"refresh","in":"query","schema":{"allOf":[{"$ref":"#/components/schemas/BooleanFromString"}],"description":"Bypass the cached snapshot and force a fresh server recompute for this window"},"required":false,"description":"Bypass the cached snapshot and force a fresh server recompute for this window"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","params","computed_at","statistics"],"properties":{"object":{"type":"string","enum":["application_statistics"]},"params":{"type":"object","required":["application_id","environment","from","to"],"properties":{"application_id":{"type":"string","description":"a string to be decoded into a number"},"environment":{"type":"string","enum":["PRODUCTION","SANDBOX"]},"from":{"type":"string"},"to":{"type":"string"},"date_preset":{"type":"string","enum":["last_24_hours","today","yesterday","last_7_days","last_30_days","last_90_days","last_180_days","last_365_days","year_to_date"],"description":"Preset reporting window"}},"additionalProperties":false},"computed_at":{"type":"number","description":"Unix epoch (ms) when this statistics snapshot was computed"},"statistics":{"type":"array","items":{"type":"object","required":["key","chart","name","value","description"],"properties":{"key":{"type":"string"},"chart":{"type":"string"},"name":{"type":"string"},"value":{"anyOf":[{"type":"object","required":["type","value"],"properties":{"type":{"type":"string","enum":["currency"]},"value":{"type":"number"}},"additionalProperties":false},{"type":"object","required":["type","value"],"properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"number"}},"additionalProperties":false},{"type":"object","required":["type","value"],"properties":{"type":{"type":"string","enum":["percentage"]},"value":{"type":"number"}},"additionalProperties":false},{"type":"object","required":["type","value"],"properties":{"type":{"type":"string","enum":["error"]},"value":{"type":"string"}},"additionalProperties":false}]},"previous_value":{"anyOf":[{"type":"object","required":["type","value"],"properties":{"type":{"type":"string","enum":["currency"]},"value":{"type":"number"}},"additionalProperties":false},{"type":"object","required":["type","value"],"properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"number"}},"additionalProperties":false},{"type":"object","required":["type","value"],"properties":{"type":{"type":"string","enum":["percentage"]},"value":{"type":"number"}},"additionalProperties":false},{"type":"object","required":["type","value"],"properties":{"type":{"type":"string","enum":["error"]},"value":{"type":"string"}},"additionalProperties":false}],"description":"Matching metric value for the previous comparable reporting window"},"description":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns overview statistics for the given application and date range within a project. Requires applications:read scope.","summary":"Get Application Statistics"}},"/v2/projects/{id}/applications/{application_id}/overview-notices":{"get":{"tags":["Projects V2"],"operationId":"projectsv2.getApplicationOverviewNotices","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"application_id","in":"path","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","sdk_notice","blog_notice"],"properties":{"object":{"type":"string","enum":["application_overview_notices"]},"sdk_notice":{"anyOf":[{"type":"object","required":["object","state","title","subtitle","tooltip","button_url","button_text","tracking_id"],"properties":{"object":{"type":"string","enum":["application_overview_sdk_notice"]},"state":{"type":"string","enum":["in_beta","rolling_out","in_development","stale","update"]},"title":{"type":"string"},"subtitle":{"type":"string"},"tooltip":{"type":"string"},"button_url":{"type":"string"},"button_text":{"type":"string"},"tracking_id":{"type":"string","enum":["sdk_notice"]}},"additionalProperties":false},{"type":"null"}]},"blog_notice":{"anyOf":[{"type":"object","required":["object","title","subtitle","slug","image","button_url","dismiss_key","tracking_id"],"properties":{"object":{"type":"string","enum":["application_overview_blog_notice"]},"title":{"type":"string"},"subtitle":{"type":"string"},"slug":{"type":"string"},"image":{"anyOf":[{"type":"object","required":["url","description"],"properties":{"url":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"button_url":{"type":"string"},"dismiss_key":{"type":"string"},"tracking_id":{"type":"string","enum":["blog_post"]}},"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns dashboard overview notices for SDK adoption and featured blog content. Requires applications:read scope.","summary":"Get Application Overview Notices"}},"/v2/projects/{id}/applications/{application_id}/recent-transactions":{"get":{"tags":["Projects V2"],"operationId":"projectsv2.listRecentTransactions","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"application_id","in":"path","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"},{"name":"environment","in":"query","schema":{"type":"string","enum":["PRODUCTION","SANDBOX"],"description":"Environment to query"},"required":true,"description":"Environment to query"},{"name":"from","in":"query","schema":{"type":"string","description":"Start datetime"},"required":true,"description":"Start datetime"},{"name":"to","in":"query","schema":{"type":"string","description":"End datetime"},"required":true,"description":"End datetime"},{"name":"event_type","in":"query","schema":{"type":"string","description":"Recent transaction event type filter"},"required":false,"description":"Recent transaction event type filter"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","data"],"properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object","required":["id","object","is_processing","placement","product_id","country_code","install_date","original_transaction_id","event_type","store","price","purchased_at","integration","user","paywall","product","campaign_placement"],"properties":{"id":{"type":"string"},"object":{"type":"string","enum":["recent_transaction"]},"is_processing":{"type":"boolean"},"placement":{"anyOf":[{"type":"string"},{"type":"null"}]},"product_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"country_code":{"anyOf":[{"type":"string"},{"type":"null"}]},"install_date":{"anyOf":[{"type":"string"},{"type":"null"}]},"original_transaction_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"event_type":{"type":"string"},"store":{"anyOf":[{"type":"string"},{"type":"null"}]},"price":{"anyOf":[{"type":"number"},{"type":"null"}]},"purchased_at":{"type":"string"},"integration":{"type":"string"},"user":{"anyOf":[{"type":"object","required":["object","app_user_id"],"properties":{"object":{"type":"string","enum":["recent_transaction_user"]},"app_user_id":{"type":"string"}},"additionalProperties":false},{"type":"null"}]},"paywall":{"anyOf":[{"type":"object","required":["object","name"],"properties":{"object":{"type":"string","enum":["recent_transaction_paywall"]},"id":{"type":"number"},"name":{"type":"string"}},"additionalProperties":false},{"type":"null"}]},"product":{"anyOf":[{"type":"object","required":["object","identifier","label"],"properties":{"object":{"type":"string","enum":["recent_transaction_product"]},"identifier":{"type":"string"},"label":{"type":"string"}},"additionalProperties":false},{"type":"null"}]},"campaign_placement":{"anyOf":[{"type":"object","required":["object","trigger_experiment_group_id"],"properties":{"object":{"type":"string","enum":["recent_transaction_campaign_placement"]},"trigger_experiment_group_id":{"anyOf":[{"type":"number"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false}},"event_types":{"type":"array","items":{"type":"object","required":["label","value","active"],"properties":{"label":{"type":"string"},"value":{"type":"string"},"active":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns recent transactions for the given application and date range within a project. Requires applications:read scope.","summary":"List Recent Transactions"}},"/v2/projects/{id}/applications/{application_id}/integrations/app-store-connect/notification-url":{"get":{"tags":["Projects V2"],"operationId":"projectsv2.getAppStoreConnectNotificationUrl","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"application_id","in":"path","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","url","token","scope"],"properties":{"object":{"type":"string","enum":["app_store_connect_notification_url"]},"url":{"type":"string","description":"The App Store Connect server notification URL to paste into App Store Connect"},"token":{"type":"string","description":"The authentication token embedded in the URL"},"scope":{"type":"string","enum":["integrations_app_store_connect"]}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns the App Store Connect server notification URL for the application, creating the underlying token if one does not already exist. Paste this URL into App Store Connect → App Information → Server Notifications. Requires applications:write scope.","summary":"Get App Store Connect Notification URL"}},"/v2/projects/{id}/applications/{application_id}/integrations/app-store-connect/configuration":{"put":{"tags":["Projects V2"],"operationId":"projectsv2.saveAppStoreConnectConfiguration","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"application_id","in":"path","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","valid","error"],"properties":{"object":{"type":"string","enum":["app_store_credentials_save_result"]},"valid":{"type":"boolean"},"error":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Validates an App Store Connect API key (Key ID, Issuer ID, .p8) against Apple and, when accepted, persists it to the application with the private key sealed at rest. A rejection is returned as `{ valid: false, error }`, not an HTTP error. Requires applications:write scope.","summary":"Save App Store Connect API Key","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["key_id","issuer_id","private_key"],"properties":{"key_id":{"type":"string","description":"App Store Connect Key ID (10-char alphanumeric)","title":"minLength(1)","minLength":1},"issuer_id":{"type":"string","description":"App Store Connect Issuer ID (UUID)","title":"minLength(1)","minLength":1},"private_key":{"type":"string","description":"Contents of the downloaded .p8 private key (PEM)","title":"minLength(1)","minLength":1}},"additionalProperties":false}}},"required":true}}},"/v2/projects/{id}/applications/{application_id}/integrations/in-app-purchase/configuration":{"put":{"tags":["Projects V2"],"operationId":"projectsv2.saveInAppPurchaseConfiguration","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"application_id","in":"path","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","valid","error"],"properties":{"object":{"type":"string","enum":["app_store_credentials_save_result"]},"valid":{"type":"boolean"},"error":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Validates an App Store Server / In-App Purchase key (Key ID, Issuer ID, .p8, bundle ID) against Apple and, when accepted, persists it to the application with the private key sealed at rest. A rejection is returned as `{ valid: false, error }`, not an HTTP error. Requires applications:write scope.","summary":"Save In-App Purchase Key","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["bundle_id","key_id","issuer_id","private_key"],"properties":{"bundle_id":{"type":"string","description":"App bundle ID the key must have access to","title":"minLength(1)","minLength":1},"key_id":{"type":"string","description":"In-App Purchase Key ID (10-char alphanumeric)","title":"minLength(1)","minLength":1},"issuer_id":{"type":"string","description":"App Store Connect Issuer ID (UUID)","title":"minLength(1)","minLength":1},"private_key":{"type":"string","description":"Contents of the downloaded .p8 private key (PEM)","title":"minLength(1)","minLength":1}},"additionalProperties":false}}},"required":true}}},"/v2/projects/{id}/doctor":{"get":{"tags":["Projects V2"],"operationId":"projectsv2.runDoctor","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"DoctorReport","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DoctorReport"}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Runs a battery of configuration diagnostics across every application in the project (App Store Connect API key, IAP shared secret, product import status, ASC product readiness, revenue tracking) and returns both a structured list of check results and a rendered markdown report. Intended for agents and humans triaging onboarding/configuration issues. Requires projects:read scope.","summary":"Run Project Doctor"}},"/v2/organizations/{organization_id}/access/members":{"get":{"tags":["Organization Access V2"],"operationId":"accessv2.listMembers","parameters":[{"name":"organization_id","in":"path","schema":{"type":"string","description":"a string to be decoded into a number"},"required":true,"description":"a string to be decoded into a number"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","url","data"],"properties":{"object":{"type":"string","enum":["list"]},"url":{"type":"string","enum":["/v2/organizations/:organization_id/access/members"]},"data":{"type":"array","items":{"type":"object","required":["status","membership_id","invitation_id","user_id","name","email","role","project_access_mode","projects"],"properties":{"status":{"type":"string","enum":["active","pending"]},"membership_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}]},"invitation_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"user_id":{"anyOf":[{"type":"number"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"email":{"anyOf":[{"type":"string"},{"type":"null"}]},"role":{"type":"string","enum":["OWNER","ADMIN","USER","EDITOR","READER","ANALYST"]},"project_access_mode":{"type":"string","enum":["ALL_PROJECTS","RESTRICTED"]},"projects":{"type":"array","items":{"type":"object","required":["project_id","project_name","role"],"properties":{"project_id":{"type":"string","description":"a string to be decoded into a number"},"project_name":{"type":"string"},"role":{"type":"string","enum":["ADMIN","EDITOR","VIEWER"]}},"additionalProperties":false}}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"503":{"description":"The upstream WorkOS request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_code":{"type":"string"},"upstream_message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/WorkOSProviderError"]}},"additionalProperties":false,"description":"The upstream WorkOS request failed","title":"WorkOS Provider Error"}}}}},"summary":"List organization members"},"post":{"tags":["Organization Access V2"],"operationId":"accessv2.inviteMember","parameters":[{"name":"organization_id","in":"path","schema":{"type":"string","description":"a string to be decoded into a number"},"required":true,"description":"a string to be decoded into a number"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["status","membership_id","invitation_id","user_id","name","email","role","project_access_mode","projects"],"properties":{"status":{"type":"string","enum":["active","pending"]},"membership_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}]},"invitation_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"user_id":{"anyOf":[{"type":"number"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"email":{"anyOf":[{"type":"string"},{"type":"null"}]},"role":{"type":"string","enum":["OWNER","ADMIN","USER","EDITOR","READER","ANALYST"]},"project_access_mode":{"type":"string","enum":["ALL_PROJECTS","RESTRICTED"]},"projects":{"type":"array","items":{"type":"object","required":["project_id","project_name","role"],"properties":{"project_id":{"type":"string","description":"a string to be decoded into a number"},"project_name":{"type":"string"},"role":{"type":"string","enum":["ADMIN","EDITOR","VIEWER"]}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"409":{"description":"The resource already exists or conflicts with an existing resource","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"identifier":{"type":"string"},"field":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/Conflict"]}},"additionalProperties":false,"description":"The resource already exists or conflicts with an existing resource","title":"Conflict"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"503":{"description":"The upstream WorkOS request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_code":{"type":"string"},"upstream_message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/WorkOSProviderError"]}},"additionalProperties":false,"description":"The upstream WorkOS request failed","title":"WorkOS Provider Error"}}}}},"summary":"Invite organization member","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["email","name","role"],"properties":{"email":{"type":"string","description":"a string matching the pattern ^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$","pattern":"^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$"},"name":{"$ref":"#/components/schemas/NonEmptyString"},"role":{"type":"string","enum":["OWNER","ADMIN","USER","EDITOR","READER","ANALYST"]},"project_access_mode":{"type":"string","enum":["ALL_PROJECTS","RESTRICTED"]},"projects":{"type":"array","items":{"type":"object","required":["project_id","role"],"properties":{"project_id":{"type":"string","description":"a string to be decoded into a number"},"role":{"type":"string","enum":["ADMIN","EDITOR","VIEWER"]}},"additionalProperties":false}}},"additionalProperties":false}}},"required":true}}},"/v2/organizations/{organization_id}/access/members/{membership_id}":{"patch":{"tags":["Organization Access V2"],"operationId":"accessv2.updateMember","parameters":[{"name":"organization_id","in":"path","schema":{"type":"string","description":"a string to be decoded into a number"},"required":true,"description":"a string to be decoded into a number"},{"name":"membership_id","in":"path","schema":{"type":"string","description":"a string to be decoded into a number"},"required":true,"description":"a string to be decoded into a number"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["status","membership_id","invitation_id","user_id","name","email","role","project_access_mode","projects"],"properties":{"status":{"type":"string","enum":["active","pending"]},"membership_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}]},"invitation_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"user_id":{"anyOf":[{"type":"number"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"email":{"anyOf":[{"type":"string"},{"type":"null"}]},"role":{"type":"string","enum":["OWNER","ADMIN","USER","EDITOR","READER","ANALYST"]},"project_access_mode":{"type":"string","enum":["ALL_PROJECTS","RESTRICTED"]},"projects":{"type":"array","items":{"type":"object","required":["project_id","project_name","role"],"properties":{"project_id":{"type":"string","description":"a string to be decoded into a number"},"project_name":{"type":"string"},"role":{"type":"string","enum":["ADMIN","EDITOR","VIEWER"]}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"summary":"Update member organization role or access mode","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"role":{"type":"string","enum":["OWNER","ADMIN","USER","EDITOR","READER","ANALYST"]},"project_access_mode":{"type":"string","enum":["ALL_PROJECTS","RESTRICTED"]}},"additionalProperties":false}}},"required":true}},"delete":{"tags":["Organization Access V2"],"operationId":"accessv2.removeMember","parameters":[{"name":"organization_id","in":"path","schema":{"type":"string","description":"a string to be decoded into a number"},"required":true,"description":"a string to be decoded into a number"},{"name":"membership_id","in":"path","schema":{"type":"string","description":"a string to be decoded into a number"},"required":true,"description":"a string to be decoded into a number"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["success"],"properties":{"success":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"summary":"Remove organization member"}},"/v2/organizations/{organization_id}/access/members/{membership_id}/projects":{"put":{"tags":["Organization Access V2"],"operationId":"accessv2.replaceMemberProjects","parameters":[{"name":"organization_id","in":"path","schema":{"type":"string","description":"a string to be decoded into a number"},"required":true,"description":"a string to be decoded into a number"},{"name":"membership_id","in":"path","schema":{"type":"string","description":"a string to be decoded into a number"},"required":true,"description":"a string to be decoded into a number"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["status","membership_id","invitation_id","user_id","name","email","role","project_access_mode","projects"],"properties":{"status":{"type":"string","enum":["active","pending"]},"membership_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}]},"invitation_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"user_id":{"anyOf":[{"type":"number"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"email":{"anyOf":[{"type":"string"},{"type":"null"}]},"role":{"type":"string","enum":["OWNER","ADMIN","USER","EDITOR","READER","ANALYST"]},"project_access_mode":{"type":"string","enum":["ALL_PROJECTS","RESTRICTED"]},"projects":{"type":"array","items":{"type":"object","required":["project_id","project_name","role"],"properties":{"project_id":{"type":"string","description":"a string to be decoded into a number"},"project_name":{"type":"string"},"role":{"type":"string","enum":["ADMIN","EDITOR","VIEWER"]}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"summary":"Replace member project assignments","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["project_access_mode","projects"],"properties":{"project_access_mode":{"type":"string","enum":["ALL_PROJECTS","RESTRICTED"]},"projects":{"type":"array","items":{"type":"object","required":["project_id","role"],"properties":{"project_id":{"type":"string","description":"a string to be decoded into a number"},"role":{"type":"string","enum":["ADMIN","EDITOR","VIEWER"]}},"additionalProperties":false}}},"additionalProperties":false}}},"required":true}}},"/v2/organizations/{organization_id}/access/invitations/{invitation_id}":{"delete":{"tags":["Organization Access V2"],"operationId":"accessv2.revokeInvitation","parameters":[{"name":"organization_id","in":"path","schema":{"type":"string","description":"a string to be decoded into a number"},"required":true,"description":"a string to be decoded into a number"},{"name":"invitation_id","in":"path","schema":{"type":"string"},"required":true}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["success"],"properties":{"success":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"503":{"description":"The upstream WorkOS request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_code":{"type":"string"},"upstream_message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/WorkOSProviderError"]}},"additionalProperties":false,"description":"The upstream WorkOS request failed","title":"WorkOS Provider Error"}}}}},"summary":"Revoke a pending organization invitation"}},"/v2/organizations/{organization_id}/access/api-keys":{"get":{"tags":["Organization Access V2"],"operationId":"accessv2.listApiKeys","parameters":[{"name":"organization_id","in":"path","schema":{"type":"string","description":"a string to be decoded into a number"},"required":true,"description":"a string to be decoded into a number"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","url","data"],"properties":{"object":{"type":"string","enum":["list"]},"url":{"type":"string","enum":["/v2/organizations/:organization_id/access/api-keys"]},"data":{"type":"array","items":{"type":"object","required":["id","name","masked_token","scopes","project_access_mode","project_ids","created_at","last_used_at"],"properties":{"id":{"type":"integer","description":"an integer","title":"int"},"name":{"type":"string"},"masked_token":{"type":"string"},"scopes":{"type":"array","items":{"type":"string","enum":["projects:read","projects:write","applications:read","applications:write","paywalls:read","paywalls:write","campaigns:read","campaigns:write","products:read","products:write","entitlements:read","entitlements:write","webhooks:read","webhooks:write","charts:read","users:read","users:write","customers:read","imports:write","retention_messages:read","retention_messages:write","notifications:read","notifications:write","assets:read","assets:write","access:read","access:write","data:read","surveys:read","surveys:write","audit_logs:read","onboarding:read","app_store_connect:proxy","apple_search_ads:proxy"]}},"project_access_mode":{"type":"string","enum":["ALL_PROJECTS","RESTRICTED"]},"project_ids":{"type":"array","items":{"type":"string","description":"a string to be decoded into a number"}},"created_at":{"type":"string"},"last_used_at":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"summary":"List organization API keys"},"post":{"tags":["Organization Access V2"],"operationId":"accessv2.createApiKey","parameters":[{"name":"organization_id","in":"path","schema":{"type":"string","description":"a string to be decoded into a number"},"required":true,"description":"a string to be decoded into a number"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","name","token","created_at"],"properties":{"id":{"type":"integer","description":"an integer","title":"int"},"name":{"type":"string"},"token":{"type":"string"},"created_at":{"type":"string"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"summary":"Create organization API key","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["name","scopes","project_access_mode","project_ids"],"properties":{"name":{"type":"string"},"scopes":{"type":"array","items":{"type":"string","enum":["projects:read","projects:write","applications:read","applications:write","paywalls:read","paywalls:write","campaigns:read","campaigns:write","products:read","products:write","entitlements:read","entitlements:write","webhooks:read","webhooks:write","charts:read","users:read","users:write","customers:read","imports:write","retention_messages:read","retention_messages:write","notifications:read","notifications:write","assets:read","assets:write","access:read","access:write","data:read","surveys:read","surveys:write","audit_logs:read","onboarding:read","app_store_connect:proxy","apple_search_ads:proxy"]}},"project_access_mode":{"type":"string","enum":["ALL_PROJECTS","RESTRICTED"]},"project_ids":{"type":"array","items":{"type":"string","description":"a string to be decoded into a number"}}},"additionalProperties":false}}},"required":true}}},"/v2/organizations/{organization_id}/access/agent-key":{"post":{"tags":["Organization Access V2"],"operationId":"accessv2.createAgentKey","parameters":[{"name":"organization_id","in":"path","schema":{"type":"string","description":"a string to be decoded into a number"},"required":true,"description":"a string to be decoded into a number"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","name","token","created_at"],"properties":{"id":{"type":"integer","description":"an integer","title":"int"},"name":{"type":"string"},"token":{"type":"string"},"created_at":{"type":"string"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Self-service: mints a read-only organization API key for the calling dashboard user, scoped to their own role and project restrictions. Scopes cannot be requested by the client. Used by the embedded Agent.","summary":"Create an Agent Key for the calling user"}},"/v2/organizations/{organization_id}/access/api-keys/{token_id}":{"patch":{"tags":["Organization Access V2"],"operationId":"accessv2.updateApiKey","parameters":[{"name":"organization_id","in":"path","schema":{"type":"string","description":"a string to be decoded into a number"},"required":true,"description":"a string to be decoded into a number"},{"name":"token_id","in":"path","schema":{"type":"string","description":"a string to be decoded into a number"},"required":true,"description":"a string to be decoded into a number"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","name","masked_token","scopes","project_access_mode","project_ids","created_at","last_used_at"],"properties":{"id":{"type":"integer","description":"an integer","title":"int"},"name":{"type":"string"},"masked_token":{"type":"string"},"scopes":{"type":"array","items":{"type":"string","enum":["projects:read","projects:write","applications:read","applications:write","paywalls:read","paywalls:write","campaigns:read","campaigns:write","products:read","products:write","entitlements:read","entitlements:write","webhooks:read","webhooks:write","charts:read","users:read","users:write","customers:read","imports:write","retention_messages:read","retention_messages:write","notifications:read","notifications:write","assets:read","assets:write","access:read","access:write","data:read","surveys:read","surveys:write","audit_logs:read","onboarding:read","app_store_connect:proxy","apple_search_ads:proxy"]}},"project_access_mode":{"type":"string","enum":["ALL_PROJECTS","RESTRICTED"]},"project_ids":{"type":"array","items":{"type":"string","description":"a string to be decoded into a number"}},"created_at":{"type":"string"},"last_used_at":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"summary":"Update organization API key restrictions","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string"},"scopes":{"type":"array","items":{"type":"string","enum":["projects:read","projects:write","applications:read","applications:write","paywalls:read","paywalls:write","campaigns:read","campaigns:write","products:read","products:write","entitlements:read","entitlements:write","webhooks:read","webhooks:write","charts:read","users:read","users:write","customers:read","imports:write","retention_messages:read","retention_messages:write","notifications:read","notifications:write","assets:read","assets:write","access:read","access:write","data:read","surveys:read","surveys:write","audit_logs:read","onboarding:read","app_store_connect:proxy","apple_search_ads:proxy"]}},"project_access_mode":{"type":"string","enum":["ALL_PROJECTS","RESTRICTED"]},"project_ids":{"type":"array","items":{"type":"string","description":"a string to be decoded into a number"}}},"additionalProperties":false}}},"required":true}},"delete":{"tags":["Organization Access V2"],"operationId":"accessv2.revokeApiKey","parameters":[{"name":"organization_id","in":"path","schema":{"type":"string","description":"a string to be decoded into a number"},"required":true,"description":"a string to be decoded into a number"},{"name":"token_id","in":"path","schema":{"type":"string","description":"a string to be decoded into a number"},"required":true,"description":"a string to be decoded into a number"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["success"],"properties":{"success":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"summary":"Revoke organization API key"}},"/v2/me":{"get":{"tags":["Me V2"],"operationId":"me.getSelf","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","id","name","email","role","is_bot_user","created_at"],"properties":{"object":{"type":"string","enum":["user"]},"id":{"type":"number"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"email":{"type":"string"},"role":{"type":"string","enum":["SUPERADMIN","CUSTOMER"]},"is_bot_user":{"type":"boolean"},"created_at":{"type":"string"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns the authenticated user's profile, including their global role.","summary":"Get Current User"}},"/v2/me/organizations":{"get":{"tags":["Me V2"],"operationId":"me.listOrganizations","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","data"],"properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object","required":["id","name","role"],"properties":{"id":{"type":"integer","description":"an integer","title":"int"},"name":{"type":"string"},"role":{"type":"string","enum":["OWNER","ADMIN","USER","EDITOR","READER","ANALYST"]}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns a list of organizations the authenticated user is a member of, including their role in each organization.","summary":"List Organizations"},"post":{"tags":["Me V2"],"operationId":"me.createOrganization","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","name","role","created_at"],"properties":{"id":{"type":"integer","description":"an integer","title":"int"},"object":{"type":"string","enum":["organization"]},"name":{"type":"string"},"role":{"type":"string","enum":["OWNER"]},"created_at":{"type":"string"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Creates a new organization with the authenticated user as the owner.","summary":"Create Organization","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"a string at least 1 character(s) long","title":"minLength(1)","minLength":1}},"additionalProperties":false}}},"required":true}}},"/v2/me/agent-token":{"post":{"tags":["Me V2"],"operationId":"me.createAgentToken","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","token","expires_at"],"properties":{"object":{"type":"string","enum":["agent_token"]},"token":{"type":"string"},"expires_at":{"type":"string"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Exchanges the caller's WorkOS access token for a short-lived, read-only Agent Token identifying the same user. Only callable with a WorkOS access token — API keys and Agent Tokens are rejected, so neither can be laundered into a user credential or extended.","summary":"Create Agent Token"}},"/v2/paywalls/templates":{"get":{"tags":["Paywall Templates (Public)"],"operationId":"paywalltemplatesv2.listTemplates","parameters":[{"name":"limit","in":"query","schema":{"allOf":[{"$ref":"#/components/schemas/NumberFromString"}],"description":"Maximum number of items to return (1-300, default: 10)"},"required":false,"description":"Maximum number of items to return (1-300, default: 10)"},{"name":"starting_after","in":"query","schema":{"type":"string","description":"a string to be decoded into a number"},"required":false,"description":"a string to be decoded into a number"},{"name":"ending_before","in":"query","schema":{"type":"string","description":"a string to be decoded into a number"},"required":false,"description":"a string to be decoded into a number"},{"name":"category","in":"query","schema":{"type":"string"},"required":false}],"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","url","has_more","data"],"properties":{"object":{"type":"string","enum":["list"],"description":"Object type, always `list`"},"url":{"type":"string","enum":["/v2/paywalls/templates"],"description":"API endpoint URL for this list"},"has_more":{"type":"boolean","description":"Whether there are more results available beyond this page"},"data":{"type":"array","items":{"type":"object","required":["id","object","application_id","name","description","paywall_url","categories","preview_url","visibility","presentation_style","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the template"},"object":{"type":"string","enum":["paywall_template"],"description":"Object type, always `paywall_template`"},"application_id":{"type":"string","description":"ID of the application that owns this template"},"name":{"type":"string","description":"Display name of the template"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Description of the template, or null"},"paywall_url":{"type":"string","description":"URL to the interactive template paywall"},"categories":{"type":"array","items":{"type":"string"},"description":"Categories this template belongs to"},"preview_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"URL to preview the template, or null"},"visibility":{"anyOf":[{"type":"string","enum":["public"],"description":"Visible to all organizations"},{"type":"string","enum":["organization"],"description":"Visible only to the owning organization"}],"description":"Visibility scope of the template"},"presentation_style":{"anyOf":[{"type":"string","enum":["fullscreen"],"description":"Full screen presentation"},{"type":"string","enum":["modal"],"description":"Modal presentation"},{"type":"string","enum":["sheet"],"description":"Bottom sheet presentation"},{"type":"string","enum":["push"],"description":"Push navigation presentation"}],"description":"Default presentation style of the template"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the template was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the template was last updated"}},"additionalProperties":false},"description":"List of results"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpApiDecodeError"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns a list of globally-available paywall templates. Public endpoint — no authentication required. Filter by category.","summary":"List Paywall Templates"}},"/v2/paywalls/resolve":{"get":{"tags":["Paywall Resolver (Public)"],"operationId":"paywallresolvev2.resolvePaywall","parameters":[{"name":"id","in":"query","schema":{"type":"string","description":"Numeric paywall database id to resolve (from a preview deep link `paywall_id`)"},"required":true,"description":"Numeric paywall database id to resolve (from a preview deep link `paywall_id`)"}],"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","identifier","name","application_id"],"properties":{"id":{"type":"string","description":"Numeric paywall database id"},"identifier":{"type":"string","description":"URL-safe identifier (slug) for the paywall"},"name":{"type":"string","description":"Display name of the paywall"},"application_id":{"type":"string","description":"ID of the application this paywall belongs to"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpApiDecodeError"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns the identifier and name for a paywall id, scoped to the application in the caller's preview capability (sat_ or API-minted pvt_), sent as Authorization: Bearer <token>. Returns 404 if the token is missing/invalid or the paywall does not belong to that application.","summary":"Resolve Paywall by ID"}},"/v2/paywalls/preview-list":{"get":{"tags":["Paywall Resolver (Public)"],"operationId":"paywallresolvev2.listPreviewPaywalls","parameters":[],"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","data","has_more","application_id"],"properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object","required":["id","identifier","name"],"properties":{"id":{"type":"string","description":"Numeric paywall database id"},"identifier":{"type":"string","description":"URL-safe identifier (slug) for the paywall"},"name":{"type":"string","description":"Display name of the paywall"}},"additionalProperties":false}},"has_more":{"type":"boolean","description":"True when the application has more paywalls than the returned cap"},"application_id":{"type":"string","description":"ID of the application these paywalls belong to"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpApiDecodeError"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns id, identifier and name for non-archived paywalls allowed by the caller's preview capability (sat_ or API-minted pvt_), sent as Authorization: Bearer <token>. Paywall-scoped pvt_ tokens return one item; application-scoped pvt_ tokens enable the full picker. Returns 404 if the token is missing or invalid.","summary":"List Paywalls for Preview"}},"/internal/v2/integrations/{project_id}/{integration_id}/event-name-mappings":{"get":{"tags":["Integration Event Names (Service)"],"operationId":"integrationeventnamesv2.getEventNameMappings","parameters":[{"name":"project_id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"integration_id","in":"path","schema":{"type":"string","description":"Integration id as served by integration-router (e.g. 'mixpanel')"},"required":true,"description":"Integration id as served by integration-router (e.g. 'mixpanel')"}],"security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["mappings"],"properties":{"mappings":{"anyOf":[{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 255 character(s) long","title":"maxLength(255)","minLength":1,"maxLength":255}},{"type":"null"}]}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpApiDecodeError"}}}},"401":{"description":"An error occurred while validating the API key","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns the custom event names configured for a project/integration pair, or null when none are configured. Called once per cache TTL per pair by integration-router.","summary":"Get Event Name Mappings"}},"/v2/paywalls":{"get":{"tags":["Paywalls V2"],"operationId":"paywallsv2.listPaywalls","parameters":[{"name":"limit","in":"query","schema":{"allOf":[{"$ref":"#/components/schemas/NumberFromString"}],"description":"Maximum number of items to return (1-100, default: 10)"},"required":false,"description":"Maximum number of items to return (1-100, default: 10)"},{"name":"starting_after","in":"query","schema":{"type":"string","description":"a string to be decoded into a number"},"required":false,"description":"a string to be decoded into a number"},{"name":"ending_before","in":"query","schema":{"type":"string","description":"a string to be decoded into a number"},"required":false,"description":"a string to be decoded into a number"},{"name":"application_id","in":"query","schema":{"type":"string","description":"Filter by application ID (required)"},"required":true,"description":"Filter by application ID (required)"},{"name":"status","in":"query","schema":{"anyOf":[{"type":"string","enum":["draft"],"description":"Paywall is not active in any enabled campaign (inactive)"},{"type":"string","enum":["active"],"description":"Paywall is active in at least one enabled campaign"},{"type":"string","enum":["archived"],"description":"Paywall has been archived"}],"description":"Current status of the paywall"},"required":false,"description":"Current status of the paywall"},{"name":"archived","in":"query","schema":{"allOf":[{"$ref":"#/components/schemas/BooleanFromString"}],"description":"Include archived paywalls (default: false)"},"required":false,"description":"Include archived paywalls (default: false)"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","url","has_more","data"],"properties":{"object":{"type":"string","enum":["list"],"description":"Object type, always `list`"},"url":{"type":"string","enum":["/v2/paywalls"],"description":"API endpoint URL for this list"},"has_more":{"type":"boolean","description":"Whether there are more results available beyond this page"},"data":{"type":"array","items":{"type":"object","required":["id","object","application_id","project_id","application_platform","name","identifier","paywall_url","presentation_style","status","version","headless","products","feature_gating","source_template","created_at","updated_at","published_at","archived","metadata","preview_url"],"properties":{"id":{"type":"string","description":"Unique identifier for the paywall"},"object":{"type":"string","enum":["paywall"],"description":"Object type, always `paywall`"},"application_id":{"type":"string","description":"ID of the application this paywall belongs to"},"project_id":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the project containing the paywall's application, or null"},"application_platform":{"anyOf":[{"anyOf":[{"type":"string","enum":["ios"],"description":"iOS (App Store)"},{"type":"string","enum":["android"],"description":"Android (Google Play)"},{"type":"string","enum":["flutter"],"description":"Flutter (legacy, read-only - cannot be created via API)"},{"type":"string","enum":["react_native"],"description":"React Native (legacy, read-only - cannot be created via API)"},{"type":"string","enum":["web"],"description":"Web (Stripe)"},{"type":"string","enum":["promotional"],"description":"Promotional offers application (read-only - cannot be created via API)"},{"type":"string","enum":["webapp"],"description":"Web App (Web SDK) (read-only - cannot be created via API)"}],"description":"Platform type for the application"},{"type":"null"}],"description":"Platform of the application this paywall belongs to, or null"},"name":{"type":"string","description":"Display name of the paywall"},"identifier":{"type":"string","description":"URL-safe identifier (slug) for the paywall"},"paywall_url":{"type":"string","description":"URL to the interactive paywall"},"presentation_style":{"anyOf":[{"type":"string","enum":["fullscreen"],"description":"Full screen presentation"},{"type":"string","enum":["modal"],"description":"Modal presentation"},{"type":"string","enum":["sheet"],"description":"Bottom sheet presentation"},{"type":"string","enum":["push"],"description":"Push navigation presentation"}],"description":"How the paywall is presented to the user"},"status":{"anyOf":[{"type":"string","enum":["draft"],"description":"Paywall is not active in any enabled campaign (inactive)"},{"type":"string","enum":["active"],"description":"Paywall is active in at least one enabled campaign"},{"type":"string","enum":["archived"],"description":"Paywall has been archived"}],"description":"Current status of the paywall"},"version":{"type":"number","description":"Current published version number"},"headless":{"type":"boolean","description":"Whether this is a code-first (headless) paywall, authored with the superwall framework and shipped with `superwall push` / `superwall promote` rather than the visual editor. A headless paywall with `version: 0` has been pushed but never promoted, so it has no live snapshot and cannot back a campaign variant."},"products":{"type":"array","items":{"type":"object","required":["store","identifier","reference_name"],"properties":{"store":{"anyOf":[{"type":"string","enum":["app-store"],"description":"Apple App Store product"},{"type":"string","enum":["play-store"],"description":"Google Play product"},{"type":"string","enum":["stripe"],"description":"Stripe product"},{"type":"string","enum":["custom"],"description":"Custom (external purchase controller)"}],"description":"Store this product belongs to"},"identifier":{"type":"string","description":"Platform-specific product identifier"},"reference_name":{"type":"string","description":"Stable reference name used in paywall editor/runtime (for example: primary)","title":"minLength(1)","minLength":1}},"additionalProperties":false,"description":"Paywall product entry"},"description":"List of product entries attached to this paywall"},"feature_gating":{"anyOf":[{"type":"string","enum":["gated"],"description":"Access is gated behind a purchase"},{"type":"string","enum":["non_gated"],"description":"Access is not gated"}],"description":"Whether the feature is gated behind a purchase"},"source_template":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the template this paywall was created from, or null"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the paywall was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the paywall was last updated"},"published_at":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 timestamp of when the paywall was last published, or null"},"archived":{"type":"boolean","description":"Whether the paywall is archived"},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500}},"preview_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"URL to a preview screenshot of the paywall, or null"}},"additionalProperties":false},"description":"List of results"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns a list of paywalls for the specified application. Requires paywalls:read scope. The `application_id` query parameter is required.","summary":"List Paywalls"},"post":{"tags":["Paywalls V2"],"operationId":"paywallsv2.createPaywall","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","project_id","application_platform","name","identifier","paywall_url","presentation_style","status","version","headless","products","feature_gating","source_template","created_at","updated_at","published_at","archived","metadata","preview_url"],"properties":{"id":{"type":"string","description":"Unique identifier for the paywall"},"object":{"type":"string","enum":["paywall"],"description":"Object type, always `paywall`"},"application_id":{"type":"string","description":"ID of the application this paywall belongs to"},"project_id":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the project containing the paywall's application, or null"},"application_platform":{"anyOf":[{"anyOf":[{"type":"string","enum":["ios"],"description":"iOS (App Store)"},{"type":"string","enum":["android"],"description":"Android (Google Play)"},{"type":"string","enum":["flutter"],"description":"Flutter (legacy, read-only - cannot be created via API)"},{"type":"string","enum":["react_native"],"description":"React Native (legacy, read-only - cannot be created via API)"},{"type":"string","enum":["web"],"description":"Web (Stripe)"},{"type":"string","enum":["promotional"],"description":"Promotional offers application (read-only - cannot be created via API)"},{"type":"string","enum":["webapp"],"description":"Web App (Web SDK) (read-only - cannot be created via API)"}],"description":"Platform type for the application"},{"type":"null"}],"description":"Platform of the application this paywall belongs to, or null"},"name":{"type":"string","description":"Display name of the paywall"},"identifier":{"type":"string","description":"URL-safe identifier (slug) for the paywall"},"paywall_url":{"type":"string","description":"URL to the interactive paywall"},"presentation_style":{"anyOf":[{"type":"string","enum":["fullscreen"],"description":"Full screen presentation"},{"type":"string","enum":["modal"],"description":"Modal presentation"},{"type":"string","enum":["sheet"],"description":"Bottom sheet presentation"},{"type":"string","enum":["push"],"description":"Push navigation presentation"}],"description":"How the paywall is presented to the user"},"status":{"anyOf":[{"type":"string","enum":["draft"],"description":"Paywall is not active in any enabled campaign (inactive)"},{"type":"string","enum":["active"],"description":"Paywall is active in at least one enabled campaign"},{"type":"string","enum":["archived"],"description":"Paywall has been archived"}],"description":"Current status of the paywall"},"version":{"type":"number","description":"Current published version number"},"headless":{"type":"boolean","description":"Whether this is a code-first (headless) paywall, authored with the superwall framework and shipped with `superwall push` / `superwall promote` rather than the visual editor. A headless paywall with `version: 0` has been pushed but never promoted, so it has no live snapshot and cannot back a campaign variant."},"products":{"type":"array","items":{"type":"object","required":["store","identifier","reference_name"],"properties":{"store":{"anyOf":[{"type":"string","enum":["app-store"],"description":"Apple App Store product"},{"type":"string","enum":["play-store"],"description":"Google Play product"},{"type":"string","enum":["stripe"],"description":"Stripe product"},{"type":"string","enum":["custom"],"description":"Custom (external purchase controller)"}],"description":"Store this product belongs to"},"identifier":{"type":"string","description":"Platform-specific product identifier"},"reference_name":{"type":"string","description":"Stable reference name used in paywall editor/runtime (for example: primary)","title":"minLength(1)","minLength":1}},"additionalProperties":false,"description":"Paywall product entry"},"description":"List of product entries attached to this paywall"},"feature_gating":{"anyOf":[{"type":"string","enum":["gated"],"description":"Access is gated behind a purchase"},{"type":"string","enum":["non_gated"],"description":"Access is not gated"}],"description":"Whether the feature is gated behind a purchase"},"source_template":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the template this paywall was created from, or null"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the paywall was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the paywall was last updated"},"published_at":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 timestamp of when the paywall was last published, or null"},"archived":{"type":"boolean","description":"Whether the paywall is archived"},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500}},"preview_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"URL to a preview screenshot of the paywall, or null"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"},{"type":"object","required":["message","template_id","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"template_id":{"type":"string"},"param":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidTemplateReferenceError"]}},"additionalProperties":false,"title":"Invalid Template Reference"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"409":{"description":"The resource already exists or conflicts with an existing resource","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"identifier":{"type":"string"},"field":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/Conflict"]}},"additionalProperties":false,"description":"The resource already exists or conflicts with an existing resource","title":"Conflict"},{"type":"object","required":["message","identifier","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"identifier":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PaywallAlreadyExistsError"]}},"additionalProperties":false,"title":"Paywall Already Exists"}]}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Creates a new paywall in the specified application. Optionally create from a template by providing the `template` field, or create a self-hosted paywall by providing `url`. Self-hosted `url` cannot be combined with `template`. Requires paywalls:write scope.","summary":"Create Paywall","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id","name"],"properties":{"application_id":{"type":"string","description":"ID of the application to create the paywall in"},"name":{"type":"string","description":"Display name of the paywall","title":"maxLength(255)","minLength":1,"maxLength":255},"identifier":{"type":"string","description":"URL-safe identifier (slug). Auto-generated from name if not provided","title":"maxLength(255)","maxLength":255},"url":{"type":"string","description":"Canonical self-hosted paywall URL for non-template creates. Cannot be combined with `template`."},"presentation_style":{"anyOf":[{"type":"string","enum":["fullscreen"],"description":"Full screen presentation"},{"type":"string","enum":["modal"],"description":"Modal presentation"},{"type":"string","enum":["sheet"],"description":"Bottom sheet presentation"},{"type":"string","enum":["push"],"description":"Push navigation presentation"}],"description":"How the paywall is presented. Defaults to `fullscreen`"},"products":{"type":"array","items":{"type":"object","required":["store","identifier","reference_name"],"properties":{"store":{"anyOf":[{"type":"string","enum":["app-store"],"description":"Apple App Store product"},{"type":"string","enum":["play-store"],"description":"Google Play product"},{"type":"string","enum":["stripe"],"description":"Stripe product"},{"type":"string","enum":["custom"],"description":"Custom (external purchase controller)"}],"description":"Store this product belongs to"},"identifier":{"type":"string","description":"Platform-specific product identifier"},"reference_name":{"type":"string","description":"Stable reference name used in paywall editor/runtime (for example: primary)","title":"minLength(1)","minLength":1}},"additionalProperties":false,"description":"Paywall product entry"},"description":"List of product entries to attach to this paywall"},"feature_gating":{"anyOf":[{"type":"string","enum":["gated"],"description":"Access is gated behind a purchase"},{"type":"string","enum":["non_gated"],"description":"Access is not gated"}],"description":"Whether the feature is gated behind a purchase. Defaults to `non_gated`"},"template":{"type":"string","description":"ID of the template to create the paywall from"},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500},"description":"Arbitrary key-value metadata to attach to the paywall"},"headless":{"type":"boolean","description":"Creates a code-first (headless) paywall, authored with the superwall framework and updated with `superwall push` / `superwall promote` rather than the visual editor. Fixed at creation: existing paywalls cannot be converted, and headless paywalls cannot be opened in the editor. Cannot be combined with `template`."}},"additionalProperties":false}}},"required":true}}},"/v2/paywalls/templates/{id}":{"get":{"tags":["Paywalls V2"],"operationId":"paywallsv2.retrieveTemplate","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Template ID"},"required":true,"description":"Template ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","name","description","paywall_url","categories","preview_url","visibility","presentation_style","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the template"},"object":{"type":"string","enum":["paywall_template"],"description":"Object type, always `paywall_template`"},"application_id":{"type":"string","description":"ID of the application that owns this template"},"name":{"type":"string","description":"Display name of the template"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Description of the template, or null"},"paywall_url":{"type":"string","description":"URL to the interactive template paywall"},"categories":{"type":"array","items":{"type":"string"},"description":"Categories this template belongs to"},"preview_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"URL to preview the template, or null"},"visibility":{"anyOf":[{"type":"string","enum":["public"],"description":"Visible to all organizations"},{"type":"string","enum":["organization"],"description":"Visible only to the owning organization"}],"description":"Visibility scope of the template"},"presentation_style":{"anyOf":[{"type":"string","enum":["fullscreen"],"description":"Full screen presentation"},{"type":"string","enum":["modal"],"description":"Modal presentation"},{"type":"string","enum":["sheet"],"description":"Bottom sheet presentation"},{"type":"string","enum":["push"],"description":"Push navigation presentation"}],"description":"Default presentation style of the template"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the template was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the template was last updated"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Retrieves a paywall template by ID. Requires paywalls:read scope.","summary":"Retrieve Paywall Template"}},"/v2/paywalls/{id}/preview-token":{"post":{"tags":["Paywalls V2"],"operationId":"paywallsv2.createPreviewToken","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Paywall ID"},"required":true,"description":"Paywall ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","token","application_id","paywall_id","scope","expires_at","deep_link"],"properties":{"object":{"type":"string","enum":["paywall_preview_token"]},"token":{"type":"string","description":"Bearer token consumed by the device debugger"},"application_id":{"type":"string","description":"a string to be decoded into a number"},"paywall_id":{"type":"string","description":"a string to be decoded into a number"},"scope":{"type":"string","enum":["paywall","application"]},"expires_at":{"type":"string","description":"ISO 8601 expiration timestamp"},"deep_link":{"type":"string","description":"Direct custom-scheme URL for opening the customer application"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Creates a short-lived device-preview token using an organization API key. Paywall scope is the default; application scope enables the debugger paywall picker. Requires paywalls:read scope.","summary":"Create Paywall Preview Token","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"expires_in":{"allOf":[{"$ref":"#/components/schemas/Int"}],"description":"Token lifetime in seconds (300-86400, default: 3600)"},"scope":{"type":"string","enum":["paywall","application"],"description":"`paywall` restricts the debugger to this paywall; `application` enables all paywalls in the application"}},"additionalProperties":false}}},"required":true}}},"/v2/paywalls/{id}":{"get":{"tags":["Paywalls V2"],"operationId":"paywallsv2.retrievePaywall","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Paywall ID"},"required":true,"description":"Paywall ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","project_id","application_platform","name","identifier","paywall_url","presentation_style","status","version","headless","products","feature_gating","source_template","created_at","updated_at","published_at","archived","metadata","preview_url"],"properties":{"id":{"type":"string","description":"Unique identifier for the paywall"},"object":{"type":"string","enum":["paywall"],"description":"Object type, always `paywall`"},"application_id":{"type":"string","description":"ID of the application this paywall belongs to"},"project_id":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the project containing the paywall's application, or null"},"application_platform":{"anyOf":[{"anyOf":[{"type":"string","enum":["ios"],"description":"iOS (App Store)"},{"type":"string","enum":["android"],"description":"Android (Google Play)"},{"type":"string","enum":["flutter"],"description":"Flutter (legacy, read-only - cannot be created via API)"},{"type":"string","enum":["react_native"],"description":"React Native (legacy, read-only - cannot be created via API)"},{"type":"string","enum":["web"],"description":"Web (Stripe)"},{"type":"string","enum":["promotional"],"description":"Promotional offers application (read-only - cannot be created via API)"},{"type":"string","enum":["webapp"],"description":"Web App (Web SDK) (read-only - cannot be created via API)"}],"description":"Platform type for the application"},{"type":"null"}],"description":"Platform of the application this paywall belongs to, or null"},"name":{"type":"string","description":"Display name of the paywall"},"identifier":{"type":"string","description":"URL-safe identifier (slug) for the paywall"},"paywall_url":{"type":"string","description":"URL to the interactive paywall"},"presentation_style":{"anyOf":[{"type":"string","enum":["fullscreen"],"description":"Full screen presentation"},{"type":"string","enum":["modal"],"description":"Modal presentation"},{"type":"string","enum":["sheet"],"description":"Bottom sheet presentation"},{"type":"string","enum":["push"],"description":"Push navigation presentation"}],"description":"How the paywall is presented to the user"},"status":{"anyOf":[{"type":"string","enum":["draft"],"description":"Paywall is not active in any enabled campaign (inactive)"},{"type":"string","enum":["active"],"description":"Paywall is active in at least one enabled campaign"},{"type":"string","enum":["archived"],"description":"Paywall has been archived"}],"description":"Current status of the paywall"},"version":{"type":"number","description":"Current published version number"},"headless":{"type":"boolean","description":"Whether this is a code-first (headless) paywall, authored with the superwall framework and shipped with `superwall push` / `superwall promote` rather than the visual editor. A headless paywall with `version: 0` has been pushed but never promoted, so it has no live snapshot and cannot back a campaign variant."},"products":{"type":"array","items":{"type":"object","required":["store","identifier","reference_name"],"properties":{"store":{"anyOf":[{"type":"string","enum":["app-store"],"description":"Apple App Store product"},{"type":"string","enum":["play-store"],"description":"Google Play product"},{"type":"string","enum":["stripe"],"description":"Stripe product"},{"type":"string","enum":["custom"],"description":"Custom (external purchase controller)"}],"description":"Store this product belongs to"},"identifier":{"type":"string","description":"Platform-specific product identifier"},"reference_name":{"type":"string","description":"Stable reference name used in paywall editor/runtime (for example: primary)","title":"minLength(1)","minLength":1}},"additionalProperties":false,"description":"Paywall product entry"},"description":"List of product entries attached to this paywall"},"feature_gating":{"anyOf":[{"type":"string","enum":["gated"],"description":"Access is gated behind a purchase"},{"type":"string","enum":["non_gated"],"description":"Access is not gated"}],"description":"Whether the feature is gated behind a purchase"},"source_template":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the template this paywall was created from, or null"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the paywall was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the paywall was last updated"},"published_at":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 timestamp of when the paywall was last published, or null"},"archived":{"type":"boolean","description":"Whether the paywall is archived"},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500}},"preview_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"URL to a preview screenshot of the paywall, or null"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Retrieves a paywall by ID. Requires paywalls:read scope.","summary":"Retrieve Paywall"},"patch":{"tags":["Paywalls V2"],"operationId":"paywallsv2.updatePaywall","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Paywall ID"},"required":true,"description":"Paywall ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","project_id","application_platform","name","identifier","paywall_url","presentation_style","status","version","headless","products","feature_gating","source_template","created_at","updated_at","published_at","archived","metadata","preview_url"],"properties":{"id":{"type":"string","description":"Unique identifier for the paywall"},"object":{"type":"string","enum":["paywall"],"description":"Object type, always `paywall`"},"application_id":{"type":"string","description":"ID of the application this paywall belongs to"},"project_id":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the project containing the paywall's application, or null"},"application_platform":{"anyOf":[{"anyOf":[{"type":"string","enum":["ios"],"description":"iOS (App Store)"},{"type":"string","enum":["android"],"description":"Android (Google Play)"},{"type":"string","enum":["flutter"],"description":"Flutter (legacy, read-only - cannot be created via API)"},{"type":"string","enum":["react_native"],"description":"React Native (legacy, read-only - cannot be created via API)"},{"type":"string","enum":["web"],"description":"Web (Stripe)"},{"type":"string","enum":["promotional"],"description":"Promotional offers application (read-only - cannot be created via API)"},{"type":"string","enum":["webapp"],"description":"Web App (Web SDK) (read-only - cannot be created via API)"}],"description":"Platform type for the application"},{"type":"null"}],"description":"Platform of the application this paywall belongs to, or null"},"name":{"type":"string","description":"Display name of the paywall"},"identifier":{"type":"string","description":"URL-safe identifier (slug) for the paywall"},"paywall_url":{"type":"string","description":"URL to the interactive paywall"},"presentation_style":{"anyOf":[{"type":"string","enum":["fullscreen"],"description":"Full screen presentation"},{"type":"string","enum":["modal"],"description":"Modal presentation"},{"type":"string","enum":["sheet"],"description":"Bottom sheet presentation"},{"type":"string","enum":["push"],"description":"Push navigation presentation"}],"description":"How the paywall is presented to the user"},"status":{"anyOf":[{"type":"string","enum":["draft"],"description":"Paywall is not active in any enabled campaign (inactive)"},{"type":"string","enum":["active"],"description":"Paywall is active in at least one enabled campaign"},{"type":"string","enum":["archived"],"description":"Paywall has been archived"}],"description":"Current status of the paywall"},"version":{"type":"number","description":"Current published version number"},"headless":{"type":"boolean","description":"Whether this is a code-first (headless) paywall, authored with the superwall framework and shipped with `superwall push` / `superwall promote` rather than the visual editor. A headless paywall with `version: 0` has been pushed but never promoted, so it has no live snapshot and cannot back a campaign variant."},"products":{"type":"array","items":{"type":"object","required":["store","identifier","reference_name"],"properties":{"store":{"anyOf":[{"type":"string","enum":["app-store"],"description":"Apple App Store product"},{"type":"string","enum":["play-store"],"description":"Google Play product"},{"type":"string","enum":["stripe"],"description":"Stripe product"},{"type":"string","enum":["custom"],"description":"Custom (external purchase controller)"}],"description":"Store this product belongs to"},"identifier":{"type":"string","description":"Platform-specific product identifier"},"reference_name":{"type":"string","description":"Stable reference name used in paywall editor/runtime (for example: primary)","title":"minLength(1)","minLength":1}},"additionalProperties":false,"description":"Paywall product entry"},"description":"List of product entries attached to this paywall"},"feature_gating":{"anyOf":[{"type":"string","enum":["gated"],"description":"Access is gated behind a purchase"},{"type":"string","enum":["non_gated"],"description":"Access is not gated"}],"description":"Whether the feature is gated behind a purchase"},"source_template":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the template this paywall was created from, or null"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the paywall was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the paywall was last updated"},"published_at":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 timestamp of when the paywall was last published, or null"},"archived":{"type":"boolean","description":"Whether the paywall is archived"},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500}},"preview_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"URL to a preview screenshot of the paywall, or null"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"422":{"description":"@superwall/api-schema/v2/errors/PaywallArchivedError","content":{"application/json":{"schema":{"type":"object","required":["message","paywall_id","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"paywall_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PaywallArchivedError"]}},"additionalProperties":false,"title":"Paywall Archived"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Updates a paywall's name, presentation style, products, feature gating, or metadata. Requires paywalls:write scope.","summary":"Update Paywall","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"Display name of the paywall","title":"maxLength(255)","minLength":1,"maxLength":255},"url":{"type":"string","description":"Canonical self-hosted paywall URL"},"presentation_style":{"anyOf":[{"type":"string","enum":["fullscreen"],"description":"Full screen presentation"},{"type":"string","enum":["modal"],"description":"Modal presentation"},{"type":"string","enum":["sheet"],"description":"Bottom sheet presentation"},{"type":"string","enum":["push"],"description":"Push navigation presentation"}],"description":"How the paywall is presented to the user"},"products":{"type":"array","items":{"type":"object","required":["store","identifier","reference_name"],"properties":{"store":{"anyOf":[{"type":"string","enum":["app-store"],"description":"Apple App Store product"},{"type":"string","enum":["play-store"],"description":"Google Play product"},{"type":"string","enum":["stripe"],"description":"Stripe product"},{"type":"string","enum":["custom"],"description":"Custom (external purchase controller)"}],"description":"Store this product belongs to"},"identifier":{"type":"string","description":"Platform-specific product identifier"},"reference_name":{"type":"string","description":"Stable reference name used in paywall editor/runtime (for example: primary)","title":"minLength(1)","minLength":1}},"additionalProperties":false,"description":"Paywall product entry"},"description":"List of product entries to attach to this paywall"},"feature_gating":{"anyOf":[{"type":"string","enum":["gated"],"description":"Access is gated behind a purchase"},{"type":"string","enum":["non_gated"],"description":"Access is not gated"}],"description":"Whether the feature is gated behind a purchase"},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500},"description":"Arbitrary key-value metadata to attach to the paywall"}},"additionalProperties":false}}},"required":true}}},"/v2/paywalls/{id}/publish":{"post":{"tags":["Paywalls V2"],"operationId":"paywallsv2.publishPaywall","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Paywall ID"},"required":true,"description":"Paywall ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","id","version","published_at"],"properties":{"object":{"type":"string","enum":["paywall"],"description":"Object type, always `paywall`"},"id":{"type":"string","description":"ID of the paywall"},"version":{"type":"number","description":"The new published version number"},"published_at":{"type":"string","description":"ISO 8601 timestamp of when the paywall was published"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"422":{"description":"@superwall/api-schema/v2/errors/PaywallArchivedError","content":{"application/json":{"schema":{"type":"object","required":["message","paywall_id","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"paywall_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PaywallArchivedError"]}},"additionalProperties":false,"title":"Paywall Archived"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Publishes the current draft as a new version. Requires paywalls:write scope.","summary":"Publish Paywall"}},"/v2/paywalls/{id}/versions":{"post":{"tags":["Paywalls V2"],"operationId":"paywallsv2.pushHeadlessVersion","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Paywall ID"},"required":true,"description":"Paywall ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","id","version","created_at","snapshot_id","url"],"properties":{"object":{"type":"string","enum":["paywall.version"],"description":"Object type, always `paywall.version`"},"id":{"type":"string","description":"ID of the paywall"},"version":{"type":"number","description":"The pushed version number"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the version was created"},"snapshot_id":{"type":"string","description":"Content hash (sha256) identifying the pushed snapshot"},"url":{"type":"string","description":"Immutable URL the pushed snapshot is served from"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"422":{"description":"@superwall/api-schema/v2/errors/PaywallArchivedError","content":{"application/json":{"schema":{"type":"object","required":["message","paywall_id","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"paywall_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PaywallArchivedError"]}},"additionalProperties":false,"title":"Paywall Archived"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Pushes a self-contained headless (code-first) paywall snapshot as a new immutable version: stores the content-addressed artifact and creates the version + snapshot. Production is untouched — promote makes a pushed version live. Pushing identical content returns the existing version. Requires paywalls:write scope.","summary":"Push Headless Version","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["html"],"properties":{"html":{"type":"string","description":"The self-contained HTML snapshot to push, at most 5 MB. Stored content-addressed: pushing identical content returns the existing version.","title":"maxLength(5000000)","minLength":1,"maxLength":5000000},"surface":{"type":"string","description":"The framework surface identifier (directory name) this snapshot was built from — stamped into paywall metadata so repeated pushes bind to the same paywall."},"assets":{"type":"array","items":{"type":"object","required":["url","mime_type"],"properties":{"url":{"type":"string","description":"Hosted asset URL referenced by the snapshot","title":"maxLength(2048)","maxLength":2048},"mime_type":{"type":"string","description":"MIME type of the asset","title":"maxLength(255)","maxLength":255}},"additionalProperties":false},"description":"Hosted assets the snapshot references. Stored with the version and stamped into the paywall's pre-cache manifest on promote so SDKs can cache them ahead of presentation.","title":"maxItems(500)","maxItems":500},"products":{"type":"array","items":{"type":"object","required":["store","identifier","reference_name"],"properties":{"store":{"anyOf":[{"type":"string","enum":["app-store"],"description":"Apple App Store product"},{"type":"string","enum":["play-store"],"description":"Google Play product"},{"type":"string","enum":["stripe"],"description":"Stripe product"},{"type":"string","enum":["custom"],"description":"Custom (external purchase controller)"}],"description":"Store this product belongs to"},"identifier":{"type":"string","description":"Platform-specific product identifier"},"reference_name":{"type":"string","description":"Stable reference name used in paywall editor/runtime (for example: primary)","title":"minLength(1)","minLength":1}},"additionalProperties":false,"description":"Paywall product entry"},"description":"The products this snapshot's config declares, as reference-name to store-identifier entries. Stored with the version and stamped onto the paywall on promote — the headless equivalent of attaching products in the editor, so serve-time price resolution works identically to editor paywalls.","title":"maxItems(50)","maxItems":50},"web_checkout_destination":{"type":"string","enum":["EXTERNAL","IN_APP_BROWSER","PAYMENT_SHEET","PAYWALL","PAYWALL_EMBEDDED","PAYWALL_APPLE_PAY"],"description":"How this snapshot's config completes web checkout (`checkout: sheet` → PAYWALL_EMBEDDED, `applePay` → PAYWALL_APPLE_PAY, `external` → EXTERNAL). Stored with the version and stamped onto the paywall on promote — the same column editor paywalls set, so hosts request checkout directives identically for both."},"background_color_hex":{"type":"string","description":"The paywall's light-mode background color as a hex string (`#RRGGBB` or `#RRGGBBAA`). Stored with the version and stamped onto the paywall on promote — the same column editor paywalls set. Native SDKs paint it behind the webview and derive the loading spinner from it, so it must match the paywall's own page background.","pattern":"^#[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$"},"dark_background_color_hex":{"type":"string","description":"The paywall's dark-mode background color as a hex string (`#RRGGBB` or `#RRGGBBAA`). Stored with the version and stamped onto the paywall on promote. Optional — SDKs fall back to the light color in dark mode when absent.","pattern":"^#[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$"},"presentation_style":{"anyOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["FULLSCREEN","MODAL","PUSH","NO_ANIMATION"]}},"additionalProperties":false},{"type":"object","required":["type","height","corner_radius"],"properties":{"type":{"type":"string","enum":["DRAWER"]},"height":{"type":"number","description":"a positive number","title":"positive","exclusiveMinimum":0},"corner_radius":{"type":"number","description":"a positive number","title":"positive","exclusiveMinimum":0}},"additionalProperties":false},{"type":"object","required":["type","width","height","corner_radius"],"properties":{"type":{"type":"string","enum":["POPUP"]},"width":{"type":"number","description":"a positive number","title":"positive","exclusiveMinimum":0},"height":{"type":"number","description":"a positive number","title":"positive","exclusiveMinimum":0},"corner_radius":{"type":"number","description":"a positive number","title":"positive","exclusiveMinimum":0}},"additionalProperties":false}],"description":"How the SDK presents this snapshot's paywall, from its config. Stored with the version and stamped onto the paywall on promote (the legacy style column and the v3 geometry) — a headless paywall has no dashboard editor, so this is the only way to set it. Omitted means fullscreen."},"feature_gating":{"anyOf":[{"type":"string","enum":["gated"],"description":"Access is gated behind a purchase"},{"type":"string","enum":["non_gated"],"description":"Access is not gated"}],"description":"Whether the placement's feature is gated on a purchase. Stored with the version and stamped onto the paywall on promote. Omitted means non_gated."},"on_device_cache":{"type":"boolean","description":"Whether SDKs cache this paywall on device. Stored with the version and stamped onto the paywall on promote. Omitted means enabled."},"scroll_enabled":{"type":"boolean","description":"Whether the paywall webview scrolls. Stored with the version and stamped onto the paywall on promote. Omitted means enabled."},"game_controller_enabled":{"type":"boolean","description":"Whether game controller input is forwarded to the paywall. Stored with the version and stamped onto the paywall on promote. Omitted means disabled."},"introductory_offer_eligibility":{"type":"string","enum":["automatic","always_eligible","always_ineligible"],"description":"How SDKs decide trial eligibility for this paywall's products. Stored with the version and stamped onto the paywall on promote. Omitted means automatic."}},"additionalProperties":false}}},"required":true}}},"/v2/paywalls/{id}/assets":{"post":{"tags":["Paywalls V2"],"operationId":"paywallsv2.pushHeadlessAssets","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Paywall ID"},"required":true,"description":"Paywall ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","id","assets"],"properties":{"object":{"type":"string","enum":["paywall.asset_manifest"],"description":"Object type, always `paywall.asset_manifest`"},"id":{"type":"string","description":"ID of the paywall"},"assets":{"type":"array","items":{"type":"object","required":["sha256","url"],"properties":{"sha256":{"type":"string","description":"SHA-256 the entry answers for"},"url":{"type":"string","description":"Public URL the asset is (or will be) served from"},"upload_url":{"type":"string","description":"Presigned PUT URL, present only when the asset is missing. The upload must send exactly the manifest Content-Type and `Cache-Control: public, max-age=31536000, immutable`."}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"422":{"description":"@superwall/api-schema/v2/errors/PaywallArchivedError","content":{"application/json":{"schema":{"type":"object","required":["message","paywall_id","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"paywall_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PaywallArchivedError"]}},"additionalProperties":false,"title":"Paywall Archived"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Resolves a content-addressed asset manifest for a code-first paywall: returns the hosted URL for every asset and a short-lived presigned upload for the ones not yet stored. Runs as the `assets` step of `superwall push`/`publish` before the version push. Identical content is never uploaded twice. Requires paywalls:write scope.","summary":"Sync Headless Assets","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["assets"],"properties":{"assets":{"type":"array","items":{"type":"object","required":["sha256","bytes","mime","file_name"],"properties":{"sha256":{"type":"string","description":"SHA-256 hex digest of the asset bytes","pattern":"^[a-f0-9]{64}$"},"bytes":{"type":"integer","description":"Raw size of the asset in bytes","title":"lessThanOrEqualTo(200000000)","exclusiveMinimum":0,"maximum":200000000},"mime":{"type":"string","description":"a string at most 255 character(s) long","title":"maxLength(255)","maxLength":255},"file_name":{"type":"string","description":"Content-addressed file name: <sha256>.<ext>","pattern":"^[a-f0-9]{64}\\.[a-z0-9]{2,6}$"}},"additionalProperties":false},"description":"an array of at most 100 item(s)","title":"maxItems(100)","minItems":1,"maxItems":100}},"additionalProperties":false}}},"required":true}}},"/v2/paywalls/{id}/source-access":{"post":{"tags":["Paywalls V2"],"operationId":"paywallsv2.mintHeadlessSourceAccess","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Paywall ID"},"required":true,"description":"Paywall ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","id","repo","remote","branch","token","token_id","expires_at"],"properties":{"object":{"type":"string","enum":["paywall.source_access"],"description":"Object type, always `paywall.source_access`"},"id":{"type":"string","description":"ID of the paywall"},"repo":{"type":"string","description":"Source repo name"},"remote":{"type":"string","description":"HTTPS git remote URL"},"branch":{"type":"string","description":"Branch to push to"},"token":{"type":"string","description":"Short-lived write token. Send as `Authorization: Bearer <secret before ?expires>` on git requests; never store it."},"token_id":{"type":"string","description":"Token id — echo it when linking the commit so the token is revoked"},"expires_at":{"type":"string","description":"ISO 8601 token expiry"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"422":{"description":"@superwall/api-schema/v2/errors/PaywallArchivedError","content":{"application/json":{"schema":{"type":"object","required":["message","paywall_id","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"paywall_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PaywallArchivedError"]}},"additionalProperties":false,"title":"Paywall Archived"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Mints a short-lived, repo-scoped write token so the CLI can push the source tree directly to the application's source repo over the git protocol — the scalable path for large projects, replacing the inline source upload. The token expires in minutes and is revoked when the pushed commit is linked. Requires paywalls:write scope.","summary":"Mint Headless Source Access"}},"/v2/paywalls/{id}/versions/{version}/source-commit":{"post":{"tags":["Paywalls V2"],"operationId":"paywallsv2.linkHeadlessSourceCommit","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Paywall ID"},"required":true,"description":"Paywall ID"},{"name":"version","in":"path","schema":{"type":"string","description":"a string to be decoded into a number"},"required":true,"description":"a string to be decoded into a number"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","id","version","repo","commit_sha"],"properties":{"object":{"type":"string","enum":["paywall.source_commit"],"description":"Object type, always `paywall.source_commit`"},"id":{"type":"string","description":"ID of the paywall"},"version":{"type":"number","description":"The version this commit is linked to"},"repo":{"type":"string","description":"Source repo name"},"commit_sha":{"type":"string","description":"The linked commit"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"409":{"description":"The resource already exists or conflicts with an existing resource","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"identifier":{"type":"string"},"field":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/Conflict"]}},"additionalProperties":false,"description":"The resource already exists or conflicts with an existing resource","title":"Conflict"}}}},"422":{"description":"@superwall/api-schema/v2/errors/PaywallArchivedError","content":{"application/json":{"schema":{"type":"object","required":["message","paywall_id","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"paywall_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PaywallArchivedError"]}},"additionalProperties":false,"title":"Paywall Archived"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Links a directly-pushed source commit to a pushed version after verifying it is the source repo's branch head, and revokes the mint token. 409 when another publish moved the head first. Requires paywalls:write scope.","summary":"Link Headless Source Commit","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["commit_sha"],"properties":{"commit_sha":{"type":"string","description":"Git commit SHA the CLI pushed","pattern":"^[a-f0-9]{40}$"},"token_id":{"type":"string","description":"Token id from the source-access mint, revoked on successful link","title":"maxLength(191)","maxLength":191}},"additionalProperties":false}}},"required":true}}},"/v2/paywalls/{id}/promote":{"post":{"tags":["Paywalls V2"],"operationId":"paywallsv2.promoteHeadlessVersion","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Paywall ID"},"required":true,"description":"Paywall ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","id","version","url","promoted_at"],"properties":{"object":{"type":"string","enum":["paywall"],"description":"Object type, always `paywall`"},"id":{"type":"string","description":"ID of the paywall"},"version":{"type":"number","description":"The version now live in production"},"url":{"type":"string","description":"Immutable URL of the now-live snapshot"},"promoted_at":{"type":"string","description":"ISO 8601 timestamp of when the version was promoted"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"422":{"description":"@superwall/api-schema/v2/errors/PaywallArchivedError","content":{"application/json":{"schema":{"type":"object","required":["message","paywall_id","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"paywall_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PaywallArchivedError"]}},"additionalProperties":false,"title":"Paywall Archived"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Points production at a pushed headless version (the latest by default): repoints the deployed version and stamps the paywall URL delivered to SDKs. Requires paywalls:write scope.","summary":"Promote Headless Version","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"version":{"type":"number","description":"The pushed version number to promote. Defaults to the latest pushed version."}},"additionalProperties":false}}},"required":true}}},"/v2/paywalls/{id}/duplicate":{"post":{"tags":["Paywalls V2"],"operationId":"paywallsv2.duplicatePaywall","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Paywall ID"},"required":true,"description":"Paywall ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","project_id","application_platform","name","identifier","paywall_url","presentation_style","status","version","headless","products","feature_gating","source_template","created_at","updated_at","published_at","archived","metadata","preview_url"],"properties":{"id":{"type":"string","description":"Unique identifier for the paywall"},"object":{"type":"string","enum":["paywall"],"description":"Object type, always `paywall`"},"application_id":{"type":"string","description":"ID of the application this paywall belongs to"},"project_id":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the project containing the paywall's application, or null"},"application_platform":{"anyOf":[{"anyOf":[{"type":"string","enum":["ios"],"description":"iOS (App Store)"},{"type":"string","enum":["android"],"description":"Android (Google Play)"},{"type":"string","enum":["flutter"],"description":"Flutter (legacy, read-only - cannot be created via API)"},{"type":"string","enum":["react_native"],"description":"React Native (legacy, read-only - cannot be created via API)"},{"type":"string","enum":["web"],"description":"Web (Stripe)"},{"type":"string","enum":["promotional"],"description":"Promotional offers application (read-only - cannot be created via API)"},{"type":"string","enum":["webapp"],"description":"Web App (Web SDK) (read-only - cannot be created via API)"}],"description":"Platform type for the application"},{"type":"null"}],"description":"Platform of the application this paywall belongs to, or null"},"name":{"type":"string","description":"Display name of the paywall"},"identifier":{"type":"string","description":"URL-safe identifier (slug) for the paywall"},"paywall_url":{"type":"string","description":"URL to the interactive paywall"},"presentation_style":{"anyOf":[{"type":"string","enum":["fullscreen"],"description":"Full screen presentation"},{"type":"string","enum":["modal"],"description":"Modal presentation"},{"type":"string","enum":["sheet"],"description":"Bottom sheet presentation"},{"type":"string","enum":["push"],"description":"Push navigation presentation"}],"description":"How the paywall is presented to the user"},"status":{"anyOf":[{"type":"string","enum":["draft"],"description":"Paywall is not active in any enabled campaign (inactive)"},{"type":"string","enum":["active"],"description":"Paywall is active in at least one enabled campaign"},{"type":"string","enum":["archived"],"description":"Paywall has been archived"}],"description":"Current status of the paywall"},"version":{"type":"number","description":"Current published version number"},"headless":{"type":"boolean","description":"Whether this is a code-first (headless) paywall, authored with the superwall framework and shipped with `superwall push` / `superwall promote` rather than the visual editor. A headless paywall with `version: 0` has been pushed but never promoted, so it has no live snapshot and cannot back a campaign variant."},"products":{"type":"array","items":{"type":"object","required":["store","identifier","reference_name"],"properties":{"store":{"anyOf":[{"type":"string","enum":["app-store"],"description":"Apple App Store product"},{"type":"string","enum":["play-store"],"description":"Google Play product"},{"type":"string","enum":["stripe"],"description":"Stripe product"},{"type":"string","enum":["custom"],"description":"Custom (external purchase controller)"}],"description":"Store this product belongs to"},"identifier":{"type":"string","description":"Platform-specific product identifier"},"reference_name":{"type":"string","description":"Stable reference name used in paywall editor/runtime (for example: primary)","title":"minLength(1)","minLength":1}},"additionalProperties":false,"description":"Paywall product entry"},"description":"List of product entries attached to this paywall"},"feature_gating":{"anyOf":[{"type":"string","enum":["gated"],"description":"Access is gated behind a purchase"},{"type":"string","enum":["non_gated"],"description":"Access is not gated"}],"description":"Whether the feature is gated behind a purchase"},"source_template":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the template this paywall was created from, or null"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the paywall was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the paywall was last updated"},"published_at":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 timestamp of when the paywall was last published, or null"},"archived":{"type":"boolean","description":"Whether the paywall is archived"},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500}},"preview_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"URL to a preview screenshot of the paywall, or null"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"422":{"description":"@superwall/api-schema/v2/errors/PaywallSnapshotMissingError","content":{"application/json":{"schema":{"type":"object","required":["message","paywall_id","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"paywall_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PaywallSnapshotMissingError"]}},"additionalProperties":false,"title":"Paywall Snapshot Missing"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Creates a copy of an existing paywall, optionally into a different application. When duplicating into a different application, product attachments are cleared and must be reassigned. Requires paywalls:write scope on both the source paywall and the target application.","summary":"Duplicate Paywall","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"application_id":{"type":"string","description":"ID of the application to duplicate the paywall into. Defaults to the source paywall's application. When duplicating into a different application, product attachments are cleared."},"name":{"type":"string","description":"Display name for the duplicated paywall. Defaults to the source paywall's name","title":"maxLength(255)","minLength":1,"maxLength":255}},"additionalProperties":false}}},"required":true}}},"/v2/paywalls/{id}/archive":{"post":{"tags":["Paywalls V2"],"operationId":"paywallsv2.archivePaywall","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Paywall ID"},"required":true,"description":"Paywall ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","id","archived"],"properties":{"object":{"type":"string","enum":["paywall"],"description":"Object type, always `paywall`"},"id":{"type":"string","description":"ID of the paywall"},"archived":{"type":"boolean","description":"Whether the paywall is now archived"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Archives a paywall. Archived paywalls are not returned in list queries by default. Requires paywalls:write scope.","summary":"Archive Paywall"}},"/v2/paywalls/{id}/unarchive":{"post":{"tags":["Paywalls V2"],"operationId":"paywallsv2.unarchivePaywall","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Paywall ID"},"required":true,"description":"Paywall ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","id","archived"],"properties":{"object":{"type":"string","enum":["paywall"],"description":"Object type, always `paywall`"},"id":{"type":"string","description":"ID of the paywall"},"archived":{"type":"boolean","description":"Whether the paywall is now archived"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Restores an archived paywall. Requires paywalls:write scope.","summary":"Unarchive Paywall"}},"/v2/products":{"get":{"tags":["Products V2"],"operationId":"productsv2.listProducts","parameters":[{"name":"limit","in":"query","schema":{"allOf":[{"$ref":"#/components/schemas/NumberFromString"}],"description":"Maximum number of items to return (1-100, default: 10)"},"required":false,"description":"Maximum number of items to return (1-100, default: 10)"},{"name":"starting_after","in":"query","schema":{"type":"string","description":"a string to be decoded into a number"},"required":false,"description":"a string to be decoded into a number"},{"name":"ending_before","in":"query","schema":{"type":"string","description":"a string to be decoded into a number"},"required":false,"description":"a string to be decoded into a number"},{"name":"project_id","in":"query","schema":{"type":"string","description":"Filter by project ID (required)"},"required":true,"description":"Filter by project ID (required)"},{"name":"platform","in":"query","schema":{"anyOf":[{"type":"string","enum":["ios"],"description":"Apple App Store"},{"type":"string","enum":["android"],"description":"Google Play Store"},{"type":"string","enum":["stripe"],"description":"Stripe"},{"type":"string","enum":["promotional"],"description":"Promotional (manual grants)"},{"type":"string","enum":["custom"],"description":"Custom (external purchase controller)"}],"description":"Platform the product belongs to"},"required":false,"description":"Platform the product belongs to"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","url","has_more","data"],"properties":{"object":{"type":"string","enum":["list"],"description":"Object type, always `list`"},"url":{"type":"string","enum":["/v2/products"],"description":"API endpoint URL for this list"},"has_more":{"type":"boolean","description":"Whether there are more results available beyond this page"},"data":{"type":"array","items":{"type":"object","required":["id","object","application_id","project_id","identifier","name","platform","store","price","trial_price","monthly_billing_plan_price","monthly_billing_plan_trial_period_days","monthly_billing_plan_trial_price","subscription","app_store_info","entitlements","created_at","updated_at","metadata"],"properties":{"id":{"type":"string","description":"Unique identifier for the product"},"object":{"type":"string","enum":["product"],"description":"Object type, always `product`"},"application_id":{"type":"string","description":"ID of the application this product is stored under"},"project_id":{"type":"string","description":"ID of the project this product belongs to"},"identifier":{"type":"string","description":"Platform-specific product identifier"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Display name of the product, or null"},"platform":{"anyOf":[{"type":"string","enum":["ios"],"description":"Apple App Store"},{"type":"string","enum":["android"],"description":"Google Play Store"},{"type":"string","enum":["stripe"],"description":"Stripe"},{"type":"string","enum":["promotional"],"description":"Promotional (manual grants)"},{"type":"string","enum":["custom"],"description":"Custom (external purchase controller)"}],"description":"Platform the product belongs to"},"store":{"anyOf":[{"anyOf":[{"type":"string","enum":["app_store"],"description":"Apple App Store"},{"type":"string","enum":["play_store"],"description":"Google Play Store"},{"type":"string","enum":["custom"],"description":"Custom external purchase controller"}]},{"type":"null"}],"description":"Store backing the product, when applicable"},"price":{"anyOf":[{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","description":"ISO 4217 currency code (e.g. `USD`)"}},"additionalProperties":false},{"type":"null"}],"description":"Price of the product, or null"},"trial_price":{"anyOf":[{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","description":"ISO 4217 currency code (e.g. `USD`)"}},"additionalProperties":false},{"type":"null"}],"description":"Trial or introductory price of the product, or null"},"monthly_billing_plan_price":{"anyOf":[{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","description":"ISO 4217 currency code (e.g. `USD`)"}},"additionalProperties":false},{"type":"null"}],"description":"Monthly billing plan price for annual iOS products, or null"},"monthly_billing_plan_trial_period_days":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Monthly billing plan trial days, or null"},"monthly_billing_plan_trial_price":{"anyOf":[{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","description":"ISO 4217 currency code (e.g. `USD`)"}},"additionalProperties":false},{"type":"null"}],"description":"Monthly billing plan trial price, or null"},"subscription":{"anyOf":[{"type":"object","required":["period","period_count","trial_period_days"],"properties":{"period":{"type":"string","enum":["day","week","month","year"],"description":"Billing period"},"period_count":{"type":"number","description":"Number of periods per billing cycle"},"trial_period_days":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Number of trial days, or null"},"introductory_offer":{"type":"object","required":["type","duration_days"],"properties":{"type":{"type":"string","enum":["free_trial","pay_as_you_go","pay_up_front"],"description":"Type of introductory offer"},"duration_days":{"type":"number","description":"Duration of the introductory offer in days"}},"additionalProperties":false,"description":"Introductory offer details"}},"additionalProperties":false},{"type":"null"}],"description":"Subscription details, or null for one-time purchases"},"app_store_info":{"anyOf":[{"type":"object","required":["state","reference_name","product_id","in_app_purchase_type"],"properties":{"state":{"type":"string"},"reference_name":{"type":"string"},"product_id":{"type":"string"},"in_app_purchase_type":{"type":"string"}},"additionalProperties":false},{"type":"null"}],"description":"App Store Connect metadata for iOS App Store products, or null"},"entitlements":{"type":"array","items":{"type":"string","description":"a string to be decoded into a number"},"description":"List of entitlement IDs granted by this product"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the product was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the product was last updated"},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500}}},"additionalProperties":false},"description":"List of results"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns a list of products for the specified project. Requires products:read scope. The `project_id` query parameter is required.","summary":"List Products"},"post":{"tags":["Products V2"],"operationId":"productsv2.createProduct","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","project_id","identifier","name","platform","store","price","trial_price","monthly_billing_plan_price","monthly_billing_plan_trial_period_days","monthly_billing_plan_trial_price","subscription","app_store_info","entitlements","created_at","updated_at","metadata"],"properties":{"id":{"type":"string","description":"Unique identifier for the product"},"object":{"type":"string","enum":["product"],"description":"Object type, always `product`"},"application_id":{"type":"string","description":"ID of the application this product is stored under"},"project_id":{"type":"string","description":"ID of the project this product belongs to"},"identifier":{"type":"string","description":"Platform-specific product identifier"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Display name of the product, or null"},"platform":{"anyOf":[{"type":"string","enum":["ios"],"description":"Apple App Store"},{"type":"string","enum":["android"],"description":"Google Play Store"},{"type":"string","enum":["stripe"],"description":"Stripe"},{"type":"string","enum":["promotional"],"description":"Promotional (manual grants)"},{"type":"string","enum":["custom"],"description":"Custom (external purchase controller)"}],"description":"Platform the product belongs to"},"store":{"anyOf":[{"anyOf":[{"type":"string","enum":["app_store"],"description":"Apple App Store"},{"type":"string","enum":["play_store"],"description":"Google Play Store"},{"type":"string","enum":["custom"],"description":"Custom external purchase controller"}]},{"type":"null"}],"description":"Store backing the product, when applicable"},"price":{"anyOf":[{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","description":"ISO 4217 currency code (e.g. `USD`)"}},"additionalProperties":false},{"type":"null"}],"description":"Price of the product, or null"},"trial_price":{"anyOf":[{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","description":"ISO 4217 currency code (e.g. `USD`)"}},"additionalProperties":false},{"type":"null"}],"description":"Trial or introductory price of the product, or null"},"monthly_billing_plan_price":{"anyOf":[{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","description":"ISO 4217 currency code (e.g. `USD`)"}},"additionalProperties":false},{"type":"null"}],"description":"Monthly billing plan price for annual iOS products, or null"},"monthly_billing_plan_trial_period_days":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Monthly billing plan trial days, or null"},"monthly_billing_plan_trial_price":{"anyOf":[{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","description":"ISO 4217 currency code (e.g. `USD`)"}},"additionalProperties":false},{"type":"null"}],"description":"Monthly billing plan trial price, or null"},"subscription":{"anyOf":[{"type":"object","required":["period","period_count","trial_period_days"],"properties":{"period":{"type":"string","enum":["day","week","month","year"],"description":"Billing period"},"period_count":{"type":"number","description":"Number of periods per billing cycle"},"trial_period_days":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Number of trial days, or null"},"introductory_offer":{"type":"object","required":["type","duration_days"],"properties":{"type":{"type":"string","enum":["free_trial","pay_as_you_go","pay_up_front"],"description":"Type of introductory offer"},"duration_days":{"type":"number","description":"Duration of the introductory offer in days"}},"additionalProperties":false,"description":"Introductory offer details"}},"additionalProperties":false},{"type":"null"}],"description":"Subscription details, or null for one-time purchases"},"app_store_info":{"anyOf":[{"type":"object","required":["state","reference_name","product_id","in_app_purchase_type"],"properties":{"state":{"type":"string"},"reference_name":{"type":"string"},"product_id":{"type":"string"},"in_app_purchase_type":{"type":"string"}},"additionalProperties":false},{"type":"null"}],"description":"App Store Connect metadata for iOS App Store products, or null"},"entitlements":{"type":"array","items":{"type":"string","description":"a string to be decoded into a number"},"description":"List of entitlement IDs granted by this product"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the product was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the product was last updated"},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"},{"type":"object","required":["message","platform","operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"platform":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/UnsupportedPlatformError"]}},"additionalProperties":false,"title":"Unsupported Platform"},{"type":"object","required":["message","entitlement_id","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"entitlement_id":{"type":"string"},"param":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidEntitlementReferenceError"]}},"additionalProperties":false,"title":"Invalid Entitlement Reference"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"409":{"description":"The resource already exists or conflicts with an existing resource","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"identifier":{"type":"string"},"field":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/Conflict"]}},"additionalProperties":false,"description":"The resource already exists or conflicts with an existing resource","title":"Conflict"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Creates a new product in the specified application. Requires products:write scope.","summary":"Create Product","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["project_id","identifier"],"properties":{"project_id":{"type":"string","description":"ID of the project to create the product in"},"application_id":{"type":"string","description":"ID of the application to create the product in. Defaults to a supported project application."},"store":{"anyOf":[{"type":"string","enum":["app_store"],"description":"Apple App Store"},{"type":"string","enum":["play_store"],"description":"Google Play Store"},{"type":"string","enum":["custom"],"description":"Custom external purchase controller"}],"description":"Store backing the product. `custom` creates or uses the project's custom-store app."},"identifier":{"type":"string","description":"Platform-specific product identifier","title":"maxLength(191)","minLength":1,"maxLength":191},"android":{"type":"object","required":[],"properties":{"base_plan_or_purchase_option_id":{"type":"string"},"automatically_pick_purchase_option":{"type":"boolean"},"offer_mode":{"type":"string","enum":["auto","none","specific"]},"offer_id":{"type":"string"}},"additionalProperties":false,"description":"Android product intent. The backend constructs and validates the canonical composite identifier."},"name":{"type":"string","description":"Display name of the product","title":"maxLength(255)","maxLength":255},"price":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","description":"ISO 4217 currency code (e.g. `USD`)"}},"additionalProperties":false,"description":"Price of the product"},"trial_price":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","description":"ISO 4217 currency code (e.g. `USD`)"}},"additionalProperties":false,"description":"Trial price of the product"},"monthly_billing_plan_price":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","description":"ISO 4217 currency code (e.g. `USD`)"}},"additionalProperties":false,"description":"Monthly billing plan price for annual iOS products"},"monthly_billing_plan_trial_period_days":{"type":"number","description":"Monthly billing plan trial days"},"monthly_billing_plan_trial_price":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","description":"ISO 4217 currency code (e.g. `USD`)"}},"additionalProperties":false,"description":"Monthly billing plan trial price"},"subscription":{"type":"object","required":["period"],"properties":{"period":{"type":"string","enum":["day","week","month","year"],"description":"Billing period for the subscription"},"period_count":{"type":"number"},"trial_period_days":{"type":"number"}},"additionalProperties":false,"description":"Subscription details for recurring products"},"entitlements":{"type":"array","items":{"type":"string","description":"a string to be decoded into a number"},"description":"List of entitlement IDs to grant with this product"},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500},"description":"Arbitrary key-value metadata to attach to the product"}},"additionalProperties":false}}},"required":true}}},"/v2/products/app-store-connect":{"get":{"tags":["Products V2"],"operationId":"productsv2.getAppStoreConnectProducts","parameters":[{"name":"application_id","in":"query","schema":{"type":"string","description":"ID of the iOS application to inspect in App Store Connect"},"required":true,"description":"ID of the iOS application to inspect in App Store Connect"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["status","products","product_info_by_identifier"],"properties":{"status":{"type":"string"},"error_message":{"type":"string"},"products":{"type":"array","items":{"type":"object","required":["product_id","reference_name","type","state"],"properties":{"product_id":{"type":"string"},"reference_name":{"type":"string"},"type":{"type":"string"},"state":{"type":"string"},"subscription_period":{"type":"string"},"subscription_group_name":{"type":"string"}},"additionalProperties":false}},"product_info_by_identifier":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"object","required":["state","reference_name","product_id","in_app_purchase_type"],"properties":{"state":{"type":"string"},"reference_name":{"type":"string"},"product_id":{"type":"string"},"in_app_purchase_type":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns App Store Connect configuration status, unimported products, and per-product status metadata for an iOS application.","summary":"Get App Store Connect Products"}},"/v2/products/google-play":{"get":{"tags":["Products V2"],"operationId":"productsv2.getGooglePlayProducts","parameters":[{"name":"application_id","in":"query","schema":{"type":"string","description":"ID of the Android application to inspect in Google Play"},"required":true,"description":"ID of the Android application to inspect in Google Play"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["status","products","product_info_by_identifier"],"properties":{"status":{"type":"string","description":"One of `success`, `not_android`, `play_not_configured`, or `api_error` describing the Google Play lookup outcome"},"error_message":{"type":"string"},"products":{"type":"array","items":{"type":"object","required":["product_id","name","type","active","base_plan_id","period"],"properties":{"product_id":{"type":"string","description":"Google Play product identifier"},"name":{"type":"string","description":"Localized listing title, falling back to the product identifier"},"type":{"type":"string","enum":["subscription","one_time"],"description":"Whether the Google Play product is a subscription or a one-time product"},"active":{"type":"boolean","description":"Whether the candidate's base plan (for subscriptions) or any purchase option (for one-time products) is active"},"state":{"type":"string","description":"Google Play state of the candidate: the base-plan state for subscriptions (DRAFT, ACTIVE, INACTIVE), the purchase-option state for one-time products (DRAFT, ACTIVE, INACTIVE, INACTIVE_PUBLISHED), or the normalized legacy in-app product status; STATE_UNSPECIFIED when Google Play reports none. Google Play has no per-product review states — app releases are reviewed, products are not"},"base_plan_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Base plan ID of this candidate — subscriptions emit one candidate per base plan (or the automatic purchase-option selector for one-time products); null when the subscription has no identifiable base plan"},"period":{"anyOf":[{"type":"object","required":["interval","interval_count"],"properties":{"interval":{"type":"string","enum":["day","week","month","year"],"description":"Billing period for the subscription"},"interval_count":{"type":"number"}},"additionalProperties":false},{"type":"null"}],"description":"Billing period derived from the candidate's base plan, when derivable"}},"additionalProperties":false},"description":"Google Play import candidates (one per subscription base plan) that have not been imported into the project yet"},"product_info_by_identifier":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"object","required":["product_id","name","type","active","base_plan_id","period"],"properties":{"product_id":{"type":"string","description":"Google Play product identifier"},"name":{"type":"string","description":"Localized listing title, falling back to the product identifier"},"type":{"type":"string","enum":["subscription","one_time"],"description":"Whether the Google Play product is a subscription or a one-time product"},"active":{"type":"boolean","description":"Whether the candidate's base plan (for subscriptions) or any purchase option (for one-time products) is active"},"state":{"type":"string","description":"Google Play state of the candidate: the base-plan state for subscriptions (DRAFT, ACTIVE, INACTIVE), the purchase-option state for one-time products (DRAFT, ACTIVE, INACTIVE, INACTIVE_PUBLISHED), or the normalized legacy in-app product status; STATE_UNSPECIFIED when Google Play reports none. Google Play has no per-product review states — app releases are reviewed, products are not"},"base_plan_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Base plan ID of this candidate — subscriptions emit one candidate per base plan (or the automatic purchase-option selector for one-time products); null when the subscription has no identifiable base plan"},"period":{"anyOf":[{"type":"object","required":["interval","interval_count"],"properties":{"interval":{"type":"string","enum":["day","week","month","year"],"description":"Billing period for the subscription"},"interval_count":{"type":"number"}},"additionalProperties":false},{"type":"null"}],"description":"Billing period derived from the candidate's base plan, when derivable"}},"additionalProperties":false},"description":"Google Play state of the products already imported into this application, keyed by the Superwall product identifier (`productId:basePlanId:offer`) — the Android counterpart of `product_info_by_identifier` on the App Store Connect response. Identifiers that aren't composite Play identifiers, and identifiers whose base plan or product is no longer in the Google Play catalog, are omitted"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns Google Play configuration status and not-yet-imported products for an Android application.","summary":"Get Google Play Products"}},"/v2/products/store-products":{"get":{"tags":["Products V2"],"operationId":"productsv2.listStoreProducts","parameters":[{"name":"project_id","in":"query","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"store","in":"query","schema":{"anyOf":[{"type":"string","enum":["stripe"],"description":"Stripe"},{"type":"string","enum":["play-store"],"description":"Google Play Store"}],"description":"Provider store to fetch products from"},"required":true,"description":"Provider store to fetch products from"},{"name":"environment","in":"query","schema":{"anyOf":[{"type":"string","enum":["live"],"description":"Live provider environment"},{"type":"string","enum":["test"],"description":"Test/sandbox provider environment"}],"description":"Provider environment. Google Play ignores this value."},"required":true,"description":"Provider environment. Google Play ignores this value."},{"name":"application_id","in":"query","schema":{"type":"string","description":"Preferred application ID when multiple provider-capable apps exist in the project."},"required":false,"description":"Preferred application ID when multiple provider-capable apps exist in the project."}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","data"],"properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object","required":["object","id","name","description","active"],"properties":{"object":{"type":"string","enum":["store_product_group"]},"id":{"type":"string","description":"Provider product/group identifier, such as a Stripe product or Google Play product ID"},"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"active":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns provider products/groups from Stripe or Google Play for product import. Requires products:read scope.","summary":"List Store Products"}},"/v2/products/store-product-prices":{"get":{"tags":["Products V2"],"operationId":"productsv2.listStoreProductPrices","parameters":[{"name":"project_id","in":"query","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"store","in":"query","schema":{"anyOf":[{"type":"string","enum":["stripe"],"description":"Stripe"},{"type":"string","enum":["play-store"],"description":"Google Play Store"}],"description":"Provider store to fetch products from"},"required":true,"description":"Provider store to fetch products from"},{"name":"environment","in":"query","schema":{"anyOf":[{"type":"string","enum":["live"],"description":"Live provider environment"},{"type":"string","enum":["test"],"description":"Test/sandbox provider environment"}],"description":"Provider environment. Google Play ignores this value."},"required":true,"description":"Provider environment. Google Play ignores this value."},{"name":"application_id","in":"query","schema":{"type":"string","description":"Preferred application ID when multiple provider-capable apps exist in the project."},"required":false,"description":"Preferred application ID when multiple provider-capable apps exist in the project."},{"name":"product_id","in":"query","schema":{"type":"string","description":"Provider product/group identifier to list prices for"},"required":true,"description":"Provider product/group identifier to list prices for"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","data"],"properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object","required":["object","id","product_group_id","type","name","description","price","recurring","trial_period","active"],"properties":{"object":{"type":"string","enum":["store_product"]},"id":{"type":"string","description":"Provider price/base-plan/purchase-option identifier"},"product_group_id":{"type":"string","description":"Provider product/group identifier this price belongs to"},"type":{"type":"string","enum":["one_time","recurring"]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"price":{"type":"object","required":["unit_amount","currency"],"properties":{"unit_amount":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Price amount in the smallest currency unit, or null when unavailable"},"currency":{"type":"string","description":"ISO 4217 currency code"}},"additionalProperties":false},"recurring":{"anyOf":[{"type":"object","required":["interval","interval_count"],"properties":{"interval":{"type":"string","enum":["day","week","month","year"],"description":"Billing period for the subscription"},"interval_count":{"type":"number"}},"additionalProperties":false},{"type":"null"}]},"trial_period":{"anyOf":[{"type":"object","required":["interval","interval_count"],"properties":{"interval":{"type":"string","enum":["day","week","month","year"],"description":"Billing period for the subscription"},"interval_count":{"type":"number"}},"additionalProperties":false},{"type":"null"}]},"active":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns provider prices/base plans/purchase options for a Stripe or Google Play product. Requires products:read scope.","summary":"List Store Product Prices"}},"/v2/products/store-products/import":{"post":{"tags":["Products V2"],"operationId":"productsv2.importStoreProduct","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","project_id","identifier","name","platform","store","price","trial_price","monthly_billing_plan_price","monthly_billing_plan_trial_period_days","monthly_billing_plan_trial_price","subscription","app_store_info","entitlements","created_at","updated_at","metadata"],"properties":{"id":{"type":"string","description":"Unique identifier for the product"},"object":{"type":"string","enum":["product"],"description":"Object type, always `product`"},"application_id":{"type":"string","description":"ID of the application this product is stored under"},"project_id":{"type":"string","description":"ID of the project this product belongs to"},"identifier":{"type":"string","description":"Platform-specific product identifier"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Display name of the product, or null"},"platform":{"anyOf":[{"type":"string","enum":["ios"],"description":"Apple App Store"},{"type":"string","enum":["android"],"description":"Google Play Store"},{"type":"string","enum":["stripe"],"description":"Stripe"},{"type":"string","enum":["promotional"],"description":"Promotional (manual grants)"},{"type":"string","enum":["custom"],"description":"Custom (external purchase controller)"}],"description":"Platform the product belongs to"},"store":{"anyOf":[{"anyOf":[{"type":"string","enum":["app_store"],"description":"Apple App Store"},{"type":"string","enum":["play_store"],"description":"Google Play Store"},{"type":"string","enum":["custom"],"description":"Custom external purchase controller"}]},{"type":"null"}],"description":"Store backing the product, when applicable"},"price":{"anyOf":[{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","description":"ISO 4217 currency code (e.g. `USD`)"}},"additionalProperties":false},{"type":"null"}],"description":"Price of the product, or null"},"trial_price":{"anyOf":[{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","description":"ISO 4217 currency code (e.g. `USD`)"}},"additionalProperties":false},{"type":"null"}],"description":"Trial or introductory price of the product, or null"},"monthly_billing_plan_price":{"anyOf":[{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","description":"ISO 4217 currency code (e.g. `USD`)"}},"additionalProperties":false},{"type":"null"}],"description":"Monthly billing plan price for annual iOS products, or null"},"monthly_billing_plan_trial_period_days":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Monthly billing plan trial days, or null"},"monthly_billing_plan_trial_price":{"anyOf":[{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","description":"ISO 4217 currency code (e.g. `USD`)"}},"additionalProperties":false},{"type":"null"}],"description":"Monthly billing plan trial price, or null"},"subscription":{"anyOf":[{"type":"object","required":["period","period_count","trial_period_days"],"properties":{"period":{"type":"string","enum":["day","week","month","year"],"description":"Billing period"},"period_count":{"type":"number","description":"Number of periods per billing cycle"},"trial_period_days":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Number of trial days, or null"},"introductory_offer":{"type":"object","required":["type","duration_days"],"properties":{"type":{"type":"string","enum":["free_trial","pay_as_you_go","pay_up_front"],"description":"Type of introductory offer"},"duration_days":{"type":"number","description":"Duration of the introductory offer in days"}},"additionalProperties":false,"description":"Introductory offer details"}},"additionalProperties":false},{"type":"null"}],"description":"Subscription details, or null for one-time purchases"},"app_store_info":{"anyOf":[{"type":"object","required":["state","reference_name","product_id","in_app_purchase_type"],"properties":{"state":{"type":"string"},"reference_name":{"type":"string"},"product_id":{"type":"string"},"in_app_purchase_type":{"type":"string"}},"additionalProperties":false},{"type":"null"}],"description":"App Store Connect metadata for iOS App Store products, or null"},"entitlements":{"type":"array","items":{"type":"string","description":"a string to be decoded into a number"},"description":"List of entitlement IDs granted by this product"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the product was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the product was last updated"},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"},{"type":"object","required":["message","platform","operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"platform":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/UnsupportedPlatformError"]}},"additionalProperties":false,"title":"Unsupported Platform"},{"type":"object","required":["message","entitlement_id","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"entitlement_id":{"type":"string"},"param":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidEntitlementReferenceError"]}},"additionalProperties":false,"title":"Invalid Entitlement Reference"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"409":{"description":"The resource already exists or conflicts with an existing resource","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"identifier":{"type":"string"},"field":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/Conflict"]}},"additionalProperties":false,"description":"The resource already exists or conflicts with an existing resource","title":"Conflict"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Verifies a Stripe or Google Play product and price, derives the canonical product fields, and imports it atomically.","summary":"Import Provider Product","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["project_id","application_id","store","environment","product_id","price_id"],"properties":{"project_id":{"type":"string","description":"Project ID"},"application_id":{"type":"string","description":"Provider-backed application ID"},"store":{"anyOf":[{"type":"string","enum":["stripe"],"description":"Stripe"},{"type":"string","enum":["play-store"],"description":"Google Play Store"}],"description":"Provider store"},"environment":{"anyOf":[{"type":"string","enum":["live"],"description":"Live provider environment"},{"type":"string","enum":["test"],"description":"Test/sandbox provider environment"}],"description":"Provider environment. Google Play ignores this value."},"product_id":{"type":"string","description":"Provider product/group identifier","title":"minLength(1)","minLength":1},"price_id":{"type":"string","description":"Provider price/base-plan/purchase-option identifier","title":"minLength(1)","minLength":1},"trial_period_days":{"type":"number"},"trial_price_minor_units":{"type":"number"},"offer_mode":{"type":"string","enum":["auto","none","specific"]},"offer_id":{"type":"string"},"entitlements":{"type":"array","items":{"type":"string","description":"a string to be decoded into a number"}}},"additionalProperties":false}}},"required":true}}},"/v2/products/{id}/delete-impact":{"get":{"tags":["Products V2"],"operationId":"productsv2.getProductDeleteImpact","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Product ID"},"required":true,"description":"Product ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","product_id","blocked","paywalls"],"properties":{"object":{"type":"string","enum":["product_delete_impact"]},"product_id":{"type":"string","description":"a string to be decoded into a number"},"blocked":{"type":"boolean"},"paywalls":{"type":"array","items":{"type":"object","required":["id","application_id","name"],"properties":{"id":{"type":"string","description":"a string to be decoded into a number"},"application_id":{"type":"string","description":"a string to be decoded into a number"},"name":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns active paywalls that currently prevent this product from being archived.","summary":"Get Product Delete Impact"}},"/v2/products/{id}":{"get":{"tags":["Products V2"],"operationId":"productsv2.retrieveProduct","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Product ID"},"required":true,"description":"Product ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","project_id","identifier","name","platform","store","price","trial_price","monthly_billing_plan_price","monthly_billing_plan_trial_period_days","monthly_billing_plan_trial_price","subscription","app_store_info","entitlements","created_at","updated_at","metadata"],"properties":{"id":{"type":"string","description":"Unique identifier for the product"},"object":{"type":"string","enum":["product"],"description":"Object type, always `product`"},"application_id":{"type":"string","description":"ID of the application this product is stored under"},"project_id":{"type":"string","description":"ID of the project this product belongs to"},"identifier":{"type":"string","description":"Platform-specific product identifier"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Display name of the product, or null"},"platform":{"anyOf":[{"type":"string","enum":["ios"],"description":"Apple App Store"},{"type":"string","enum":["android"],"description":"Google Play Store"},{"type":"string","enum":["stripe"],"description":"Stripe"},{"type":"string","enum":["promotional"],"description":"Promotional (manual grants)"},{"type":"string","enum":["custom"],"description":"Custom (external purchase controller)"}],"description":"Platform the product belongs to"},"store":{"anyOf":[{"anyOf":[{"type":"string","enum":["app_store"],"description":"Apple App Store"},{"type":"string","enum":["play_store"],"description":"Google Play Store"},{"type":"string","enum":["custom"],"description":"Custom external purchase controller"}]},{"type":"null"}],"description":"Store backing the product, when applicable"},"price":{"anyOf":[{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","description":"ISO 4217 currency code (e.g. `USD`)"}},"additionalProperties":false},{"type":"null"}],"description":"Price of the product, or null"},"trial_price":{"anyOf":[{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","description":"ISO 4217 currency code (e.g. `USD`)"}},"additionalProperties":false},{"type":"null"}],"description":"Trial or introductory price of the product, or null"},"monthly_billing_plan_price":{"anyOf":[{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","description":"ISO 4217 currency code (e.g. `USD`)"}},"additionalProperties":false},{"type":"null"}],"description":"Monthly billing plan price for annual iOS products, or null"},"monthly_billing_plan_trial_period_days":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Monthly billing plan trial days, or null"},"monthly_billing_plan_trial_price":{"anyOf":[{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","description":"ISO 4217 currency code (e.g. `USD`)"}},"additionalProperties":false},{"type":"null"}],"description":"Monthly billing plan trial price, or null"},"subscription":{"anyOf":[{"type":"object","required":["period","period_count","trial_period_days"],"properties":{"period":{"type":"string","enum":["day","week","month","year"],"description":"Billing period"},"period_count":{"type":"number","description":"Number of periods per billing cycle"},"trial_period_days":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Number of trial days, or null"},"introductory_offer":{"type":"object","required":["type","duration_days"],"properties":{"type":{"type":"string","enum":["free_trial","pay_as_you_go","pay_up_front"],"description":"Type of introductory offer"},"duration_days":{"type":"number","description":"Duration of the introductory offer in days"}},"additionalProperties":false,"description":"Introductory offer details"}},"additionalProperties":false},{"type":"null"}],"description":"Subscription details, or null for one-time purchases"},"app_store_info":{"anyOf":[{"type":"object","required":["state","reference_name","product_id","in_app_purchase_type"],"properties":{"state":{"type":"string"},"reference_name":{"type":"string"},"product_id":{"type":"string"},"in_app_purchase_type":{"type":"string"}},"additionalProperties":false},{"type":"null"}],"description":"App Store Connect metadata for iOS App Store products, or null"},"entitlements":{"type":"array","items":{"type":"string","description":"a string to be decoded into a number"},"description":"List of entitlement IDs granted by this product"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the product was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the product was last updated"},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Retrieves a product by ID. Requires products:read scope.","summary":"Retrieve Product"},"patch":{"tags":["Products V2"],"operationId":"productsv2.updateProduct","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Product ID"},"required":true,"description":"Product ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","project_id","identifier","name","platform","store","price","trial_price","monthly_billing_plan_price","monthly_billing_plan_trial_period_days","monthly_billing_plan_trial_price","subscription","app_store_info","entitlements","created_at","updated_at","metadata"],"properties":{"id":{"type":"string","description":"Unique identifier for the product"},"object":{"type":"string","enum":["product"],"description":"Object type, always `product`"},"application_id":{"type":"string","description":"ID of the application this product is stored under"},"project_id":{"type":"string","description":"ID of the project this product belongs to"},"identifier":{"type":"string","description":"Platform-specific product identifier"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Display name of the product, or null"},"platform":{"anyOf":[{"type":"string","enum":["ios"],"description":"Apple App Store"},{"type":"string","enum":["android"],"description":"Google Play Store"},{"type":"string","enum":["stripe"],"description":"Stripe"},{"type":"string","enum":["promotional"],"description":"Promotional (manual grants)"},{"type":"string","enum":["custom"],"description":"Custom (external purchase controller)"}],"description":"Platform the product belongs to"},"store":{"anyOf":[{"anyOf":[{"type":"string","enum":["app_store"],"description":"Apple App Store"},{"type":"string","enum":["play_store"],"description":"Google Play Store"},{"type":"string","enum":["custom"],"description":"Custom external purchase controller"}]},{"type":"null"}],"description":"Store backing the product, when applicable"},"price":{"anyOf":[{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","description":"ISO 4217 currency code (e.g. `USD`)"}},"additionalProperties":false},{"type":"null"}],"description":"Price of the product, or null"},"trial_price":{"anyOf":[{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","description":"ISO 4217 currency code (e.g. `USD`)"}},"additionalProperties":false},{"type":"null"}],"description":"Trial or introductory price of the product, or null"},"monthly_billing_plan_price":{"anyOf":[{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","description":"ISO 4217 currency code (e.g. `USD`)"}},"additionalProperties":false},{"type":"null"}],"description":"Monthly billing plan price for annual iOS products, or null"},"monthly_billing_plan_trial_period_days":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Monthly billing plan trial days, or null"},"monthly_billing_plan_trial_price":{"anyOf":[{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","description":"ISO 4217 currency code (e.g. `USD`)"}},"additionalProperties":false},{"type":"null"}],"description":"Monthly billing plan trial price, or null"},"subscription":{"anyOf":[{"type":"object","required":["period","period_count","trial_period_days"],"properties":{"period":{"type":"string","enum":["day","week","month","year"],"description":"Billing period"},"period_count":{"type":"number","description":"Number of periods per billing cycle"},"trial_period_days":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Number of trial days, or null"},"introductory_offer":{"type":"object","required":["type","duration_days"],"properties":{"type":{"type":"string","enum":["free_trial","pay_as_you_go","pay_up_front"],"description":"Type of introductory offer"},"duration_days":{"type":"number","description":"Duration of the introductory offer in days"}},"additionalProperties":false,"description":"Introductory offer details"}},"additionalProperties":false},{"type":"null"}],"description":"Subscription details, or null for one-time purchases"},"app_store_info":{"anyOf":[{"type":"object","required":["state","reference_name","product_id","in_app_purchase_type"],"properties":{"state":{"type":"string"},"reference_name":{"type":"string"},"product_id":{"type":"string"},"in_app_purchase_type":{"type":"string"}},"additionalProperties":false},{"type":"null"}],"description":"App Store Connect metadata for iOS App Store products, or null"},"entitlements":{"type":"array","items":{"type":"string","description":"a string to be decoded into a number"},"description":"List of entitlement IDs granted by this product"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the product was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the product was last updated"},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"},{"type":"object","required":["message","entitlement_id","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"entitlement_id":{"type":"string"},"param":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidEntitlementReferenceError"]}},"additionalProperties":false,"title":"Invalid Entitlement Reference"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"409":{"description":"The resource already exists or conflicts with an existing resource","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"identifier":{"type":"string"},"field":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/Conflict"]}},"additionalProperties":false,"description":"The resource already exists or conflicts with an existing resource","title":"Conflict"}}}},"422":{"description":"@superwall/api-schema/v2/errors/ProductArchivedError","content":{"application/json":{"schema":{"type":"object","required":["message","product_id","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"product_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ProductArchivedError"]}},"additionalProperties":false,"title":"Product Archived"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Updates a product's name, description, entitlements, or metadata. Requires products:write scope.","summary":"Update Product","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"application_id":{"type":"string","description":"Target application ID when moving a custom product back to an application-backed store"},"identifier":{"type":"string","description":"Platform-specific product identifier","title":"maxLength(191)","minLength":1,"maxLength":191},"android":{"type":"object","required":[],"properties":{"base_plan_or_purchase_option_id":{"type":"string"},"automatically_pick_purchase_option":{"type":"boolean"},"offer_mode":{"type":"string","enum":["auto","none","specific"]},"offer_id":{"type":"string"}},"additionalProperties":false,"description":"Android product intent. The backend constructs and validates the canonical composite identifier."},"store":{"anyOf":[{"type":"string","enum":["app_store"],"description":"Apple App Store"},{"type":"string","enum":["play_store"],"description":"Google Play Store"},{"type":"string","enum":["custom"],"description":"Custom external purchase controller"}],"description":"Store backing the product. `custom` moves or keeps it under the project's custom-store app."},"name":{"type":"string","description":"Display name of the product","title":"maxLength(255)","maxLength":255},"price":{"anyOf":[{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","description":"ISO 4217 currency code (e.g. `USD`)"}},"additionalProperties":false},{"type":"null"}],"description":"Price of the product. Null clears the stored price."},"trial_price":{"anyOf":[{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","description":"ISO 4217 currency code (e.g. `USD`)"}},"additionalProperties":false},{"type":"null"}],"description":"Trial price of the product. Null clears the stored trial price."},"monthly_billing_plan_price":{"anyOf":[{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","description":"ISO 4217 currency code (e.g. `USD`)"}},"additionalProperties":false},{"type":"null"}],"description":"Monthly billing plan price. Null clears the monthly billing plan."},"monthly_billing_plan_trial_period_days":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Monthly billing plan trial days. Null clears the monthly billing plan trial."},"monthly_billing_plan_trial_price":{"anyOf":[{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number"},"currency":{"type":"string","description":"ISO 4217 currency code (e.g. `USD`)"}},"additionalProperties":false},{"type":"null"}],"description":"Monthly billing plan trial price. Null clears the monthly billing plan trial price."},"subscription":{"anyOf":[{"type":"object","required":["period"],"properties":{"period":{"type":"string","enum":["day","week","month","year"],"description":"Billing period for the subscription"},"period_count":{"type":"number"},"trial_period_days":{"type":"number"}},"additionalProperties":false},{"type":"null"}],"description":"Subscription details. Null marks the product as one-time."},"entitlements":{"type":"array","items":{"type":"string","description":"a string to be decoded into a number"},"description":"List of entitlement IDs to grant with this product"},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500},"description":"Arbitrary key-value metadata to attach to the product"}},"additionalProperties":false}}},"required":true}},"delete":{"tags":["Products V2"],"operationId":"productsv2.deleteProduct","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Product ID"},"required":true,"description":"Product ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","deleted"],"properties":{"id":{"type":"string","description":"ID of the deleted product"},"object":{"type":"string","enum":["product"],"description":"Object type, always `product`"},"deleted":{"type":"boolean","enum":[true],"description":"Always true for deletion responses"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"409":{"description":"The resource already exists or conflicts with an existing resource","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"identifier":{"type":"string"},"field":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/Conflict"]}},"additionalProperties":false,"description":"The resource already exists or conflicts with an existing resource","title":"Conflict"}}}},"422":{"description":"@superwall/api-schema/v2/errors/ProductArchivedError","content":{"application/json":{"schema":{"type":"object","required":["message","product_id","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"product_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ProductArchivedError"]}},"additionalProperties":false,"title":"Product Archived"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Deletes a product. Products can only be deleted if not referenced by any active paywalls. Requires products:write scope.","summary":"Delete Product"}},"/v2/applications/{application_id}/webapp_origins":{"get":{"tags":["Application Webapp Origins V2"],"operationId":"applicationWebappOriginsv2.listWebappOrigins","parameters":[{"name":"application_id","in":"path","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"},{"name":"limit","in":"query","schema":{"allOf":[{"$ref":"#/components/schemas/NumberFromString"}],"description":"Maximum number of items to return (1-100, default: 10)"},"required":false,"description":"Maximum number of items to return (1-100, default: 10)"},{"name":"starting_after","in":"query","schema":{"type":"string","description":"a string to be decoded into a number"},"required":false,"description":"a string to be decoded into a number"},{"name":"ending_before","in":"query","schema":{"type":"string","description":"a string to be decoded into a number"},"required":false,"description":"a string to be decoded into a number"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","url","has_more","data"],"properties":{"object":{"type":"string","enum":["list"],"description":"Object type, always `list`"},"url":{"type":"string","enum":["/v2/applications/webapp_origins"],"description":"API endpoint URL for this list"},"has_more":{"type":"boolean","description":"Whether there are more results available beyond this page"},"data":{"type":"array","items":{"type":"object","required":["id","object","application_id","origin","created_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the allowed origin"},"object":{"type":"string","enum":["application_webapp_origin"],"description":"Object type, always `application_webapp_origin`"},"application_id":{"type":"string","description":"ID of the application this origin belongs to"},"origin":{"type":"string","description":"Allowed browser origin (scheme + host only, e.g. `https://merchant.com`)"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the origin was added"}},"additionalProperties":false},"description":"List of results"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns the allowed origins for an application. Requires applications:read scope.","summary":"List Application Webapp Allowed Origins"},"post":{"tags":["Application Webapp Origins V2"],"operationId":"applicationWebappOriginsv2.createWebappOrigin","parameters":[{"name":"application_id","in":"path","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","origin","created_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the allowed origin"},"object":{"type":"string","enum":["application_webapp_origin"],"description":"Object type, always `application_webapp_origin`"},"application_id":{"type":"string","description":"ID of the application this origin belongs to"},"origin":{"type":"string","description":"Allowed browser origin (scheme + host only, e.g. `https://merchant.com`)"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the origin was added"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Adds a browser origin (scheme + host only) to the allowlist. Requires applications:write scope.","summary":"Add Application Webapp Allowed Origin","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["origin"],"properties":{"origin":{"type":"string","description":"Browser origin to allow (scheme + host only)","title":"minLength(1)","minLength":1}},"additionalProperties":false}}},"required":true}}},"/v2/applications/{application_id}/webapp_origins/{id}":{"delete":{"tags":["Application Webapp Origins V2"],"operationId":"applicationWebappOriginsv2.deleteWebappOrigin","parameters":[{"name":"application_id","in":"path","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"},{"name":"id","in":"path","schema":{"type":"string","description":"Allowed origin ID"},"required":true,"description":"Allowed origin ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","deleted"],"properties":{"id":{"type":"string","description":"ID of the deleted origin"},"object":{"type":"string","enum":["application_webapp_origin"],"description":"Object type, always `application_webapp_origin`"},"deleted":{"type":"boolean","enum":[true],"description":"Always true for deletion responses"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Removes an allowed origin from the application. Requires applications:write scope.","summary":"Remove Application Webapp Allowed Origin"}},"/v2/campaigns":{"get":{"tags":["Campaigns V2"],"operationId":"campaignsv2.listCampaigns","parameters":[{"name":"limit","in":"query","schema":{"allOf":[{"$ref":"#/components/schemas/NumberFromString"}],"description":"Maximum number of items to return (1-100, default: 10)"},"required":false,"description":"Maximum number of items to return (1-100, default: 10)"},{"name":"starting_after","in":"query","schema":{"type":"string","description":"a string to be decoded into a number"},"required":false,"description":"a string to be decoded into a number"},{"name":"ending_before","in":"query","schema":{"type":"string","description":"a string to be decoded into a number"},"required":false,"description":"a string to be decoded into a number"},{"name":"application_id","in":"query","schema":{"type":"string","description":"Filter by application ID (required)"},"required":true,"description":"Filter by application ID (required)"},{"name":"archived","in":"query","schema":{"allOf":[{"$ref":"#/components/schemas/BooleanFromString"}],"description":"Include archived campaigns (default: false)"},"required":false,"description":"Include archived campaigns (default: false)"},{"name":"include_sort_metrics","in":"query","schema":{"$ref":"#/components/schemas/BooleanFromString"},"required":false},{"name":"sort_metric","in":"query","schema":{"type":"string","enum":["transactionCompletes"]},"required":false},{"name":"sort_metrics_date_preset","in":"query","schema":{"type":"string","enum":["last_24_hours","today","yesterday","last_7_days","last_30_days","last_90_days","last_180_days","last_365_days","year_to_date"],"description":"Preset date range for included campaign sort metrics"},"required":false,"description":"Preset date range for included campaign sort metrics"},{"name":"sort_metrics_environment","in":"query","schema":{"type":"string","enum":["PRODUCTION","SANDBOX"]},"required":false}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","url","has_more","data"],"properties":{"object":{"type":"string","enum":["list"],"description":"Object type, always `list`"},"url":{"type":"string","enum":["/v2/campaigns"],"description":"API endpoint URL for this list"},"has_more":{"type":"boolean","description":"Whether there are more results available beyond this page"},"data":{"type":"array","items":{"type":"object","required":["id","object","application_id","description","notes","is_legacy","is_prioritized","placements","audiences","created_at","updated_at","archived"],"properties":{"id":{"type":"string","description":"Unique identifier for the campaign"},"object":{"type":"string","enum":["campaign"],"description":"Object type, always `campaign`"},"application_id":{"type":"string","description":"ID of the application this campaign belongs to"},"description":{"type":"string","description":"Description of the campaign"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Internal notes about the campaign"},"is_legacy":{"type":"boolean","description":"Whether this is a legacy campaign"},"is_prioritized":{"type":"boolean","description":"Whether this campaign is prioritized for config preloading. At most one campaign per application may be prioritized."},"placements":{"type":"array","items":{"type":"object","required":["id","object","event_name","enabled"],"properties":{"id":{"type":"string","description":"Unique identifier for the placement"},"object":{"type":"string","enum":["placement"],"description":"Object type, always `placement`"},"event_name":{"type":"string","description":"Event name that triggers this placement"},"enabled":{"type":"boolean","description":"Whether this placement is enabled"}},"additionalProperties":false},"description":"List of placements (triggers) in this campaign"},"audiences":{"type":"array","items":{"type":"object","required":["id","object","enabled","expression","rule_conditions","expression_cel","expression_sql","rank","description","variant_optimization","variants","frequency_limit"],"properties":{"id":{"type":"string","description":"Unique identifier for the audience"},"object":{"type":"string","enum":["audience"],"description":"Object type, always `audience`"},"enabled":{"type":"boolean","description":"Whether this audience is enabled"},"expression":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Compiled filter expression for matching users, or null for all users"},"rule_conditions":{"$id":"/schemas/unknown","title":"unknown","description":"Structured targeting rule (RuleConditions AST) when this audience uses the rule editor, or null for legacy raw-expression audiences. Returned as stored; send it back via the typed `rule_conditions` field on update."},"expression_cel":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The CEL expression evaluated by modern SDKs, derived from `rule_conditions`. Null when the audience has no structured rule."},"expression_sql":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The dashboard-side SQL compilation of `rule_conditions` (for preview/copy). Null when the audience has no structured rule."},"rank":{"type":"string","description":"Priority rank of this audience within the campaign"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Human-readable description of the audience"},"variant_optimization":{"anyOf":[{"type":"string","enum":["none"],"description":"No optimization, use fixed percentages"},{"type":"string","enum":["ucb1_bandit"],"description":"UCB1 multi-armed bandit optimization"}],"description":"Optimization strategy for variant allocation"},"variants":{"type":"array","items":{"type":"object","required":["id","object","type","paywall","percentage","created_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the variant"},"object":{"type":"string","enum":["variant"],"description":"Object type, always `variant`"},"type":{"anyOf":[{"type":"string","enum":["treatment"],"description":"Treatment variant that shows a paywall"},{"type":"string","enum":["holdout"],"description":"Holdout variant that does not show a paywall"}],"description":"Whether this is a treatment or holdout variant"},"paywall":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the paywall shown for this variant, or null for holdouts"},"percentage":{"type":"number","description":"Traffic percentage allocated to this variant (0-100)"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the variant was created"}},"additionalProperties":false},"description":"List of variants in this audience"},"frequency_limit":{"anyOf":[{"type":"object","required":["occurrences","interval"],"properties":{"occurrences":{"$ref":"#/components/schemas/Int"},"interval":{"anyOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["infinity"]}},"additionalProperties":false},{"type":"object","required":["type","minutes"],"properties":{"type":{"type":"string","enum":["minutes"]},"minutes":{"$ref":"#/components/schemas/Int","description":"Length of the rolling window in minutes","title":"positive","exclusiveMinimum":0}},"additionalProperties":false}],"description":"Time window for a frequency limit"}},"additionalProperties":false,"description":"How often each user can be matched into this audience"},{"type":"null"}],"description":"How often each user can be matched into this audience, or null for no limit"}},"additionalProperties":false},"description":"List of audiences in this campaign"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the campaign was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the campaign was last updated"},"archived":{"type":"boolean","description":"Whether the campaign is archived"}},"additionalProperties":false},"description":"List of results"},"sort_metrics":{"type":"object","required":["status","metric","data"],"properties":{"status":{"type":"string","enum":["ready","unavailable"],"description":"Whether campaign sort metrics were loaded successfully"},"metric":{"type":"string","enum":["transactionCompletes"],"description":"Metric included for list ordering"},"data":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"number"},"description":"Transaction conversion count keyed by campaign ID"}},"additionalProperties":false,"description":"Optional lightweight metrics used by clients to sort the campaigns list"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns a list of campaigns for the specified application. Requires campaigns:read scope. The `application_id` query parameter is required.","summary":"List Campaigns"},"post":{"tags":["Campaigns V2"],"operationId":"campaignsv2.createCampaign","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","description","notes","is_legacy","is_prioritized","placements","audiences","created_at","updated_at","archived"],"properties":{"id":{"type":"string","description":"Unique identifier for the campaign"},"object":{"type":"string","enum":["campaign"],"description":"Object type, always `campaign`"},"application_id":{"type":"string","description":"ID of the application this campaign belongs to"},"description":{"type":"string","description":"Description of the campaign"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Internal notes about the campaign"},"is_legacy":{"type":"boolean","description":"Whether this is a legacy campaign"},"is_prioritized":{"type":"boolean","description":"Whether this campaign is prioritized for config preloading. At most one campaign per application may be prioritized."},"placements":{"type":"array","items":{"type":"object","required":["id","object","event_name","enabled"],"properties":{"id":{"type":"string","description":"Unique identifier for the placement"},"object":{"type":"string","enum":["placement"],"description":"Object type, always `placement`"},"event_name":{"type":"string","description":"Event name that triggers this placement"},"enabled":{"type":"boolean","description":"Whether this placement is enabled"}},"additionalProperties":false},"description":"List of placements (triggers) in this campaign"},"audiences":{"type":"array","items":{"type":"object","required":["id","object","enabled","expression","rule_conditions","expression_cel","expression_sql","rank","description","variant_optimization","variants","frequency_limit"],"properties":{"id":{"type":"string","description":"Unique identifier for the audience"},"object":{"type":"string","enum":["audience"],"description":"Object type, always `audience`"},"enabled":{"type":"boolean","description":"Whether this audience is enabled"},"expression":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Compiled filter expression for matching users, or null for all users"},"rule_conditions":{"$id":"/schemas/unknown","title":"unknown","description":"Structured targeting rule (RuleConditions AST) when this audience uses the rule editor, or null for legacy raw-expression audiences. Returned as stored; send it back via the typed `rule_conditions` field on update."},"expression_cel":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The CEL expression evaluated by modern SDKs, derived from `rule_conditions`. Null when the audience has no structured rule."},"expression_sql":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The dashboard-side SQL compilation of `rule_conditions` (for preview/copy). Null when the audience has no structured rule."},"rank":{"type":"string","description":"Priority rank of this audience within the campaign"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Human-readable description of the audience"},"variant_optimization":{"anyOf":[{"type":"string","enum":["none"],"description":"No optimization, use fixed percentages"},{"type":"string","enum":["ucb1_bandit"],"description":"UCB1 multi-armed bandit optimization"}],"description":"Optimization strategy for variant allocation"},"variants":{"type":"array","items":{"type":"object","required":["id","object","type","paywall","percentage","created_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the variant"},"object":{"type":"string","enum":["variant"],"description":"Object type, always `variant`"},"type":{"anyOf":[{"type":"string","enum":["treatment"],"description":"Treatment variant that shows a paywall"},{"type":"string","enum":["holdout"],"description":"Holdout variant that does not show a paywall"}],"description":"Whether this is a treatment or holdout variant"},"paywall":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the paywall shown for this variant, or null for holdouts"},"percentage":{"type":"number","description":"Traffic percentage allocated to this variant (0-100)"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the variant was created"}},"additionalProperties":false},"description":"List of variants in this audience"},"frequency_limit":{"anyOf":[{"type":"object","required":["occurrences","interval"],"properties":{"occurrences":{"$ref":"#/components/schemas/Int"},"interval":{"anyOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["infinity"]}},"additionalProperties":false},{"type":"object","required":["type","minutes"],"properties":{"type":{"type":"string","enum":["minutes"]},"minutes":{"$ref":"#/components/schemas/Int","description":"Length of the rolling window in minutes","title":"positive","exclusiveMinimum":0}},"additionalProperties":false}],"description":"Time window for a frequency limit"}},"additionalProperties":false,"description":"How often each user can be matched into this audience"},{"type":"null"}],"description":"How often each user can be matched into this audience, or null for no limit"}},"additionalProperties":false},"description":"List of audiences in this campaign"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the campaign was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the campaign was last updated"},"archived":{"type":"boolean","description":"Whether the campaign is archived"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"},{"type":"object","required":["message","expected","actual","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"expected":{"type":"number"},"actual":{"type":"number"},"param":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidVariantPercentagesError"]}},"additionalProperties":false,"title":"Invalid Variant Percentages"},{"type":"object","required":["message","event_name","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"event_name":{"type":"string"},"param":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidPlacementNameError"]}},"additionalProperties":false,"title":"Invalid Placement Name"},{"type":"object","required":["message","paywall_id","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"paywall_id":{"type":"string"},"param":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidPaywallReferenceError"]}},"additionalProperties":false,"title":"Invalid Paywall Reference"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"409":{"description":"A placement with this event name already exists in another campaign. Use remove_from_other_campaigns=true to move it.","content":{"application/json":{"schema":{"type":"object","required":["message","event_name","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"event_name":{"type":"string"},"existing_campaign_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PlacementAlreadyExists"]}},"additionalProperties":false,"description":"A placement with this event name already exists in another campaign. Use remove_from_other_campaigns=true to move it.","title":"Placement Already Exists"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Creates a new campaign. `placements` and `audiences` are both optional — omit them (or send empty arrays) to create a campaign with just a name, as in the legacy dashboard, and configure it later; when no audiences are supplied the server creates a single default control audience (a 0% holdout). Audience targeting is set with a structured `rule_conditions` rule, which is compiled into the audience's expression and drives `expression_cel` for modern SDKs; omit it to match all users. The legacy raw `expression` field is no longer accepted. Requires campaigns:write scope.","summary":"Create Campaign","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id","description"],"properties":{"application_id":{"type":"string","description":"ID of the application to create the campaign in"},"description":{"type":"string","description":"Description of the campaign","title":"maxLength(191)","minLength":1,"maxLength":191},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Internal notes about the campaign"},"placements":{"type":"array","items":{"type":"object","required":["event_name"],"properties":{"event_name":{"type":"string","description":"Event name that triggers this placement","title":"minLength(1)","minLength":1},"enabled":{"type":"boolean","description":"Whether this placement is enabled. Defaults to true"},"remove_from_other_campaigns":{"type":"boolean","description":"If true and this event name exists in another campaign, move it to this campaign. If false and event exists elsewhere, returns a conflict error"}},"additionalProperties":false},"description":"List of placements (triggers) for the campaign. Optional — omit it or send an empty array to create a campaign with just a name (as in the legacy dashboard) and add placements later in the editor"},"audiences":{"type":"array","items":{"type":"object","required":["variants"],"properties":{"enabled":{"type":"boolean","description":"Whether this audience is enabled. Defaults to true"},"rule_conditions":{"allOf":[{"$ref":"#/components/schemas/RuleConditions"}],"description":"Structured targeting rule. It is compiled into the audience's expression and drives `expression_cel` for modern SDKs. Omit to match all users."},"expression":{"$id":"/schemas/never","not":{},"title":"never"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Human-readable description of the audience"},"variant_optimization":{"anyOf":[{"type":"string","enum":["none"],"description":"No optimization, use fixed percentages"},{"type":"string","enum":["ucb1_bandit"],"description":"UCB1 multi-armed bandit optimization"}],"description":"Optimization strategy for variant allocation. Defaults to `none`"},"variants":{"type":"array","items":{"type":"object","required":["type","paywall"],"properties":{"type":{"anyOf":[{"type":"string","enum":["treatment"],"description":"Treatment variant that shows a paywall"},{"type":"string","enum":["holdout"],"description":"Holdout variant that does not show a paywall"}],"description":"Whether this is a treatment or holdout variant"},"paywall":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the paywall to show, or null for holdouts"},"percentage":{"type":"number","description":"Traffic percentage allocated to this variant (0-100). When omitted on createVariant, the server applies the legacy default — first treatment / first holdout gets 100%, subsequent variants get 0%."}},"additionalProperties":false},"description":"List of variants in this audience. At least one is required","title":"minItems(1)","minItems":1}},"additionalProperties":false},"description":"List of audiences for the campaign. Optional — when omitted or empty the server creates a single default control audience (one 0% holdout targeting unsubscribed users), matching the legacy name-only create flow"}},"additionalProperties":false}}},"required":true}}},"/v2/campaigns/overview-stats":{"get":{"tags":["Campaigns V2"],"operationId":"campaignsv2.getCampaignOverviewStats","parameters":[{"name":"application_id","in":"query","schema":{"type":"string","description":"Application ID (required)"},"required":true,"description":"Application ID (required)"},{"name":"date_preset","in":"query","schema":{"type":"string","enum":["last_24_hours","today","yesterday","last_7_days","last_30_days","last_90_days","last_180_days","last_365_days","year_to_date"],"description":"Date preset for the stats (default: last_24_hours)"},"required":false,"description":"Date preset for the stats (default: last_24_hours)"},{"name":"environment","in":"query","schema":{"type":"string","enum":["PRODUCTION","SANDBOX"],"description":"Environment for the stats (default: PRODUCTION)"},"required":false,"description":"Environment for the stats (default: PRODUCTION)"},{"name":"refresh","in":"query","schema":{"$ref":"#/components/schemas/BooleanFromString"},"required":false}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","environment","date_preset","computed_at","data"],"properties":{"object":{"type":"string","enum":["campaign_overview_stats"]},"environment":{"type":"string","enum":["PRODUCTION","SANDBOX"],"description":"Environment the stats were computed for"},"date_preset":{"type":"string","enum":["last_24_hours","today","yesterday","last_7_days","last_30_days","last_90_days","last_180_days","last_365_days","year_to_date"],"description":"Date preset the stats were computed for"},"computed_at":{"type":"number","description":"Epoch milliseconds when the returned snapshot was produced"},"data":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"object","required":["users","conversions","conversion_rate","proceeds"],"properties":{"users":{"type":"number","description":"Paywall users"},"conversions":{"type":"number","description":"Transaction completes"},"conversion_rate":{"type":"number","description":"Conversions / users"},"proceeds":{"type":"number","description":"Gross proceeds"}},"additionalProperties":false},"description":"Overview stats keyed by campaign ID"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns per-campaign overview stats (users, conversions, conversion rate, proceeds) for the campaigns list cards, served from a shared edge-cached snapshot with stale-while-revalidate. Requires campaigns:read scope.","summary":"Campaign Overview Stats"}},"/v2/campaigns/event-properties":{"get":{"tags":["Campaigns V2"],"operationId":"campaignsv2.getEventProperties","parameters":[{"name":"application_id","in":"query","schema":{"type":"string","description":"Application ID (required)"},"required":true,"description":"Application ID (required)"},{"name":"names","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Event names to fetch properties for (comma-joined string or repeated param)"},"required":true,"description":"Event names to fetch properties for (comma-joined string or repeated param)"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Event properties list","content":{"application/json":{"schema":{"type":"object","required":["object","data"],"properties":{"object":{"type":"string","enum":["list"],"description":"Object type, always `list`"},"data":{"type":"array","items":{"type":"object","required":["name","key","type","recent_values","last_inserted_at"],"properties":{"name":{"type":"string","description":"Event name the key was seen on (e.g. `user_attributes`, `device_attributes`, or a placement event name)"},"key":{"type":"string","description":"The property key"},"type":{"type":"string","description":"Inferred value type of the property (raw ClickHouse type)"},"recent_values":{"type":"array","items":{"type":"string"},"description":"Up to 25 recent distinct example values (used as RHS suggestions)"},"last_inserted_at":{"type":"string","description":"When the property was most recently seen"}},"additionalProperties":false,"description":"A single event property (name + key) with recent values"},"description":"Event property rows"}},"additionalProperties":false,"description":"Event properties list"}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns the distinct property keys seen for the given event names in an application — each with an inferred value type and up to 25 recent example values — from the ClickHouse `event_attributes` table. Powers the campaign rule editor's LHS property picker (user / device / placement-parameter options plus RHS value suggestions). Requires campaigns:read scope.","summary":"Event Properties"}},"/v2/campaigns/web-paywall-domains":{"get":{"tags":["Campaigns V2"],"operationId":"campaignsv2.listWebPaywallDomains","parameters":[{"name":"application_id","in":"query","schema":{"type":"string","description":"Application ID (required)"},"required":true,"description":"Application ID (required)"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Web paywall domains list","content":{"application/json":{"schema":{"type":"object","required":["object","data"],"properties":{"object":{"type":"string","enum":["list"],"description":"Object type, always `list`"},"data":{"type":"array","items":{"type":"object","required":["domain","base_domain"],"properties":{"domain":{"type":"string","description":"The reserved subdomain slug for the application's web paywall"},"base_domain":{"type":"string","description":"The base domain the subdomain is hosted under (e.g. `superwall.app`)"}},"additionalProperties":false,"description":"A web paywall domain (subdomain + base domain)"},"description":"Web paywall domains for the application"}},"additionalProperties":false,"description":"Web paywall domains list"}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns the reserved web paywall domains for an application — the subdomain slug plus the base domain — used to build the Stripe placement open-link (`https://<domain>.<base_domain>/<event_name>`). Requires campaigns:read scope.","summary":"List Web Paywall Domains"}},"/v2/campaigns/{id}":{"get":{"tags":["Campaigns V2"],"operationId":"campaignsv2.retrieveCampaign","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Campaign ID"},"required":true,"description":"Campaign ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","description","notes","is_legacy","is_prioritized","placements","audiences","created_at","updated_at","archived"],"properties":{"id":{"type":"string","description":"Unique identifier for the campaign"},"object":{"type":"string","enum":["campaign"],"description":"Object type, always `campaign`"},"application_id":{"type":"string","description":"ID of the application this campaign belongs to"},"description":{"type":"string","description":"Description of the campaign"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Internal notes about the campaign"},"is_legacy":{"type":"boolean","description":"Whether this is a legacy campaign"},"is_prioritized":{"type":"boolean","description":"Whether this campaign is prioritized for config preloading. At most one campaign per application may be prioritized."},"placements":{"type":"array","items":{"type":"object","required":["id","object","event_name","enabled"],"properties":{"id":{"type":"string","description":"Unique identifier for the placement"},"object":{"type":"string","enum":["placement"],"description":"Object type, always `placement`"},"event_name":{"type":"string","description":"Event name that triggers this placement"},"enabled":{"type":"boolean","description":"Whether this placement is enabled"}},"additionalProperties":false},"description":"List of placements (triggers) in this campaign"},"audiences":{"type":"array","items":{"type":"object","required":["id","object","enabled","expression","rule_conditions","expression_cel","expression_sql","rank","description","variant_optimization","variants","frequency_limit"],"properties":{"id":{"type":"string","description":"Unique identifier for the audience"},"object":{"type":"string","enum":["audience"],"description":"Object type, always `audience`"},"enabled":{"type":"boolean","description":"Whether this audience is enabled"},"expression":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Compiled filter expression for matching users, or null for all users"},"rule_conditions":{"$id":"/schemas/unknown","title":"unknown","description":"Structured targeting rule (RuleConditions AST) when this audience uses the rule editor, or null for legacy raw-expression audiences. Returned as stored; send it back via the typed `rule_conditions` field on update."},"expression_cel":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The CEL expression evaluated by modern SDKs, derived from `rule_conditions`. Null when the audience has no structured rule."},"expression_sql":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The dashboard-side SQL compilation of `rule_conditions` (for preview/copy). Null when the audience has no structured rule."},"rank":{"type":"string","description":"Priority rank of this audience within the campaign"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Human-readable description of the audience"},"variant_optimization":{"anyOf":[{"type":"string","enum":["none"],"description":"No optimization, use fixed percentages"},{"type":"string","enum":["ucb1_bandit"],"description":"UCB1 multi-armed bandit optimization"}],"description":"Optimization strategy for variant allocation"},"variants":{"type":"array","items":{"type":"object","required":["id","object","type","paywall","percentage","created_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the variant"},"object":{"type":"string","enum":["variant"],"description":"Object type, always `variant`"},"type":{"anyOf":[{"type":"string","enum":["treatment"],"description":"Treatment variant that shows a paywall"},{"type":"string","enum":["holdout"],"description":"Holdout variant that does not show a paywall"}],"description":"Whether this is a treatment or holdout variant"},"paywall":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the paywall shown for this variant, or null for holdouts"},"percentage":{"type":"number","description":"Traffic percentage allocated to this variant (0-100)"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the variant was created"}},"additionalProperties":false},"description":"List of variants in this audience"},"frequency_limit":{"anyOf":[{"type":"object","required":["occurrences","interval"],"properties":{"occurrences":{"$ref":"#/components/schemas/Int"},"interval":{"anyOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["infinity"]}},"additionalProperties":false},{"type":"object","required":["type","minutes"],"properties":{"type":{"type":"string","enum":["minutes"]},"minutes":{"$ref":"#/components/schemas/Int","description":"Length of the rolling window in minutes","title":"positive","exclusiveMinimum":0}},"additionalProperties":false}],"description":"Time window for a frequency limit"}},"additionalProperties":false,"description":"How often each user can be matched into this audience"},{"type":"null"}],"description":"How often each user can be matched into this audience, or null for no limit"}},"additionalProperties":false},"description":"List of audiences in this campaign"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the campaign was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the campaign was last updated"},"archived":{"type":"boolean","description":"Whether the campaign is archived"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Retrieves a campaign by ID. Requires campaigns:read scope.","summary":"Retrieve Campaign"},"patch":{"tags":["Campaigns V2"],"operationId":"campaignsv2.updateCampaign","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Campaign ID"},"required":true,"description":"Campaign ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","description","notes","is_legacy","is_prioritized","placements","audiences","created_at","updated_at","archived"],"properties":{"id":{"type":"string","description":"Unique identifier for the campaign"},"object":{"type":"string","enum":["campaign"],"description":"Object type, always `campaign`"},"application_id":{"type":"string","description":"ID of the application this campaign belongs to"},"description":{"type":"string","description":"Description of the campaign"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Internal notes about the campaign"},"is_legacy":{"type":"boolean","description":"Whether this is a legacy campaign"},"is_prioritized":{"type":"boolean","description":"Whether this campaign is prioritized for config preloading. At most one campaign per application may be prioritized."},"placements":{"type":"array","items":{"type":"object","required":["id","object","event_name","enabled"],"properties":{"id":{"type":"string","description":"Unique identifier for the placement"},"object":{"type":"string","enum":["placement"],"description":"Object type, always `placement`"},"event_name":{"type":"string","description":"Event name that triggers this placement"},"enabled":{"type":"boolean","description":"Whether this placement is enabled"}},"additionalProperties":false},"description":"List of placements (triggers) in this campaign"},"audiences":{"type":"array","items":{"type":"object","required":["id","object","enabled","expression","rule_conditions","expression_cel","expression_sql","rank","description","variant_optimization","variants","frequency_limit"],"properties":{"id":{"type":"string","description":"Unique identifier for the audience"},"object":{"type":"string","enum":["audience"],"description":"Object type, always `audience`"},"enabled":{"type":"boolean","description":"Whether this audience is enabled"},"expression":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Compiled filter expression for matching users, or null for all users"},"rule_conditions":{"$id":"/schemas/unknown","title":"unknown","description":"Structured targeting rule (RuleConditions AST) when this audience uses the rule editor, or null for legacy raw-expression audiences. Returned as stored; send it back via the typed `rule_conditions` field on update."},"expression_cel":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The CEL expression evaluated by modern SDKs, derived from `rule_conditions`. Null when the audience has no structured rule."},"expression_sql":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The dashboard-side SQL compilation of `rule_conditions` (for preview/copy). Null when the audience has no structured rule."},"rank":{"type":"string","description":"Priority rank of this audience within the campaign"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Human-readable description of the audience"},"variant_optimization":{"anyOf":[{"type":"string","enum":["none"],"description":"No optimization, use fixed percentages"},{"type":"string","enum":["ucb1_bandit"],"description":"UCB1 multi-armed bandit optimization"}],"description":"Optimization strategy for variant allocation"},"variants":{"type":"array","items":{"type":"object","required":["id","object","type","paywall","percentage","created_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the variant"},"object":{"type":"string","enum":["variant"],"description":"Object type, always `variant`"},"type":{"anyOf":[{"type":"string","enum":["treatment"],"description":"Treatment variant that shows a paywall"},{"type":"string","enum":["holdout"],"description":"Holdout variant that does not show a paywall"}],"description":"Whether this is a treatment or holdout variant"},"paywall":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the paywall shown for this variant, or null for holdouts"},"percentage":{"type":"number","description":"Traffic percentage allocated to this variant (0-100)"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the variant was created"}},"additionalProperties":false},"description":"List of variants in this audience"},"frequency_limit":{"anyOf":[{"type":"object","required":["occurrences","interval"],"properties":{"occurrences":{"$ref":"#/components/schemas/Int"},"interval":{"anyOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["infinity"]}},"additionalProperties":false},{"type":"object","required":["type","minutes"],"properties":{"type":{"type":"string","enum":["minutes"]},"minutes":{"$ref":"#/components/schemas/Int","description":"Length of the rolling window in minutes","title":"positive","exclusiveMinimum":0}},"additionalProperties":false}],"description":"Time window for a frequency limit"}},"additionalProperties":false,"description":"How often each user can be matched into this audience"},{"type":"null"}],"description":"How often each user can be matched into this audience, or null for no limit"}},"additionalProperties":false},"description":"List of audiences in this campaign"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the campaign was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the campaign was last updated"},"archived":{"type":"boolean","description":"Whether the campaign is archived"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"422":{"description":"@superwall/api-schema/v2/errors/CampaignArchivedError","content":{"application/json":{"schema":{"type":"object","required":["message","campaign_id","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"campaign_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/CampaignArchivedError"]}},"additionalProperties":false,"title":"Campaign Archived"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Updates a campaign's description or notes. Requires campaigns:write scope.","summary":"Update Campaign","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"description":{"type":"string","description":"Description of the campaign","title":"maxLength(191)","minLength":1,"maxLength":191},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Internal notes about the campaign"}},"additionalProperties":false}}},"required":true}}},"/v2/campaigns/{id}/archive":{"post":{"tags":["Campaigns V2"],"operationId":"campaignsv2.archiveCampaign","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Campaign ID"},"required":true,"description":"Campaign ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","id","archived"],"properties":{"object":{"type":"string","enum":["campaign"],"description":"Object type, always `campaign`"},"id":{"type":"string","description":"ID of the campaign"},"archived":{"type":"boolean","description":"Whether the campaign is now archived"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Archives a campaign. Archived campaigns are not returned in list queries by default. Requires campaigns:write scope.","summary":"Archive Campaign"}},"/v2/campaigns/{id}/unarchive":{"post":{"tags":["Campaigns V2"],"operationId":"campaignsv2.unarchiveCampaign","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Campaign ID"},"required":true,"description":"Campaign ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","id","archived"],"properties":{"object":{"type":"string","enum":["campaign"],"description":"Object type, always `campaign`"},"id":{"type":"string","description":"ID of the campaign"},"archived":{"type":"boolean","description":"Whether the campaign is now archived"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Unarchives a previously archived campaign. Requires campaigns:write scope.","summary":"Unarchive Campaign"}},"/v2/campaigns/{id}/prioritize":{"post":{"tags":["Campaigns V2"],"operationId":"campaignsv2.prioritizeCampaign","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Campaign ID"},"required":true,"description":"Campaign ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","description","notes","is_legacy","is_prioritized","placements","audiences","created_at","updated_at","archived"],"properties":{"id":{"type":"string","description":"Unique identifier for the campaign"},"object":{"type":"string","enum":["campaign"],"description":"Object type, always `campaign`"},"application_id":{"type":"string","description":"ID of the application this campaign belongs to"},"description":{"type":"string","description":"Description of the campaign"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Internal notes about the campaign"},"is_legacy":{"type":"boolean","description":"Whether this is a legacy campaign"},"is_prioritized":{"type":"boolean","description":"Whether this campaign is prioritized for config preloading. At most one campaign per application may be prioritized."},"placements":{"type":"array","items":{"type":"object","required":["id","object","event_name","enabled"],"properties":{"id":{"type":"string","description":"Unique identifier for the placement"},"object":{"type":"string","enum":["placement"],"description":"Object type, always `placement`"},"event_name":{"type":"string","description":"Event name that triggers this placement"},"enabled":{"type":"boolean","description":"Whether this placement is enabled"}},"additionalProperties":false},"description":"List of placements (triggers) in this campaign"},"audiences":{"type":"array","items":{"type":"object","required":["id","object","enabled","expression","rule_conditions","expression_cel","expression_sql","rank","description","variant_optimization","variants","frequency_limit"],"properties":{"id":{"type":"string","description":"Unique identifier for the audience"},"object":{"type":"string","enum":["audience"],"description":"Object type, always `audience`"},"enabled":{"type":"boolean","description":"Whether this audience is enabled"},"expression":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Compiled filter expression for matching users, or null for all users"},"rule_conditions":{"$id":"/schemas/unknown","title":"unknown","description":"Structured targeting rule (RuleConditions AST) when this audience uses the rule editor, or null for legacy raw-expression audiences. Returned as stored; send it back via the typed `rule_conditions` field on update."},"expression_cel":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The CEL expression evaluated by modern SDKs, derived from `rule_conditions`. Null when the audience has no structured rule."},"expression_sql":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The dashboard-side SQL compilation of `rule_conditions` (for preview/copy). Null when the audience has no structured rule."},"rank":{"type":"string","description":"Priority rank of this audience within the campaign"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Human-readable description of the audience"},"variant_optimization":{"anyOf":[{"type":"string","enum":["none"],"description":"No optimization, use fixed percentages"},{"type":"string","enum":["ucb1_bandit"],"description":"UCB1 multi-armed bandit optimization"}],"description":"Optimization strategy for variant allocation"},"variants":{"type":"array","items":{"type":"object","required":["id","object","type","paywall","percentage","created_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the variant"},"object":{"type":"string","enum":["variant"],"description":"Object type, always `variant`"},"type":{"anyOf":[{"type":"string","enum":["treatment"],"description":"Treatment variant that shows a paywall"},{"type":"string","enum":["holdout"],"description":"Holdout variant that does not show a paywall"}],"description":"Whether this is a treatment or holdout variant"},"paywall":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the paywall shown for this variant, or null for holdouts"},"percentage":{"type":"number","description":"Traffic percentage allocated to this variant (0-100)"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the variant was created"}},"additionalProperties":false},"description":"List of variants in this audience"},"frequency_limit":{"anyOf":[{"type":"object","required":["occurrences","interval"],"properties":{"occurrences":{"$ref":"#/components/schemas/Int"},"interval":{"anyOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["infinity"]}},"additionalProperties":false},{"type":"object","required":["type","minutes"],"properties":{"type":{"type":"string","enum":["minutes"]},"minutes":{"$ref":"#/components/schemas/Int","description":"Length of the rolling window in minutes","title":"positive","exclusiveMinimum":0}},"additionalProperties":false}],"description":"Time window for a frequency limit"}},"additionalProperties":false,"description":"How often each user can be matched into this audience"},{"type":"null"}],"description":"How often each user can be matched into this audience, or null for no limit"}},"additionalProperties":false},"description":"List of audiences in this campaign"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the campaign was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the campaign was last updated"},"archived":{"type":"boolean","description":"Whether the campaign is archived"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Sets whether this campaign is prioritized for config preloading. At most one campaign per application may be prioritized — prioritizing this one deprioritizes any other. Requires campaigns:write scope.","summary":"Prioritize Campaign","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["is_prioritized"],"properties":{"is_prioritized":{"type":"boolean","description":"Whether to prioritize this campaign. When true, any other prioritized campaign in the same application is deprioritized."}},"additionalProperties":false}}},"required":true}}},"/v2/campaigns/{id}/placements":{"post":{"tags":["Campaigns V2"],"operationId":"campaignsv2.addPlacement","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Campaign ID"},"required":true,"description":"Campaign ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","event_name","enabled"],"properties":{"id":{"type":"string","description":"Unique identifier for the placement"},"object":{"type":"string","enum":["placement"],"description":"Object type, always `placement`"},"event_name":{"type":"string","description":"Event name that triggers this placement"},"enabled":{"type":"boolean","description":"Whether this placement is enabled"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"},{"type":"object","required":["message","event_name","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"event_name":{"type":"string"},"param":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidPlacementNameError"]}},"additionalProperties":false,"title":"Invalid Placement Name"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"409":{"description":"A placement with this event name already exists in another campaign. Use remove_from_other_campaigns=true to move it.","content":{"application/json":{"schema":{"type":"object","required":["message","event_name","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"event_name":{"type":"string"},"existing_campaign_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PlacementAlreadyExists"]}},"additionalProperties":false,"description":"A placement with this event name already exists in another campaign. Use remove_from_other_campaigns=true to move it.","title":"Placement Already Exists"}}}},"422":{"description":"@superwall/api-schema/v2/errors/CampaignArchivedError","content":{"application/json":{"schema":{"type":"object","required":["message","campaign_id","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"campaign_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/CampaignArchivedError"]}},"additionalProperties":false,"title":"Campaign Archived"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Adds a new placement to a campaign. Requires campaigns:write scope.","summary":"Add Placement","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["event_name"],"properties":{"event_name":{"type":"string","description":"Event name that triggers this placement","title":"minLength(1)","minLength":1},"enabled":{"type":"boolean","description":"Whether this placement is enabled. Defaults to true"},"remove_from_other_campaigns":{"type":"boolean","description":"If true and this event name exists in another campaign, move it to this campaign. If false and event exists elsewhere, returns a conflict error"}},"additionalProperties":false}}},"required":true}}},"/v2/campaigns/{id}/placements/{placement_id}":{"patch":{"tags":["Campaigns V2"],"operationId":"campaignsv2.updatePlacement","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Campaign ID"},"required":true,"description":"Campaign ID"},{"name":"placement_id","in":"path","schema":{"type":"string","description":"Placement ID"},"required":true,"description":"Placement ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","event_name","enabled"],"properties":{"id":{"type":"string","description":"Unique identifier for the placement"},"object":{"type":"string","enum":["placement"],"description":"Object type, always `placement`"},"event_name":{"type":"string","description":"Event name that triggers this placement"},"enabled":{"type":"boolean","description":"Whether this placement is enabled"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Updates a placement's event name or enabled status. Requires campaigns:write scope.","summary":"Update Placement","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"event_name":{"type":"string","description":"Event name that triggers this placement","title":"minLength(1)","minLength":1},"enabled":{"type":"boolean","description":"Whether this placement is enabled"}},"additionalProperties":false}}},"required":true}},"delete":{"tags":["Campaigns V2"],"operationId":"campaignsv2.removePlacement","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Campaign ID"},"required":true,"description":"Campaign ID"},{"name":"placement_id","in":"path","schema":{"type":"string","description":"Placement ID"},"required":true,"description":"Placement ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","deleted"],"properties":{"id":{"type":"string","description":"ID of the deleted placement"},"object":{"type":"string","enum":["placement"],"description":"Object type, always `placement`"},"deleted":{"type":"boolean","enum":[true],"description":"Always true for deletion responses"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Removes a placement from a campaign. Requires campaigns:write scope.","summary":"Remove Placement"}},"/v2/campaigns/{id}/audiences/{audience_id}":{"patch":{"tags":["Campaigns V2"],"operationId":"campaignsv2.updateAudience","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Campaign ID"},"required":true,"description":"Campaign ID"},{"name":"audience_id","in":"path","schema":{"type":"string","description":"Audience ID"},"required":true,"description":"Audience ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","enabled","expression","rule_conditions","expression_cel","expression_sql","rank","description","variant_optimization","variants","frequency_limit"],"properties":{"id":{"type":"string","description":"Unique identifier for the audience"},"object":{"type":"string","enum":["audience"],"description":"Object type, always `audience`"},"enabled":{"type":"boolean","description":"Whether this audience is enabled"},"expression":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Compiled filter expression for matching users, or null for all users"},"rule_conditions":{"$id":"/schemas/unknown","title":"unknown","description":"Structured targeting rule (RuleConditions AST) when this audience uses the rule editor, or null for legacy raw-expression audiences. Returned as stored; send it back via the typed `rule_conditions` field on update."},"expression_cel":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The CEL expression evaluated by modern SDKs, derived from `rule_conditions`. Null when the audience has no structured rule."},"expression_sql":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The dashboard-side SQL compilation of `rule_conditions` (for preview/copy). Null when the audience has no structured rule."},"rank":{"type":"string","description":"Priority rank of this audience within the campaign"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Human-readable description of the audience"},"variant_optimization":{"anyOf":[{"type":"string","enum":["none"],"description":"No optimization, use fixed percentages"},{"type":"string","enum":["ucb1_bandit"],"description":"UCB1 multi-armed bandit optimization"}],"description":"Optimization strategy for variant allocation"},"variants":{"type":"array","items":{"type":"object","required":["id","object","type","paywall","percentage","created_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the variant"},"object":{"type":"string","enum":["variant"],"description":"Object type, always `variant`"},"type":{"anyOf":[{"type":"string","enum":["treatment"],"description":"Treatment variant that shows a paywall"},{"type":"string","enum":["holdout"],"description":"Holdout variant that does not show a paywall"}],"description":"Whether this is a treatment or holdout variant"},"paywall":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the paywall shown for this variant, or null for holdouts"},"percentage":{"type":"number","description":"Traffic percentage allocated to this variant (0-100)"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the variant was created"}},"additionalProperties":false},"description":"List of variants in this audience"},"frequency_limit":{"anyOf":[{"type":"object","required":["occurrences","interval"],"properties":{"occurrences":{"$ref":"#/components/schemas/Int"},"interval":{"anyOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["infinity"]}},"additionalProperties":false},{"type":"object","required":["type","minutes"],"properties":{"type":{"type":"string","enum":["minutes"]},"minutes":{"$ref":"#/components/schemas/Int","description":"Length of the rolling window in minutes","title":"positive","exclusiveMinimum":0}},"additionalProperties":false}],"description":"Time window for a frequency limit"}},"additionalProperties":false,"description":"How often each user can be matched into this audience"},{"type":"null"}],"description":"How often each user can be matched into this audience, or null for no limit"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"},{"type":"object","required":["message","expected","actual","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"expected":{"type":"number"},"actual":{"type":"number"},"param":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidVariantPercentagesError"]}},"additionalProperties":false,"title":"Invalid Variant Percentages"},{"type":"object","required":["message","paywall_id","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"paywall_id":{"type":"string"},"param":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidPaywallReferenceError"]}},"additionalProperties":false,"title":"Invalid Paywall Reference"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"422":{"description":"@superwall/api-schema/v2/errors/CampaignArchivedError","content":{"application/json":{"schema":{"type":"object","required":["message","campaign_id","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"campaign_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/CampaignArchivedError"]}},"additionalProperties":false,"title":"Campaign Archived"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Updates an audience's enabled status, description, targeting rule, variant optimization, or variants. Provide a structured `rule_conditions` rule to update targeting: it is compiled into the audience's expression and drives `expression_cel` for modern SDKs, and the audience is switched to the rule editor so it stays in sync with the dashboard. The legacy raw `expression` field is no longer accepted. When variants are provided they replace the existing set. Requires campaigns:write scope.","summary":"Update Audience","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"enabled":{"type":"boolean","description":"Whether this audience is enabled"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Human-readable description of the audience"},"rule_conditions":{"allOf":[{"$ref":"#/components/schemas/RuleConditions"}],"description":"Structured targeting rule. When provided, it is compiled into the audience's expression and drives `expression_cel` for modern SDKs, and the audience is switched to the rule editor. Use an empty `conditions` array to match all users."},"expression":{"$id":"/schemas/never","not":{},"title":"never"},"variant_optimization":{"anyOf":[{"type":"string","enum":["none"],"description":"No optimization, use fixed percentages"},{"type":"string","enum":["ucb1_bandit"],"description":"UCB1 multi-armed bandit optimization"}],"description":"Optimization strategy for variant allocation"},"variants":{"type":"array","items":{"type":"object","required":["type","paywall"],"properties":{"type":{"anyOf":[{"type":"string","enum":["treatment"],"description":"Treatment variant that shows a paywall"},{"type":"string","enum":["holdout"],"description":"Holdout variant that does not show a paywall"}],"description":"Whether this is a treatment or holdout variant"},"paywall":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the paywall to show, or null for holdouts"},"percentage":{"type":"number","description":"Traffic percentage allocated to this variant (0-100). When omitted on createVariant, the server applies the legacy default — first treatment / first holdout gets 100%, subsequent variants get 0%."}},"additionalProperties":false},"description":"Replaces the audience's variants with this list. At least one variant is required","title":"minItems(1)","minItems":1},"frequency_limit":{"anyOf":[{"type":"object","required":["occurrences","interval"],"properties":{"occurrences":{"$ref":"#/components/schemas/Int"},"interval":{"anyOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["infinity"]}},"additionalProperties":false},{"type":"object","required":["type","minutes"],"properties":{"type":{"type":"string","enum":["minutes"]},"minutes":{"$ref":"#/components/schemas/Int","description":"Length of the rolling window in minutes","title":"positive","exclusiveMinimum":0}},"additionalProperties":false}],"description":"Time window for a frequency limit"}},"additionalProperties":false,"description":"How often each user can be matched into this audience"},{"type":"null"}],"description":"Set the per-user frequency limit, or null to remove it. Omit to leave unchanged."}},"additionalProperties":false}}},"required":true}},"delete":{"tags":["Campaigns V2"],"operationId":"campaignsv2.removeAudience","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Campaign ID"},"required":true,"description":"Campaign ID"},{"name":"audience_id","in":"path","schema":{"type":"string","description":"Audience ID"},"required":true,"description":"Audience ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","deleted"],"properties":{"id":{"type":"string","description":"ID of the deleted audience"},"object":{"type":"string","enum":["audience"],"description":"Object type, always `audience`"},"deleted":{"type":"boolean","enum":[true],"description":"Always true for deletion responses"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Soft-deletes an audience from a campaign. The last remaining audience in a campaign cannot be deleted. Requires campaigns:write scope.","summary":"Remove Audience"}},"/v2/campaigns/{id}/audiences":{"post":{"tags":["Campaigns V2"],"operationId":"campaignsv2.createAudience","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Campaign ID"},"required":true,"description":"Campaign ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","enabled","expression","rule_conditions","expression_cel","expression_sql","rank","description","variant_optimization","variants","frequency_limit"],"properties":{"id":{"type":"string","description":"Unique identifier for the audience"},"object":{"type":"string","enum":["audience"],"description":"Object type, always `audience`"},"enabled":{"type":"boolean","description":"Whether this audience is enabled"},"expression":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Compiled filter expression for matching users, or null for all users"},"rule_conditions":{"$id":"/schemas/unknown","title":"unknown","description":"Structured targeting rule (RuleConditions AST) when this audience uses the rule editor, or null for legacy raw-expression audiences. Returned as stored; send it back via the typed `rule_conditions` field on update."},"expression_cel":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The CEL expression evaluated by modern SDKs, derived from `rule_conditions`. Null when the audience has no structured rule."},"expression_sql":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The dashboard-side SQL compilation of `rule_conditions` (for preview/copy). Null when the audience has no structured rule."},"rank":{"type":"string","description":"Priority rank of this audience within the campaign"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Human-readable description of the audience"},"variant_optimization":{"anyOf":[{"type":"string","enum":["none"],"description":"No optimization, use fixed percentages"},{"type":"string","enum":["ucb1_bandit"],"description":"UCB1 multi-armed bandit optimization"}],"description":"Optimization strategy for variant allocation"},"variants":{"type":"array","items":{"type":"object","required":["id","object","type","paywall","percentage","created_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the variant"},"object":{"type":"string","enum":["variant"],"description":"Object type, always `variant`"},"type":{"anyOf":[{"type":"string","enum":["treatment"],"description":"Treatment variant that shows a paywall"},{"type":"string","enum":["holdout"],"description":"Holdout variant that does not show a paywall"}],"description":"Whether this is a treatment or holdout variant"},"paywall":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the paywall shown for this variant, or null for holdouts"},"percentage":{"type":"number","description":"Traffic percentage allocated to this variant (0-100)"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the variant was created"}},"additionalProperties":false},"description":"List of variants in this audience"},"frequency_limit":{"anyOf":[{"type":"object","required":["occurrences","interval"],"properties":{"occurrences":{"$ref":"#/components/schemas/Int"},"interval":{"anyOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["infinity"]}},"additionalProperties":false},{"type":"object","required":["type","minutes"],"properties":{"type":{"type":"string","enum":["minutes"]},"minutes":{"$ref":"#/components/schemas/Int","description":"Length of the rolling window in minutes","title":"positive","exclusiveMinimum":0}},"additionalProperties":false}],"description":"Time window for a frequency limit"}},"additionalProperties":false,"description":"How often each user can be matched into this audience"},{"type":"null"}],"description":"How often each user can be matched into this audience, or null for no limit"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"},{"type":"object","required":["message","expected","actual","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"expected":{"type":"number"},"actual":{"type":"number"},"param":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidVariantPercentagesError"]}},"additionalProperties":false,"title":"Invalid Variant Percentages"},{"type":"object","required":["message","paywall_id","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"paywall_id":{"type":"string"},"param":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidPaywallReferenceError"]}},"additionalProperties":false,"title":"Invalid Paywall Reference"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Creates a new audience in a campaign, appended after the existing audiences. If no `variants` are supplied, a single HOLDOUT variant at 0% is created (matching the legacy createTriggerExperiment behaviour). Provide a structured `rule_conditions` rule to set targeting; omit it to match all users. Requires campaigns:write scope.","summary":"Create Audience","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"enabled":{"type":"boolean","description":"Whether this audience is enabled. Defaults to true"},"rule_conditions":{"allOf":[{"$ref":"#/components/schemas/RuleConditions"}],"description":"Structured targeting rule. It is compiled into the audience's expression and drives `expression_cel` for modern SDKs. Omit to match all users."},"expression":{"$id":"/schemas/never","not":{},"title":"never"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Human-readable description of the audience"},"variant_optimization":{"anyOf":[{"type":"string","enum":["none"],"description":"No optimization, use fixed percentages"},{"type":"string","enum":["ucb1_bandit"],"description":"UCB1 multi-armed bandit optimization"}],"description":"Optimization strategy for variant allocation. Defaults to `none`"},"variants":{"type":"array","items":{"type":"object","required":["type","paywall"],"properties":{"type":{"anyOf":[{"type":"string","enum":["treatment"],"description":"Treatment variant that shows a paywall"},{"type":"string","enum":["holdout"],"description":"Holdout variant that does not show a paywall"}],"description":"Whether this is a treatment or holdout variant"},"paywall":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the paywall to show, or null for holdouts"},"percentage":{"type":"number","description":"Traffic percentage allocated to this variant (0-100). When omitted on createVariant, the server applies the legacy default — first treatment / first holdout gets 100%, subsequent variants get 0%."}},"additionalProperties":false},"description":"Optional list of variants. If omitted, a single HOLDOUT variant at 0% is created (matching legacy behaviour)."}},"additionalProperties":false}}},"required":true}}},"/v2/campaigns/{id}/audiences/{audience_id}/duplicate":{"post":{"tags":["Campaigns V2"],"operationId":"campaignsv2.duplicateAudience","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Campaign ID"},"required":true,"description":"Campaign ID"},{"name":"audience_id","in":"path","schema":{"type":"string","description":"Audience ID"},"required":true,"description":"Audience ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","enabled","expression","rule_conditions","expression_cel","expression_sql","rank","description","variant_optimization","variants","frequency_limit"],"properties":{"id":{"type":"string","description":"Unique identifier for the audience"},"object":{"type":"string","enum":["audience"],"description":"Object type, always `audience`"},"enabled":{"type":"boolean","description":"Whether this audience is enabled"},"expression":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Compiled filter expression for matching users, or null for all users"},"rule_conditions":{"$id":"/schemas/unknown","title":"unknown","description":"Structured targeting rule (RuleConditions AST) when this audience uses the rule editor, or null for legacy raw-expression audiences. Returned as stored; send it back via the typed `rule_conditions` field on update."},"expression_cel":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The CEL expression evaluated by modern SDKs, derived from `rule_conditions`. Null when the audience has no structured rule."},"expression_sql":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The dashboard-side SQL compilation of `rule_conditions` (for preview/copy). Null when the audience has no structured rule."},"rank":{"type":"string","description":"Priority rank of this audience within the campaign"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Human-readable description of the audience"},"variant_optimization":{"anyOf":[{"type":"string","enum":["none"],"description":"No optimization, use fixed percentages"},{"type":"string","enum":["ucb1_bandit"],"description":"UCB1 multi-armed bandit optimization"}],"description":"Optimization strategy for variant allocation"},"variants":{"type":"array","items":{"type":"object","required":["id","object","type","paywall","percentage","created_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the variant"},"object":{"type":"string","enum":["variant"],"description":"Object type, always `variant`"},"type":{"anyOf":[{"type":"string","enum":["treatment"],"description":"Treatment variant that shows a paywall"},{"type":"string","enum":["holdout"],"description":"Holdout variant that does not show a paywall"}],"description":"Whether this is a treatment or holdout variant"},"paywall":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the paywall shown for this variant, or null for holdouts"},"percentage":{"type":"number","description":"Traffic percentage allocated to this variant (0-100)"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the variant was created"}},"additionalProperties":false},"description":"List of variants in this audience"},"frequency_limit":{"anyOf":[{"type":"object","required":["occurrences","interval"],"properties":{"occurrences":{"$ref":"#/components/schemas/Int"},"interval":{"anyOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["infinity"]}},"additionalProperties":false},{"type":"object","required":["type","minutes"],"properties":{"type":{"type":"string","enum":["minutes"]},"minutes":{"$ref":"#/components/schemas/Int","description":"Length of the rolling window in minutes","title":"positive","exclusiveMinimum":0}},"additionalProperties":false}],"description":"Time window for a frequency limit"}},"additionalProperties":false,"description":"How often each user can be matched into this audience"},{"type":"null"}],"description":"How often each user can be matched into this audience, or null for no limit"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"},{"type":"object","required":["message","paywall_id","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"paywall_id":{"type":"string"},"param":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidPaywallReferenceError"]}},"additionalProperties":false,"title":"Invalid Paywall Reference"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Clones an audience (and its variants) into the same campaign, ranked immediately after the source. The duplicate starts paused (enabled = false) so it can be reviewed before going live. Assignments are not copied. Requires campaigns:write scope.","summary":"Duplicate Audience"}},"/v2/campaigns/{id}/audiences/import":{"post":{"tags":["Campaigns V2"],"operationId":"campaignsv2.importAudience","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Campaign ID"},"required":true,"description":"Campaign ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","enabled","expression","rule_conditions","expression_cel","expression_sql","rank","description","variant_optimization","variants","frequency_limit"],"properties":{"id":{"type":"string","description":"Unique identifier for the audience"},"object":{"type":"string","enum":["audience"],"description":"Object type, always `audience`"},"enabled":{"type":"boolean","description":"Whether this audience is enabled"},"expression":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Compiled filter expression for matching users, or null for all users"},"rule_conditions":{"$id":"/schemas/unknown","title":"unknown","description":"Structured targeting rule (RuleConditions AST) when this audience uses the rule editor, or null for legacy raw-expression audiences. Returned as stored; send it back via the typed `rule_conditions` field on update."},"expression_cel":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The CEL expression evaluated by modern SDKs, derived from `rule_conditions`. Null when the audience has no structured rule."},"expression_sql":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The dashboard-side SQL compilation of `rule_conditions` (for preview/copy). Null when the audience has no structured rule."},"rank":{"type":"string","description":"Priority rank of this audience within the campaign"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Human-readable description of the audience"},"variant_optimization":{"anyOf":[{"type":"string","enum":["none"],"description":"No optimization, use fixed percentages"},{"type":"string","enum":["ucb1_bandit"],"description":"UCB1 multi-armed bandit optimization"}],"description":"Optimization strategy for variant allocation"},"variants":{"type":"array","items":{"type":"object","required":["id","object","type","paywall","percentage","created_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the variant"},"object":{"type":"string","enum":["variant"],"description":"Object type, always `variant`"},"type":{"anyOf":[{"type":"string","enum":["treatment"],"description":"Treatment variant that shows a paywall"},{"type":"string","enum":["holdout"],"description":"Holdout variant that does not show a paywall"}],"description":"Whether this is a treatment or holdout variant"},"paywall":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the paywall shown for this variant, or null for holdouts"},"percentage":{"type":"number","description":"Traffic percentage allocated to this variant (0-100)"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the variant was created"}},"additionalProperties":false},"description":"List of variants in this audience"},"frequency_limit":{"anyOf":[{"type":"object","required":["occurrences","interval"],"properties":{"occurrences":{"$ref":"#/components/schemas/Int"},"interval":{"anyOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["infinity"]}},"additionalProperties":false},{"type":"object","required":["type","minutes"],"properties":{"type":{"type":"string","enum":["minutes"]},"minutes":{"$ref":"#/components/schemas/Int","description":"Length of the rolling window in minutes","title":"positive","exclusiveMinimum":0}},"additionalProperties":false}],"description":"Time window for a frequency limit"}},"additionalProperties":false,"description":"How often each user can be matched into this audience"},{"type":"null"}],"description":"How often each user can be matched into this audience, or null for no limit"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"},{"type":"object","required":["message","paywall_id","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"paywall_id":{"type":"string"},"param":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidPaywallReferenceError"]}},"additionalProperties":false,"title":"Invalid Paywall Reference"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Clones an audience (and its variants) from another campaign into this campaign, ranked at the end. Assignments are not copied. Requires campaigns:read on the source campaign and campaigns:write on this campaign.","summary":"Import Audience","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["source_campaign_id","source_audience_id"],"properties":{"source_campaign_id":{"type":"string","description":"ID of the campaign that owns the audience to clone"},"source_audience_id":{"type":"string","description":"ID of the audience to clone into this campaign"}},"additionalProperties":false,"description":"Clone an audience from another campaign into this one"}}},"required":true}}},"/v2/campaigns/{id}/audiences/order":{"put":{"tags":["Campaigns V2"],"operationId":"campaignsv2.reorderAudiences","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Campaign ID"},"required":true,"description":"Campaign ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","description","notes","is_legacy","is_prioritized","placements","audiences","created_at","updated_at","archived"],"properties":{"id":{"type":"string","description":"Unique identifier for the campaign"},"object":{"type":"string","enum":["campaign"],"description":"Object type, always `campaign`"},"application_id":{"type":"string","description":"ID of the application this campaign belongs to"},"description":{"type":"string","description":"Description of the campaign"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Internal notes about the campaign"},"is_legacy":{"type":"boolean","description":"Whether this is a legacy campaign"},"is_prioritized":{"type":"boolean","description":"Whether this campaign is prioritized for config preloading. At most one campaign per application may be prioritized."},"placements":{"type":"array","items":{"type":"object","required":["id","object","event_name","enabled"],"properties":{"id":{"type":"string","description":"Unique identifier for the placement"},"object":{"type":"string","enum":["placement"],"description":"Object type, always `placement`"},"event_name":{"type":"string","description":"Event name that triggers this placement"},"enabled":{"type":"boolean","description":"Whether this placement is enabled"}},"additionalProperties":false},"description":"List of placements (triggers) in this campaign"},"audiences":{"type":"array","items":{"type":"object","required":["id","object","enabled","expression","rule_conditions","expression_cel","expression_sql","rank","description","variant_optimization","variants","frequency_limit"],"properties":{"id":{"type":"string","description":"Unique identifier for the audience"},"object":{"type":"string","enum":["audience"],"description":"Object type, always `audience`"},"enabled":{"type":"boolean","description":"Whether this audience is enabled"},"expression":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Compiled filter expression for matching users, or null for all users"},"rule_conditions":{"$id":"/schemas/unknown","title":"unknown","description":"Structured targeting rule (RuleConditions AST) when this audience uses the rule editor, or null for legacy raw-expression audiences. Returned as stored; send it back via the typed `rule_conditions` field on update."},"expression_cel":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The CEL expression evaluated by modern SDKs, derived from `rule_conditions`. Null when the audience has no structured rule."},"expression_sql":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The dashboard-side SQL compilation of `rule_conditions` (for preview/copy). Null when the audience has no structured rule."},"rank":{"type":"string","description":"Priority rank of this audience within the campaign"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Human-readable description of the audience"},"variant_optimization":{"anyOf":[{"type":"string","enum":["none"],"description":"No optimization, use fixed percentages"},{"type":"string","enum":["ucb1_bandit"],"description":"UCB1 multi-armed bandit optimization"}],"description":"Optimization strategy for variant allocation"},"variants":{"type":"array","items":{"type":"object","required":["id","object","type","paywall","percentage","created_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the variant"},"object":{"type":"string","enum":["variant"],"description":"Object type, always `variant`"},"type":{"anyOf":[{"type":"string","enum":["treatment"],"description":"Treatment variant that shows a paywall"},{"type":"string","enum":["holdout"],"description":"Holdout variant that does not show a paywall"}],"description":"Whether this is a treatment or holdout variant"},"paywall":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the paywall shown for this variant, or null for holdouts"},"percentage":{"type":"number","description":"Traffic percentage allocated to this variant (0-100)"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the variant was created"}},"additionalProperties":false},"description":"List of variants in this audience"},"frequency_limit":{"anyOf":[{"type":"object","required":["occurrences","interval"],"properties":{"occurrences":{"$ref":"#/components/schemas/Int"},"interval":{"anyOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["infinity"]}},"additionalProperties":false},{"type":"object","required":["type","minutes"],"properties":{"type":{"type":"string","enum":["minutes"]},"minutes":{"$ref":"#/components/schemas/Int","description":"Length of the rolling window in minutes","title":"positive","exclusiveMinimum":0}},"additionalProperties":false}],"description":"Time window for a frequency limit"}},"additionalProperties":false,"description":"How often each user can be matched into this audience"},{"type":"null"}],"description":"How often each user can be matched into this audience, or null for no limit"}},"additionalProperties":false},"description":"List of audiences in this campaign"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the campaign was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the campaign was last updated"},"archived":{"type":"boolean","description":"Whether the campaign is archived"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Sets the rank of every audience in a campaign in the order given. Lexorank values are regenerated. `audience_ids` must contain every audience in the campaign with no duplicates. Requires campaigns:write scope.","summary":"Reorder Audiences","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["audience_ids"],"properties":{"audience_ids":{"type":"array","items":{"type":"string","description":"a string to be decoded into a number"},"description":"Audience IDs in the desired order","title":"minItems(1)","minItems":1}},"additionalProperties":false}}},"required":true}}},"/v2/campaigns/{id}/audiences/{audience_id}/reset":{"post":{"tags":["Campaigns V2"],"operationId":"campaignsv2.resetAudienceAssignments","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Campaign ID"},"required":true,"description":"Campaign ID"},{"name":"audience_id","in":"path","schema":{"type":"string","description":"Audience ID"},"required":true,"description":"Audience ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","enabled","expression","rule_conditions","expression_cel","expression_sql","rank","description","variant_optimization","variants","frequency_limit"],"properties":{"id":{"type":"string","description":"Unique identifier for the audience"},"object":{"type":"string","enum":["audience"],"description":"Object type, always `audience`"},"enabled":{"type":"boolean","description":"Whether this audience is enabled"},"expression":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Compiled filter expression for matching users, or null for all users"},"rule_conditions":{"$id":"/schemas/unknown","title":"unknown","description":"Structured targeting rule (RuleConditions AST) when this audience uses the rule editor, or null for legacy raw-expression audiences. Returned as stored; send it back via the typed `rule_conditions` field on update."},"expression_cel":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The CEL expression evaluated by modern SDKs, derived from `rule_conditions`. Null when the audience has no structured rule."},"expression_sql":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The dashboard-side SQL compilation of `rule_conditions` (for preview/copy). Null when the audience has no structured rule."},"rank":{"type":"string","description":"Priority rank of this audience within the campaign"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Human-readable description of the audience"},"variant_optimization":{"anyOf":[{"type":"string","enum":["none"],"description":"No optimization, use fixed percentages"},{"type":"string","enum":["ucb1_bandit"],"description":"UCB1 multi-armed bandit optimization"}],"description":"Optimization strategy for variant allocation"},"variants":{"type":"array","items":{"type":"object","required":["id","object","type","paywall","percentage","created_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the variant"},"object":{"type":"string","enum":["variant"],"description":"Object type, always `variant`"},"type":{"anyOf":[{"type":"string","enum":["treatment"],"description":"Treatment variant that shows a paywall"},{"type":"string","enum":["holdout"],"description":"Holdout variant that does not show a paywall"}],"description":"Whether this is a treatment or holdout variant"},"paywall":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the paywall shown for this variant, or null for holdouts"},"percentage":{"type":"number","description":"Traffic percentage allocated to this variant (0-100)"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the variant was created"}},"additionalProperties":false},"description":"List of variants in this audience"},"frequency_limit":{"anyOf":[{"type":"object","required":["occurrences","interval"],"properties":{"occurrences":{"$ref":"#/components/schemas/Int"},"interval":{"anyOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["infinity"]}},"additionalProperties":false},{"type":"object","required":["type","minutes"],"properties":{"type":{"type":"string","enum":["minutes"]},"minutes":{"$ref":"#/components/schemas/Int","description":"Length of the rolling window in minutes","title":"positive","exclusiveMinimum":0}},"additionalProperties":false}],"description":"Time window for a frequency limit"}},"additionalProperties":false,"description":"How often each user can be matched into this audience"},{"type":"null"}],"description":"How often each user can be matched into this audience, or null for no limit"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Clears all existing user-to-variant assignments for the audience, so users are re-bucketed on their next evaluation. Requires campaigns:write scope.","summary":"Reset Audience Assignments"}},"/v2/campaigns/{id}/audiences/{audience_id}/variants":{"post":{"tags":["Campaigns V2"],"operationId":"campaignsv2.createVariant","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Campaign ID"},"required":true,"description":"Campaign ID"},{"name":"audience_id","in":"path","schema":{"type":"string","description":"Audience ID"},"required":true,"description":"Audience ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","type","paywall","percentage","created_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the variant"},"object":{"type":"string","enum":["variant"],"description":"Object type, always `variant`"},"type":{"anyOf":[{"type":"string","enum":["treatment"],"description":"Treatment variant that shows a paywall"},{"type":"string","enum":["holdout"],"description":"Holdout variant that does not show a paywall"}],"description":"Whether this is a treatment or holdout variant"},"paywall":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the paywall shown for this variant, or null for holdouts"},"percentage":{"type":"number","description":"Traffic percentage allocated to this variant (0-100)"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the variant was created"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"},{"type":"object","required":["message","expected","actual","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"expected":{"type":"number"},"actual":{"type":"number"},"param":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidVariantPercentagesError"]}},"additionalProperties":false,"title":"Invalid Variant Percentages"},{"type":"object","required":["message","paywall_id","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"paywall_id":{"type":"string"},"param":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidPaywallReferenceError"]}},"additionalProperties":false,"title":"Invalid Paywall Reference"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Adds a variant (treatment or holdout) to an audience. When `percentage` is omitted, the legacy default is applied — the first treatment/holdout gets 100%, subsequent variants get 0%. Requires campaigns:write scope.","summary":"Create Variant","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["type","paywall"],"properties":{"type":{"anyOf":[{"type":"string","enum":["treatment"],"description":"Treatment variant that shows a paywall"},{"type":"string","enum":["holdout"],"description":"Holdout variant that does not show a paywall"}],"description":"Whether this is a treatment or holdout variant"},"paywall":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the paywall to show, or null for holdouts"},"percentage":{"type":"number","description":"Traffic percentage allocated to this variant (0-100). When omitted on createVariant, the server applies the legacy default — first treatment / first holdout gets 100%, subsequent variants get 0%."}},"additionalProperties":false}}},"required":true}}},"/v2/campaigns/{id}/audiences/{audience_id}/variants/{variant_id}":{"patch":{"tags":["Campaigns V2"],"operationId":"campaignsv2.updateVariant","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Campaign ID"},"required":true,"description":"Campaign ID"},{"name":"audience_id","in":"path","schema":{"type":"string","description":"Audience ID"},"required":true,"description":"Audience ID"},{"name":"variant_id","in":"path","schema":{"type":"string","description":"Variant ID"},"required":true,"description":"Variant ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","type","paywall","percentage","created_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the variant"},"object":{"type":"string","enum":["variant"],"description":"Object type, always `variant`"},"type":{"anyOf":[{"type":"string","enum":["treatment"],"description":"Treatment variant that shows a paywall"},{"type":"string","enum":["holdout"],"description":"Holdout variant that does not show a paywall"}],"description":"Whether this is a treatment or holdout variant"},"paywall":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the paywall shown for this variant, or null for holdouts"},"percentage":{"type":"number","description":"Traffic percentage allocated to this variant (0-100)"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the variant was created"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"},{"type":"object","required":["message","expected","actual","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"expected":{"type":"number"},"actual":{"type":"number"},"param":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidVariantPercentagesError"]}},"additionalProperties":false,"title":"Invalid Variant Percentages"},{"type":"object","required":["message","paywall_id","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"paywall_id":{"type":"string"},"param":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidPaywallReferenceError"]}},"additionalProperties":false,"title":"Invalid Paywall Reference"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Updates a variant's paywall and/or percentage while preserving its identity where possible. Swapping a paywall soft-deletes the existing variant and inserts a new row (matching the legacy replaceVariantPaywall flow) so live assignments are re-randomised. Requires campaigns:write scope.","summary":"Update Variant","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"paywall":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"New paywall ID for this variant. Treatments must reference a paywall; holdouts must be null. Changing this performs a swap: the old variant row is soft-deleted and a new row is inserted, preserving the percentage."},"percentage":{"type":"number","description":"Traffic percentage allocated to this variant (0-100)"}},"additionalProperties":false}}},"required":true}},"delete":{"tags":["Campaigns V2"],"operationId":"campaignsv2.removeVariant","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Campaign ID"},"required":true,"description":"Campaign ID"},{"name":"audience_id","in":"path","schema":{"type":"string","description":"Audience ID"},"required":true,"description":"Audience ID"},{"name":"variant_id","in":"path","schema":{"type":"string","description":"Variant ID"},"required":true,"description":"Variant ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","deleted"],"properties":{"id":{"type":"string","description":"ID of the deleted variant"},"object":{"type":"string","enum":["variant"],"description":"Object type, always `variant`"},"deleted":{"type":"boolean","enum":[true],"description":"Always true for deletion responses"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Soft-deletes a variant from an audience. Requires campaigns:write scope.","summary":"Remove Variant"}},"/v2/campaigns/{id}/audiences/{audience_id}/users":{"get":{"tags":["Campaigns V2"],"operationId":"campaignsv2.getAudienceUsers","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Campaign ID"},"required":true,"description":"Campaign ID"},{"name":"audience_id","in":"path","schema":{"type":"string","description":"Audience ID"},"required":true,"description":"Audience ID"},{"name":"limit","in":"query","schema":{"allOf":[{"$ref":"#/components/schemas/NumberFromString"}],"description":"Max rows to return (1-100000). Use a large value for export; use 1 to read only `total`. Default 100."},"required":false,"description":"Max rows to return (1-100000). Use a large value for export; use 1 to read only `total`. Default 100."}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Audience users / purchasers list","content":{"application/json":{"schema":{"type":"object","required":["object","data","total"],"properties":{"object":{"type":"string","enum":["list"],"description":"Object type, always `list`"},"data":{"type":"array","items":{"type":"object","required":["id","app_user_id","application_user_id","application_user_alias_id","vendor_id","aliases","ip_address","name","timestamp","inserted_at","device_install_timestamp","platform","app_version","device_os_version","source","device","device_model","device_locale","device_language_code","device_currency_code","device_currency_symbol","sdk_version","radio_type","device_interface_style","bundle_id","low_power_mode","placement","product_id","variant_id","experiment_id","matches","properties"],"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Latest event id for the user"},"app_user_id":{"type":"string","description":"App user identifier"},"application_user_id":{"anyOf":[{"type":"number"},{"type":"null"}]},"application_user_alias_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"vendor_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"aliases":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"ip_address":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Event name"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}]},"inserted_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"device_install_timestamp":{"anyOf":[{"type":"string"},{"type":"null"}]},"platform":{"anyOf":[{"type":"string"},{"type":"null"}]},"app_version":{"anyOf":[{"type":"string"},{"type":"null"}]},"device_os_version":{"anyOf":[{"type":"string"},{"type":"null"}]},"source":{"anyOf":[{"type":"string"},{"type":"null"}]},"device":{"anyOf":[{"type":"string"},{"type":"null"}]},"device_model":{"anyOf":[{"type":"string"},{"type":"null"}]},"device_locale":{"anyOf":[{"type":"string"},{"type":"null"}]},"device_language_code":{"anyOf":[{"type":"string"},{"type":"null"}]},"device_currency_code":{"anyOf":[{"type":"string"},{"type":"null"}]},"device_currency_symbol":{"anyOf":[{"type":"string"},{"type":"null"}]},"sdk_version":{"anyOf":[{"type":"string"},{"type":"null"}]},"radio_type":{"anyOf":[{"type":"string"},{"type":"null"}]},"device_interface_style":{"anyOf":[{"type":"string"},{"type":"null"}]},"bundle_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"low_power_mode":{"anyOf":[{"type":"string"},{"type":"null"}]},"placement":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Placement (trigger/presented-by event name) that matched the user"},"product_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"variant_id":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Assigned variant id"},"experiment_id":{"anyOf":[{"type":"number"},{"type":"null"}]},"matches":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Number of matches in the window (users table only; null for purchasers)"},"properties":{"$id":"/schemas/unknown","description":"Parsed event properties JSON","title":"unknown"}},"additionalProperties":false,"description":"A single audience user / purchaser row"},"description":"Rows, newest first"},"total":{"type":"number","description":"Total unique users / purchasers in the window (not limited by `limit`)"}},"additionalProperties":false,"description":"Audience users / purchasers list"}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns the users matched into this audience's experiment in the last 24 hours (deduped per user, newest first), with `total` set to the unique-user count for the window. Powers the campaigns editor Users tab, export (large `limit`), and the header matched-user count (`limit=1`, read `total`). Requires campaigns:read scope.","summary":"Audience Users"}},"/v2/campaigns/{id}/audiences/{audience_id}/recent-matches":{"get":{"tags":["Campaigns V2"],"operationId":"campaignsv2.getRecentMatches","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Campaign ID"},"required":true,"description":"Campaign ID"},{"name":"audience_id","in":"path","schema":{"type":"string","description":"Audience ID"},"required":true,"description":"Audience ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Audience recent matches (24h `trigger_fire` counts)","content":{"application/json":{"schema":{"type":"object","required":["object","data"],"properties":{"object":{"type":"string","enum":["list"],"description":"Object type, always `list`"},"data":{"type":"array","items":{"type":"object","required":["experiment_id","count"],"properties":{"experiment_id":{"type":"number","description":"The audience's underlying experiment ID"},"count":{"type":"number","description":"Number of `trigger_fire` matches for the experiment in the last 24 hours"}},"additionalProperties":false,"description":"A single recent-match count row"},"description":"Recent-match counts (one row per experiment)"}},"additionalProperties":false,"description":"Audience recent matches (24h `trigger_fire` counts)"}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns the number of `trigger_fire` matches for this audience's underlying experiment in the last 24 hours (a rule-test / debug read of recently-matched users). Requires campaigns:read scope.","summary":"Audience Recent Matches"}},"/v2/campaigns/{id}/audiences/{audience_id}/generate-rule":{"post":{"tags":["Campaigns V2"],"operationId":"campaignsv2.generateAudienceRule","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Campaign ID"},"required":true,"description":"Campaign ID"},{"name":"audience_id","in":"path","schema":{"type":"string","description":"Audience ID"},"required":true,"description":"Audience ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"AI-generated audience targeting rule","content":{"application/json":{"schema":{"type":"object","required":["rule_conditions"],"properties":{"rule_conditions":{"type":"object","required":["operator","conditions"],"properties":{"operator":{"type":"string","enum":["and","or"]},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/RuleCondition"}},"entitlements":{"type":"object","required":["type","rule"],"properties":{"type":{"type":"string","enum":["entitlement"]},"rule":{"anyOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["no_active_entitlements"]}},"additionalProperties":false},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["always_true"]}},"additionalProperties":false},{"type":"object","required":["type","conditions"],"properties":{"type":{"type":"string","enum":["entitlement_conditions"]},"conditions":{"type":"array","items":{"type":"object","required":["type","identifier","status"],"properties":{"type":{"type":"string","enum":["entitlement_condition"]},"identifier":{"type":"string"},"status":{"type":"string","enum":["active","inactive","will_not_renew","in_trial","expired","in_billing_retry"]}},"additionalProperties":false}}},"additionalProperties":false},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["any_will_not_renew"]}},"additionalProperties":false},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["any_in_trial"]}},"additionalProperties":false},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["any_expired_no_active"]}},"additionalProperties":false},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["any_active_subs_auto_renew_disabled"]}},"additionalProperties":false},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["any_in_billing_retry"]}},"additionalProperties":false}]}},"additionalProperties":false}},"additionalProperties":false,"description":"The structured targeting rule (RuleConditions AST) produced from the prompt","title":"Rule Conditions","examples":[{"operator":"and","conditions":[{"type":"condition","lhs":{"type":"property","value":"device.appVersion"},"operator":"gte","rhs":{"type":"string","value":"1.2.3"}}]}]}},"additionalProperties":false,"description":"AI-generated audience targeting rule"}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Uses an LLM to turn a natural-language prompt into a structured audience targeting rule (RuleConditions AST). The suggestion is returned for the caller to review and save; it is not persisted by this endpoint. Requires campaigns:write scope.","summary":"Generate Audience Rule","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["prompt"],"properties":{"prompt":{"type":"string","description":"Natural-language description of the audience to target","title":"maxLength(2000)","minLength":1,"maxLength":2000}},"additionalProperties":false,"description":"Prompt for an AI-generated audience targeting rule"}}},"required":true}}},"/v2/campaigns/{id}/audiences/{audience_id}/purchasers":{"get":{"tags":["Campaigns V2"],"operationId":"campaignsv2.getAudiencePurchasers","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Campaign ID"},"required":true,"description":"Campaign ID"},{"name":"audience_id","in":"path","schema":{"type":"string","description":"Audience ID"},"required":true,"description":"Audience ID"},{"name":"limit","in":"query","schema":{"allOf":[{"$ref":"#/components/schemas/NumberFromString"}],"description":"Max rows to return (1-100000). Use a large value for export; use 1 to read only `total`. Default 100."},"required":false,"description":"Max rows to return (1-100000). Use a large value for export; use 1 to read only `total`. Default 100."}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Audience users / purchasers list","content":{"application/json":{"schema":{"type":"object","required":["object","data","total"],"properties":{"object":{"type":"string","enum":["list"],"description":"Object type, always `list`"},"data":{"type":"array","items":{"type":"object","required":["id","app_user_id","application_user_id","application_user_alias_id","vendor_id","aliases","ip_address","name","timestamp","inserted_at","device_install_timestamp","platform","app_version","device_os_version","source","device","device_model","device_locale","device_language_code","device_currency_code","device_currency_symbol","sdk_version","radio_type","device_interface_style","bundle_id","low_power_mode","placement","product_id","variant_id","experiment_id","matches","properties"],"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Latest event id for the user"},"app_user_id":{"type":"string","description":"App user identifier"},"application_user_id":{"anyOf":[{"type":"number"},{"type":"null"}]},"application_user_alias_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"vendor_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"aliases":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"ip_address":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Event name"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}]},"inserted_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"device_install_timestamp":{"anyOf":[{"type":"string"},{"type":"null"}]},"platform":{"anyOf":[{"type":"string"},{"type":"null"}]},"app_version":{"anyOf":[{"type":"string"},{"type":"null"}]},"device_os_version":{"anyOf":[{"type":"string"},{"type":"null"}]},"source":{"anyOf":[{"type":"string"},{"type":"null"}]},"device":{"anyOf":[{"type":"string"},{"type":"null"}]},"device_model":{"anyOf":[{"type":"string"},{"type":"null"}]},"device_locale":{"anyOf":[{"type":"string"},{"type":"null"}]},"device_language_code":{"anyOf":[{"type":"string"},{"type":"null"}]},"device_currency_code":{"anyOf":[{"type":"string"},{"type":"null"}]},"device_currency_symbol":{"anyOf":[{"type":"string"},{"type":"null"}]},"sdk_version":{"anyOf":[{"type":"string"},{"type":"null"}]},"radio_type":{"anyOf":[{"type":"string"},{"type":"null"}]},"device_interface_style":{"anyOf":[{"type":"string"},{"type":"null"}]},"bundle_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"low_power_mode":{"anyOf":[{"type":"string"},{"type":"null"}]},"placement":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Placement (trigger/presented-by event name) that matched the user"},"product_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"variant_id":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Assigned variant id"},"experiment_id":{"anyOf":[{"type":"number"},{"type":"null"}]},"matches":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Number of matches in the window (users table only; null for purchasers)"},"properties":{"$id":"/schemas/unknown","description":"Parsed event properties JSON","title":"unknown"}},"additionalProperties":false,"description":"A single audience user / purchaser row"},"description":"Rows, newest first"},"total":{"type":"number","description":"Total unique users / purchasers in the window (not limited by `limit`)"}},"additionalProperties":false,"description":"Audience users / purchasers list"}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns purchasers (transaction_complete events) for this audience's experiment in the last 24 hours (newest first), with `total` set to the purchase count for the window. Requires campaigns:read scope.","summary":"Audience Purchasers"}},"/v2/campaigns/{id}/audiences/{audience_id}/readout":{"get":{"tags":["Campaigns V2"],"operationId":"campaignsv2.getAudienceReadout","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Campaign ID"},"required":true,"description":"Campaign ID"},{"name":"audience_id","in":"path","schema":{"type":"string","description":"Audience ID"},"required":true,"description":"Audience ID"},{"name":"environment","in":"query","schema":{"type":"string","enum":["PRODUCTION","SANDBOX"],"description":"Environment to compute for (default: PRODUCTION)"},"required":false,"description":"Environment to compute for (default: PRODUCTION)"},{"name":"breakdown","in":"query","schema":{"type":"string","enum":["variantId","placement"],"description":"Breakdown dimension (default: variantId)"},"required":false,"description":"Breakdown dimension (default: variantId)"},{"name":"variant_ids","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Variant ids as a comma-joined string or repeated `variant_ids` param"},"required":false,"description":"Variant ids as a comma-joined string or repeated `variant_ids` param"},{"name":"refresh","in":"query","schema":{"$ref":"#/components/schemas/BooleanFromString"},"required":false}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Audience readout (variant/placement conversion metrics)","content":{"application/json":{"schema":{"type":"object","required":["object","columns","rows","computed_at"],"properties":{"object":{"type":"string","enum":["audience_readout"],"description":"Object type, always `audience_readout`"},"columns":{"type":"array","items":{"type":"string"},"description":"Metric column keys present on each row"},"rows":{"type":"array","items":{"type":"object","required":["breakdown","product_id","is_totals","users","views","views_per_user","transaction_complete","transaction_complete_rate","trial_start","trial_start_percent","trial_start_rate","trial_pending","trial_conversion","trial_expiration","trial_conversion_rate","trial_cancellation","trial_cancellation_rate","resubscribe","resubscribe_rate","product_change","product_change_conversion","direct_sub","direct_sub_percent","direct_sub_rate","non_renewing_purchase","non_renewing_purchase_rate","renewals","subscription_cancellation","subscription_cancellation_rate","paid","new_paid_subscription","renewing_paid_subscription","cancelled_paid_subscription","expired_paid_subscription","proceeds","trial_conversion_proceeds","proceeds_per_trial_conversion","direct_sub_proceeds","proceeds_per_direct_sub","new_paid_subscription_proceeds","proceeds_per_new_paid_subscription","non_renewing_purchase_proceeds","proceeds_per_non_renewing_purchase","revenue","refunds","refund_rate","missing_integration_events","transaction_health_check","subscription_health_check","trial_health_check","proj_pending_trial_conversions","proj_pending_trial_conversion_proceeds","proj_proceeds","proj_proceeds_per_user"],"properties":{"breakdown":{"$id":"/schemas/unknown","description":"Breakdown keys for this row (experimentId / variantId / productId / placement)","title":"unknown"},"product_id":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"is_totals":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"1 for the totals row, 0 otherwise"},"users":{"anyOf":[{"type":"number"},{"type":"null"}]},"views":{"anyOf":[{"type":"number"},{"type":"null"}]},"views_per_user":{"anyOf":[{"type":"number"},{"type":"null"}]},"transaction_complete":{"anyOf":[{"type":"number"},{"type":"null"}]},"transaction_complete_rate":{"anyOf":[{"type":"array","items":{"type":"number"},"minItems":3,"maxItems":3},{"type":"null"}],"description":"Confidence interval [lower, point, upper]"},"trial_start":{"anyOf":[{"type":"number"},{"type":"null"}]},"trial_start_percent":{"anyOf":[{"type":"number"},{"type":"null"}]},"trial_start_rate":{"anyOf":[{"type":"array","items":{"type":"number"},"minItems":3,"maxItems":3},{"type":"null"}],"description":"Confidence interval [lower, point, upper]"},"trial_pending":{"anyOf":[{"type":"number"},{"type":"null"}]},"trial_conversion":{"anyOf":[{"type":"number"},{"type":"null"}]},"trial_expiration":{"anyOf":[{"type":"number"},{"type":"null"}]},"trial_conversion_rate":{"anyOf":[{"type":"array","items":{"type":"number"},"minItems":3,"maxItems":3},{"type":"null"}],"description":"Confidence interval [lower, point, upper]"},"trial_cancellation":{"anyOf":[{"type":"number"},{"type":"null"}]},"trial_cancellation_rate":{"anyOf":[{"type":"array","items":{"type":"number"},"minItems":3,"maxItems":3},{"type":"null"}],"description":"Confidence interval [lower, point, upper]"},"resubscribe":{"anyOf":[{"type":"number"},{"type":"null"}]},"resubscribe_rate":{"anyOf":[{"type":"array","items":{"type":"number"},"minItems":3,"maxItems":3},{"type":"null"}],"description":"Confidence interval [lower, point, upper]"},"product_change":{"anyOf":[{"type":"number"},{"type":"null"}]},"product_change_conversion":{"anyOf":[{"type":"number"},{"type":"null"}]},"direct_sub":{"anyOf":[{"type":"number"},{"type":"null"}]},"direct_sub_percent":{"anyOf":[{"type":"number"},{"type":"null"}]},"direct_sub_rate":{"anyOf":[{"type":"array","items":{"type":"number"},"minItems":3,"maxItems":3},{"type":"null"}],"description":"Confidence interval [lower, point, upper]"},"non_renewing_purchase":{"anyOf":[{"type":"number"},{"type":"null"}]},"non_renewing_purchase_rate":{"anyOf":[{"type":"array","items":{"type":"number"},"minItems":3,"maxItems":3},{"type":"null"}],"description":"Confidence interval [lower, point, upper]"},"renewals":{"anyOf":[{"type":"number"},{"type":"null"}]},"subscription_cancellation":{"anyOf":[{"type":"number"},{"type":"null"}]},"subscription_cancellation_rate":{"anyOf":[{"type":"array","items":{"type":"number"},"minItems":3,"maxItems":3},{"type":"null"}],"description":"Confidence interval [lower, point, upper]"},"paid":{"anyOf":[{"type":"number"},{"type":"null"}]},"new_paid_subscription":{"anyOf":[{"type":"number"},{"type":"null"}]},"renewing_paid_subscription":{"anyOf":[{"type":"number"},{"type":"null"}]},"cancelled_paid_subscription":{"anyOf":[{"type":"number"},{"type":"null"}]},"expired_paid_subscription":{"anyOf":[{"type":"number"},{"type":"null"}]},"proceeds":{"anyOf":[{"type":"number"},{"type":"null"}]},"trial_conversion_proceeds":{"anyOf":[{"type":"number"},{"type":"null"}]},"proceeds_per_trial_conversion":{"anyOf":[{"type":"number"},{"type":"null"}]},"direct_sub_proceeds":{"anyOf":[{"type":"number"},{"type":"null"}]},"proceeds_per_direct_sub":{"anyOf":[{"type":"number"},{"type":"null"}]},"new_paid_subscription_proceeds":{"anyOf":[{"type":"number"},{"type":"null"}]},"proceeds_per_new_paid_subscription":{"anyOf":[{"type":"number"},{"type":"null"}]},"non_renewing_purchase_proceeds":{"anyOf":[{"type":"number"},{"type":"null"}]},"proceeds_per_non_renewing_purchase":{"anyOf":[{"type":"number"},{"type":"null"}]},"revenue":{"anyOf":[{"type":"number"},{"type":"null"}]},"refunds":{"anyOf":[{"type":"number"},{"type":"null"}]},"refund_rate":{"anyOf":[{"type":"number"},{"type":"null"}]},"missing_integration_events":{"anyOf":[{"type":"number"},{"type":"null"}]},"transaction_health_check":{"anyOf":[{"type":"number"},{"type":"null"}]},"subscription_health_check":{"anyOf":[{"type":"number"},{"type":"null"}]},"trial_health_check":{"anyOf":[{"type":"number"},{"type":"null"}]},"proj_pending_trial_conversions":{"anyOf":[{"type":"array","items":{"type":"number"},"minItems":3,"maxItems":3},{"type":"null"}],"description":"Confidence interval [lower, point, upper]"},"proj_pending_trial_conversion_proceeds":{"anyOf":[{"type":"array","items":{"type":"number"},"minItems":3,"maxItems":3},{"type":"null"}],"description":"Confidence interval [lower, point, upper]"},"proj_proceeds":{"anyOf":[{"type":"array","items":{"type":"number"},"minItems":3,"maxItems":3},{"type":"null"}],"description":"Confidence interval [lower, point, upper]"},"proj_proceeds_per_user":{"anyOf":[{"type":"array","items":{"type":"number"},"minItems":3,"maxItems":3},{"type":"null"}],"description":"Confidence interval [lower, point, upper]"}},"additionalProperties":false,"description":"A single audience readout metric row"},"description":"One row per breakdown value, plus a totals row (`is_totals = 1`)"},"computed_at":{"type":"number","description":"Epoch milliseconds when the returned snapshot was produced. Served from a shared, edge-cached snapshot; re-request with `refresh=true` to force a fresh computation."}},"additionalProperties":false,"description":"Audience readout (variant/placement conversion metrics)"}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns per-variant (or per-placement) conversion metrics for the audience's experiment — users, views, transaction completes and rates, proceeds, trial starts/conversions and confidence intervals — computed from the revenue analytics UDF. Requires campaigns:read scope.","summary":"Audience Readout"}},"/v2/campaigns/{id}/audiences/{audience_id}/dropoff":{"get":{"tags":["Campaigns V2"],"operationId":"campaignsv2.getAudienceDropoff","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Campaign ID"},"required":true,"description":"Campaign ID"},{"name":"audience_id","in":"path","schema":{"type":"string","description":"Audience ID"},"required":true,"description":"Audience ID"},{"name":"environment","in":"query","schema":{"type":"string","enum":["PRODUCTION","SANDBOX"]},"required":false},{"name":"date_from","in":"query","schema":{"type":"string"},"required":true},{"name":"refresh","in":"query","schema":{"$ref":"#/components/schemas/BooleanFromString"},"required":false}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Audience flows / drop-off funnel analytics","content":{"application/json":{"schema":{"type":"object","required":["object","has_page_views","dropoff","transitions","paywall_opens","layer_users","layer_median_time","computed_at"],"properties":{"object":{"type":"string","enum":["audience_dropoff"]},"has_page_views":{"type":"boolean"},"dropoff":{"type":"array","items":{"type":"object","required":["variant_id","paywall_id","paywall_name","flow_position","page_name","page_node_id","views","unique_users"],"properties":{"variant_id":{"type":"string"},"paywall_id":{"type":"string"},"paywall_name":{"type":"string"},"flow_position":{"type":"number"},"page_name":{"type":"string"},"page_node_id":{"type":"string"},"views":{"type":"number"},"unique_users":{"type":"number"}},"additionalProperties":false}},"transitions":{"type":"array","items":{"type":"object","required":["variant_id","page_node_id","page_name","flow_position","previous_page_node_id","previous_flow_position","transitions"],"properties":{"variant_id":{"type":"string"},"page_node_id":{"type":"string"},"page_name":{"type":"string"},"flow_position":{"type":"number"},"previous_page_node_id":{"type":"string"},"previous_flow_position":{"type":"number"},"transitions":{"type":"number"}},"additionalProperties":false}},"paywall_opens":{"type":"array","items":{"type":"object","required":["variant_id","users","views"],"properties":{"variant_id":{"type":"string"},"users":{"type":"number"},"views":{"type":"number"}},"additionalProperties":false}},"layer_users":{"type":"array","items":{"type":"object","required":["variant_id","flow_position","unique_views","unique_people"],"properties":{"variant_id":{"type":"string"},"flow_position":{"type":"number"},"unique_views":{"type":"number"},"unique_people":{"type":"number"}},"additionalProperties":false}},"layer_median_time":{"type":"array","items":{"type":"object","required":["variant_id","previous_flow_position","median_time_ms"],"properties":{"variant_id":{"type":"string"},"previous_flow_position":{"type":"number"},"median_time_ms":{"type":"number"}},"additionalProperties":false}},"computed_at":{"type":"number","description":"Epoch milliseconds when the returned snapshot was produced. Served from a shared, edge-cached snapshot; re-request with `refresh=true` to force a fresh computation."}},"additionalProperties":false,"description":"Audience flows / drop-off funnel analytics"}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns paywall page-view drop-off / flows analytics for the audience's experiment — per-variant per-layer views/users, page transitions, and median time between layers — from the `paywall_page_view_dropoff_agg` ClickHouse table. Requires campaigns:read scope.","summary":"Audience Flows"}},"/v2/campaigns/{id}/audiences/{audience_id}/weights":{"put":{"tags":["Campaigns V2"],"operationId":"campaignsv2.updateAudienceWeights","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Campaign ID"},"required":true,"description":"Campaign ID"},{"name":"audience_id","in":"path","schema":{"type":"string","description":"Audience ID"},"required":true,"description":"Audience ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","enabled","expression","rule_conditions","expression_cel","expression_sql","rank","description","variant_optimization","variants","frequency_limit"],"properties":{"id":{"type":"string","description":"Unique identifier for the audience"},"object":{"type":"string","enum":["audience"],"description":"Object type, always `audience`"},"enabled":{"type":"boolean","description":"Whether this audience is enabled"},"expression":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Compiled filter expression for matching users, or null for all users"},"rule_conditions":{"$id":"/schemas/unknown","title":"unknown","description":"Structured targeting rule (RuleConditions AST) when this audience uses the rule editor, or null for legacy raw-expression audiences. Returned as stored; send it back via the typed `rule_conditions` field on update."},"expression_cel":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The CEL expression evaluated by modern SDKs, derived from `rule_conditions`. Null when the audience has no structured rule."},"expression_sql":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The dashboard-side SQL compilation of `rule_conditions` (for preview/copy). Null when the audience has no structured rule."},"rank":{"type":"string","description":"Priority rank of this audience within the campaign"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Human-readable description of the audience"},"variant_optimization":{"anyOf":[{"type":"string","enum":["none"],"description":"No optimization, use fixed percentages"},{"type":"string","enum":["ucb1_bandit"],"description":"UCB1 multi-armed bandit optimization"}],"description":"Optimization strategy for variant allocation"},"variants":{"type":"array","items":{"type":"object","required":["id","object","type","paywall","percentage","created_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the variant"},"object":{"type":"string","enum":["variant"],"description":"Object type, always `variant`"},"type":{"anyOf":[{"type":"string","enum":["treatment"],"description":"Treatment variant that shows a paywall"},{"type":"string","enum":["holdout"],"description":"Holdout variant that does not show a paywall"}],"description":"Whether this is a treatment or holdout variant"},"paywall":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the paywall shown for this variant, or null for holdouts"},"percentage":{"type":"number","description":"Traffic percentage allocated to this variant (0-100)"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the variant was created"}},"additionalProperties":false},"description":"List of variants in this audience"},"frequency_limit":{"anyOf":[{"type":"object","required":["occurrences","interval"],"properties":{"occurrences":{"$ref":"#/components/schemas/Int"},"interval":{"anyOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["infinity"]}},"additionalProperties":false},{"type":"object","required":["type","minutes"],"properties":{"type":{"type":"string","enum":["minutes"]},"minutes":{"$ref":"#/components/schemas/Int","description":"Length of the rolling window in minutes","title":"positive","exclusiveMinimum":0}},"additionalProperties":false}],"description":"Time window for a frequency limit"}},"additionalProperties":false,"description":"How often each user can be matched into this audience"},{"type":"null"}],"description":"How often each user can be matched into this audience, or null for no limit"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"},{"type":"object","required":["message","expected","actual","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"expected":{"type":"number"},"actual":{"type":"number"},"param":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidVariantPercentagesError"]}},"additionalProperties":false,"title":"Invalid Variant Percentages"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Bulk-updates treatment-variant traffic percentages in place (preserving variant identity). Every treatment must be present, with no duplicate IDs; the HOLDOUT variant (if any) is auto-balanced to (100 - sum). Requires campaigns:write scope.","summary":"Update Audience Weights","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["weights"],"properties":{"weights":{"type":"array","items":{"type":"object","required":["variant_id","percentage"],"properties":{"variant_id":{"type":"string","description":"a string to be decoded into a number"},"percentage":{"type":"number"}},"additionalProperties":false},"description":"Treatment-variant weights. The HOLDOUT variant (if any) is auto-balanced to (100 - sum).","title":"minItems(1)","minItems":1}},"additionalProperties":false}}},"required":true}}},"/v2/entitlements":{"get":{"tags":["Entitlements V2"],"operationId":"entitlementsv2.listEntitlements","parameters":[{"name":"limit","in":"query","schema":{"allOf":[{"$ref":"#/components/schemas/NumberFromString"}],"description":"Maximum number of items to return (1-100, default: 10)"},"required":false,"description":"Maximum number of items to return (1-100, default: 10)"},{"name":"starting_after","in":"query","schema":{"type":"string","description":"a string to be decoded into a number"},"required":false,"description":"a string to be decoded into a number"},{"name":"ending_before","in":"query","schema":{"type":"string","description":"a string to be decoded into a number"},"required":false,"description":"a string to be decoded into a number"},{"name":"project_id","in":"query","schema":{"type":"string","description":"Filter by project ID (required)"},"required":true,"description":"Filter by project ID (required)"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","url","has_more","data"],"properties":{"object":{"type":"string","enum":["list"],"description":"Object type, always `list`"},"url":{"type":"string","enum":["/v2/entitlements"],"description":"API endpoint URL for this list"},"has_more":{"type":"boolean","description":"Whether there are more results available beyond this page"},"data":{"type":"array","items":{"type":"object","required":["id","object","project_id","application_id","identifier","name","description","products","metadata","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the entitlement"},"object":{"type":"string","enum":["entitlement"],"description":"Object type, always `entitlement`"},"project_id":{"type":"string","description":"ID of the project this entitlement belongs to"},"application_id":{"type":"string","description":"ID of the application that owns this entitlement"},"identifier":{"type":"string","description":"Unique identifier string for the entitlement"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Display name of the entitlement, or null"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Description of the entitlement, or null"},"products":{"type":"array","items":{"type":"string","description":"a string to be decoded into a number"},"description":"List of product IDs that grant this entitlement"},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500}},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the entitlement was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the entitlement was last updated"}},"additionalProperties":false},"description":"List of results"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns a list of entitlements for the specified project. Requires entitlements:read scope. The `project_id` query parameter is required.","summary":"List Entitlements"},"post":{"tags":["Entitlements V2"],"operationId":"entitlementsv2.createEntitlement","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","project_id","application_id","identifier","name","description","products","metadata","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the entitlement"},"object":{"type":"string","enum":["entitlement"],"description":"Object type, always `entitlement`"},"project_id":{"type":"string","description":"ID of the project this entitlement belongs to"},"application_id":{"type":"string","description":"ID of the application that owns this entitlement"},"identifier":{"type":"string","description":"Unique identifier string for the entitlement"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Display name of the entitlement, or null"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Description of the entitlement, or null"},"products":{"type":"array","items":{"type":"string","description":"a string to be decoded into a number"},"description":"List of product IDs that grant this entitlement"},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500}},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the entitlement was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the entitlement was last updated"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"},{"type":"object","required":["message","product_id","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"product_id":{"type":"string"},"param":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidProductReferenceError"]}},"additionalProperties":false,"title":"Invalid Product Reference"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"409":{"description":"The resource already exists or conflicts with an existing resource","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"identifier":{"type":"string"},"field":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/Conflict"]}},"additionalProperties":false,"description":"The resource already exists or conflicts with an existing resource","title":"Conflict"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Creates a new entitlement in the specified application. Requires entitlements:write scope.","summary":"Create Entitlement","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["project_id","identifier"],"properties":{"project_id":{"type":"string","description":"ID of the project to create the entitlement in"},"application_id":{"type":"string","description":"a string to be decoded into a number"},"identifier":{"type":"string","description":"Unique identifier string for the entitlement","title":"maxLength(191)","minLength":1,"maxLength":191},"name":{"type":"string","description":"a string at most 255 character(s) long","title":"maxLength(255)","maxLength":255},"description":{"type":"string"},"products":{"type":"array","items":{"type":"string","description":"a string to be decoded into a number"},"description":"List of product IDs that grant this entitlement"},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500}}},"additionalProperties":false}}},"required":true}}},"/v2/entitlements/{id}":{"get":{"tags":["Entitlements V2"],"operationId":"entitlementsv2.retrieveEntitlement","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Entitlement ID"},"required":true,"description":"Entitlement ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","project_id","application_id","identifier","name","description","products","metadata","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the entitlement"},"object":{"type":"string","enum":["entitlement"],"description":"Object type, always `entitlement`"},"project_id":{"type":"string","description":"ID of the project this entitlement belongs to"},"application_id":{"type":"string","description":"ID of the application that owns this entitlement"},"identifier":{"type":"string","description":"Unique identifier string for the entitlement"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Display name of the entitlement, or null"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Description of the entitlement, or null"},"products":{"type":"array","items":{"type":"string","description":"a string to be decoded into a number"},"description":"List of product IDs that grant this entitlement"},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500}},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the entitlement was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the entitlement was last updated"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Retrieves an entitlement by ID. Requires entitlements:read scope.","summary":"Retrieve Entitlement"},"patch":{"tags":["Entitlements V2"],"operationId":"entitlementsv2.updateEntitlement","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Entitlement ID"},"required":true,"description":"Entitlement ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","project_id","application_id","identifier","name","description","products","metadata","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the entitlement"},"object":{"type":"string","enum":["entitlement"],"description":"Object type, always `entitlement`"},"project_id":{"type":"string","description":"ID of the project this entitlement belongs to"},"application_id":{"type":"string","description":"ID of the application that owns this entitlement"},"identifier":{"type":"string","description":"Unique identifier string for the entitlement"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Display name of the entitlement, or null"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Description of the entitlement, or null"},"products":{"type":"array","items":{"type":"string","description":"a string to be decoded into a number"},"description":"List of product IDs that grant this entitlement"},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500}},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the entitlement was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the entitlement was last updated"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"},{"type":"object","required":["message","product_id","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"product_id":{"type":"string"},"param":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidProductReferenceError"]}},"additionalProperties":false,"title":"Invalid Product Reference"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"409":{"description":"The resource already exists or conflicts with an existing resource","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"identifier":{"type":"string"},"field":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/Conflict"]}},"additionalProperties":false,"description":"The resource already exists or conflicts with an existing resource","title":"Conflict"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Updates an entitlement's name, description, products, or metadata. Requires entitlements:write scope.","summary":"Update Entitlement","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"identifier":{"type":"string","description":"Unique identifier string for the entitlement","title":"maxLength(191)","minLength":1,"maxLength":191},"name":{"type":"string","description":"Display name of the entitlement","title":"maxLength(255)","maxLength":255},"description":{"type":"string","description":"Description of the entitlement"},"products":{"type":"array","items":{"type":"string","description":"a string to be decoded into a number"},"description":"List of product IDs that grant this entitlement"},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500},"description":"Arbitrary key-value metadata to attach to the entitlement"}},"additionalProperties":false}}},"required":true}},"delete":{"tags":["Entitlements V2"],"operationId":"entitlementsv2.deleteEntitlement","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Entitlement ID"},"required":true,"description":"Entitlement ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","deleted"],"properties":{"id":{"type":"string","description":"ID of the deleted entitlement"},"object":{"type":"string","enum":["entitlement"],"description":"Object type, always `entitlement`"},"deleted":{"type":"boolean","enum":[true],"description":"Always true for deletion responses"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"409":{"description":"The resource already exists or conflicts with an existing resource","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"identifier":{"type":"string"},"field":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/Conflict"]}},"additionalProperties":false,"description":"The resource already exists or conflicts with an existing resource","title":"Conflict"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Deletes an entitlement. Requires entitlements:write scope.","summary":"Delete Entitlement"}},"/v2/entitlements/{id}/grants":{"get":{"tags":["Entitlements V2"],"operationId":"entitlementsv2.listGrants","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Entitlement ID"},"required":true,"description":"Entitlement ID"},{"name":"limit","in":"query","schema":{"allOf":[{"$ref":"#/components/schemas/NumberFromString"}],"description":"Maximum number of items to return (1-100, default: 10)"},"required":false,"description":"Maximum number of items to return (1-100, default: 10)"},{"name":"starting_after","in":"query","schema":{"type":"string","description":"a string to be decoded into a number"},"required":false,"description":"a string to be decoded into a number"},{"name":"ending_before","in":"query","schema":{"type":"string","description":"a string to be decoded into a number"},"required":false,"description":"a string to be decoded into a number"},{"name":"include_expired","in":"query","schema":{"allOf":[{"$ref":"#/components/schemas/BooleanFromString"}],"description":"Include expired grants (default: false)"},"required":false,"description":"Include expired grants (default: false)"},{"name":"include_revoked","in":"query","schema":{"allOf":[{"$ref":"#/components/schemas/BooleanFromString"}],"description":"Include revoked grants (default: false)"},"required":false,"description":"Include revoked grants (default: false)"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","url","has_more","data"],"properties":{"object":{"type":"string","enum":["list"],"description":"Object type, always `list`"},"url":{"type":"string","enum":["/v2/entitlements/:id/grants"],"description":"API endpoint URL for this list"},"has_more":{"type":"boolean","description":"Whether there are more results available beyond this page"},"data":{"type":"array","items":{"type":"object","required":["id","object","entitlement","entitlement_identifier","user_id","device_id","expires_at","reason","granted_by","granted_at","status"],"properties":{"id":{"type":"string","description":"Unique identifier for the grant"},"object":{"type":"string","enum":["entitlement_grant"],"description":"Object type, always `entitlement_grant`"},"entitlement":{"type":"string","description":"ID of the entitlement being granted"},"entitlement_identifier":{"type":"string","description":"Identifier string of the entitlement being granted"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID the grant applies to, or null"},"device_id":{"type":"string","description":"Device ID the grant applies to"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 timestamp of when the grant expires, or null for permanent grants"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Reason for the grant, or null"},"granted_by":{"type":"string","description":"Identifier of who granted this entitlement"},"granted_at":{"type":"string","description":"ISO 8601 timestamp of when the grant was created"},"status":{"anyOf":[{"type":"string","enum":["active"],"description":"Grant is currently active"},{"type":"string","enum":["expired"],"description":"Grant has expired"},{"type":"string","enum":["revoked"],"description":"Grant has been revoked"}],"description":"Current status of the grant"}},"additionalProperties":false},"description":"List of results"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns a list of manual grants for the specified entitlement. Requires entitlements:read scope.","summary":"List Grants"},"post":{"tags":["Entitlements V2"],"operationId":"entitlementsv2.createGrant","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Entitlement ID"},"required":true,"description":"Entitlement ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","entitlement","entitlement_identifier","user_id","device_id","expires_at","reason","granted_by","granted_at","status"],"properties":{"id":{"type":"string","description":"Unique identifier for the grant"},"object":{"type":"string","enum":["entitlement_grant"],"description":"Object type, always `entitlement_grant`"},"entitlement":{"type":"string","description":"ID of the entitlement being granted"},"entitlement_identifier":{"type":"string","description":"Identifier string of the entitlement being granted"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID the grant applies to, or null"},"device_id":{"type":"string","description":"Device ID the grant applies to"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 timestamp of when the grant expires, or null for permanent grants"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Reason for the grant, or null"},"granted_by":{"type":"string","description":"Identifier of who granted this entitlement"},"granted_at":{"type":"string","description":"ISO 8601 timestamp of when the grant was created"},"status":{"anyOf":[{"type":"string","enum":["active"],"description":"Grant is currently active"},{"type":"string","enum":["expired"],"description":"Grant has expired"},{"type":"string","enum":["revoked"],"description":"Grant has been revoked"}],"description":"Current status of the grant"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"409":{"description":"The resource already exists or conflicts with an existing resource","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"identifier":{"type":"string"},"field":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/Conflict"]}},"additionalProperties":false,"description":"The resource already exists or conflicts with an existing resource","title":"Conflict"},{"type":"object","required":["message","entitlement_id","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"entitlement_id":{"type":"string"},"device_id":{"type":"string"},"user_id":{"type":"string"},"existing_grant_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/EntitlementAlreadyGrantedError"]}},"additionalProperties":false,"title":"Entitlement Already Granted"}]}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Grants an entitlement to a user/device. Requires entitlements:write scope.","summary":"Create Grant","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["device_id"],"properties":{"user_id":{"type":"string","description":"User ID to grant the entitlement to"},"device_id":{"type":"string","description":"Device ID to grant the entitlement to","title":"minLength(1)","minLength":1},"expires_at":{"type":"string","description":"ISO 8601 timestamp of when the grant should expire. Omit for permanent grants"},"reason":{"type":"string","description":"Reason for granting the entitlement"}},"additionalProperties":false}}},"required":true}}},"/v2/entitlements/{id}/grants/{grant_id}":{"delete":{"tags":["Entitlements V2"],"operationId":"entitlementsv2.revokeGrant","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Entitlement ID"},"required":true,"description":"Entitlement ID"},{"name":"grant_id","in":"path","schema":{"type":"string","description":"Grant ID"},"required":true,"description":"Grant ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","deleted"],"properties":{"id":{"type":"string","description":"ID of the revoked grant"},"object":{"type":"string","enum":["entitlement_grant"],"description":"Object type, always `entitlement_grant`"},"deleted":{"type":"boolean","enum":[true],"description":"Always true for deletion responses"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"},{"type":"object","required":["message","grant_id","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"grant_id":{"type":"string"},"revoked_at":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/GrantAlreadyRevokedError"]}},"additionalProperties":false,"title":"Grant Already Revoked"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Revokes a manual grant. Requires entitlements:write scope.","summary":"Revoke Grant"}},"/v2/grants":{"get":{"tags":["Grants V2"],"operationId":"grantsv2.listGrantsByDevice","parameters":[{"name":"limit","in":"query","schema":{"allOf":[{"$ref":"#/components/schemas/NumberFromString"}],"description":"Maximum number of items to return (1-100, default: 10)"},"required":false,"description":"Maximum number of items to return (1-100, default: 10)"},{"name":"starting_after","in":"query","schema":{"type":"string","description":"a string to be decoded into a number"},"required":false,"description":"a string to be decoded into a number"},{"name":"ending_before","in":"query","schema":{"type":"string","description":"a string to be decoded into a number"},"required":false,"description":"a string to be decoded into a number"},{"name":"project_id","in":"query","schema":{"type":"string","description":"Project ID (required)"},"required":true,"description":"Project ID (required)"},{"name":"device_id","in":"query","schema":{"type":"string"},"required":false},{"name":"user_id","in":"query","schema":{"type":"string"},"required":false},{"name":"include_expired","in":"query","schema":{"allOf":[{"$ref":"#/components/schemas/BooleanFromString"}],"description":"Include expired grants (default: false)"},"required":false,"description":"Include expired grants (default: false)"},{"name":"include_revoked","in":"query","schema":{"allOf":[{"$ref":"#/components/schemas/BooleanFromString"}],"description":"Include revoked grants (default: false)"},"required":false,"description":"Include revoked grants (default: false)"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","url","has_more","data"],"properties":{"object":{"type":"string","enum":["list"],"description":"Object type, always `list`"},"url":{"type":"string","enum":["/v2/grants"],"description":"API endpoint URL for this list"},"has_more":{"type":"boolean","description":"Whether there are more results available beyond this page"},"data":{"type":"array","items":{"type":"object","required":["id","object","entitlement","entitlement_identifier","user_id","device_id","expires_at","reason","granted_by","granted_at","status"],"properties":{"id":{"type":"string","description":"Unique identifier for the grant"},"object":{"type":"string","enum":["entitlement_grant"],"description":"Object type, always `entitlement_grant`"},"entitlement":{"type":"string","description":"ID of the entitlement being granted"},"entitlement_identifier":{"type":"string","description":"Identifier string of the entitlement being granted"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID the grant applies to, or null"},"device_id":{"type":"string","description":"Device ID the grant applies to"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 timestamp of when the grant expires, or null for permanent grants"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Reason for the grant, or null"},"granted_by":{"type":"string","description":"Identifier of who granted this entitlement"},"granted_at":{"type":"string","description":"ISO 8601 timestamp of when the grant was created"},"status":{"anyOf":[{"type":"string","enum":["active"],"description":"Grant is currently active"},{"type":"string","enum":["expired"],"description":"Grant has expired"},{"type":"string","enum":["revoked"],"description":"Grant has been revoked"}],"description":"Current status of the grant"}},"additionalProperties":false},"description":"List of results"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns a list of manual grants for the specified device/user. Requires entitlements:read scope.","summary":"List Grants by Device"}},"/v2/projects/{project_id}/webhook_endpoints":{"get":{"tags":["Webhooks V2"],"operationId":"webhooksv2.listWebhookEndpoints","parameters":[{"name":"project_id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"limit","in":"query","schema":{"type":"string","description":"Maximum number of items to return (1-100, default: 20)","title":"between(1, 100)"},"required":false,"description":"Maximum number of items to return (1-100, default: 20)"},{"name":"iterator","in":"query","schema":{"type":"string"},"required":false},{"name":"format","in":"query","schema":{"type":"string","enum":["superwall","superwall_v2"],"description":"Which webhook delivery application this endpoint belongs to. `superwall_v2` receives typed Superwall V2 payloads. Defaults to `superwall`."},"required":false,"description":"Which webhook delivery application this endpoint belongs to. `superwall_v2` receives typed Superwall V2 payloads. Defaults to `superwall`."}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","data","has_more","can_write"],"properties":{"object":{"type":"string","enum":["list"],"description":"Object type, always `list`"},"data":{"type":"array","items":{"type":"object","required":["id","object","url","description","version","disabled","filter_types","channels","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the webhook endpoint"},"object":{"type":"string","enum":["webhook_endpoint"],"description":"Object type, always `webhook_endpoint`"},"url":{"type":"string","description":"The URL where webhook events are sent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Description of the webhook endpoint"},"version":{"type":"number","description":"Webhook endpoint version"},"disabled":{"type":"boolean","description":"Whether the webhook endpoint is disabled"},"filter_types":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"List of event types being filtered, or null for all events"},"channels":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Webhook channels"},"headers":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string"},"description":"Deprecated compatibility field. Stored header values are never returned; use `header_names` instead."},"secret":{"type":"string","description":"Deprecated compatibility field. Omitted from ordinary endpoint responses; signing secrets are returned only on creation or rotation."},"header_names":{"type":"array","items":{"type":"string"},"description":"Names of configured custom headers. Header values are never returned"},"integration_id":{"type":"string","description":"Safe integration identifier derived from the managed integration header. Other header values are never returned"},"format":{"type":"string","enum":["superwall","superwall_v2"],"description":"Which webhook delivery format this endpoint belongs to (`superwall` or `superwall_v2`)"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the endpoint was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the endpoint was last updated"}},"additionalProperties":false},"description":"List of webhook endpoints"},"has_more":{"type":"boolean","description":"Whether there are more results available"},"iterator":{"type":"string","description":"Cursor for forward pagination"},"prev_iterator":{"type":"string","description":"Cursor for backward pagination"},"can_write":{"type":"boolean","description":"Whether the current actor may mutate webhook endpoints in this project"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"502":{"description":"The upstream webhook provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/WebhookProviderError"]}},"additionalProperties":false,"description":"The upstream webhook provider request failed","title":"Webhook Provider Error"}}}}},"description":"Returns a list of webhook endpoints for the project. Supports pagination. Requires webhooks:read scope.","summary":"List Webhook Endpoints"},"post":{"tags":["Webhooks V2"],"operationId":"webhooksv2.createWebhookEndpoint","parameters":[{"name":"project_id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"format","in":"query","schema":{"type":"string","enum":["superwall","superwall_v2"],"description":"Which webhook delivery application this endpoint belongs to. `superwall_v2` receives typed Superwall V2 payloads. Defaults to `superwall`."},"required":false,"description":"Which webhook delivery application this endpoint belongs to. `superwall_v2` receives typed Superwall V2 payloads. Defaults to `superwall`."}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","url","description","version","disabled","filter_types","channels","secret","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the webhook endpoint"},"object":{"type":"string","enum":["webhook_endpoint"],"description":"Object type, always `webhook_endpoint`"},"url":{"type":"string","description":"The URL where webhook events are sent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Description of the webhook endpoint"},"version":{"type":"number","description":"Webhook endpoint version"},"disabled":{"type":"boolean","description":"Whether the webhook endpoint is disabled"},"filter_types":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"List of event types being filtered, or null for all events"},"channels":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Webhook channels"},"headers":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string"},"description":"Deprecated compatibility field. Stored header values are never returned; use `header_names` instead."},"secret":{"type":"string","description":"Webhook signing secret. Returned exactly once when the endpoint is created"},"header_names":{"type":"array","items":{"type":"string"},"description":"Names of configured custom headers. Header values are never returned"},"integration_id":{"type":"string","description":"Safe integration identifier derived from the managed integration header. Other header values are never returned"},"format":{"type":"string","enum":["superwall","superwall_v2"],"description":"Which webhook delivery format this endpoint belongs to (`superwall` or `superwall_v2`)"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the endpoint was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the endpoint was last updated"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"502":{"description":"The upstream webhook provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/WebhookProviderError"]}},"additionalProperties":false,"description":"The upstream webhook provider request failed","title":"Webhook Provider Error"}}}}},"description":"Creates a new webhook endpoint for the project. Requires webhooks:write scope.","summary":"Create Webhook Endpoint","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"The URL where webhook events will be sent","title":"nonEmptyString","minLength":1},"description":{"type":"string","description":"Description of the webhook endpoint"},"filter_types":{"type":"array","items":{"type":"string"},"description":"List of event types to filter. If omitted, all events are sent"},"headers":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string"},"description":"Custom headers to include with webhook requests"},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500},"description":"Arbitrary key-value metadata"}},"additionalProperties":false}}},"required":true}}},"/v2/projects/{project_id}/webhook_endpoints/{endpoint_id}":{"get":{"tags":["Webhooks V2"],"operationId":"webhooksv2.retrieveWebhookEndpoint","parameters":[{"name":"project_id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"endpoint_id","in":"path","schema":{"type":"string","description":"Webhook endpoint ID"},"required":true,"description":"Webhook endpoint ID"},{"name":"format","in":"query","schema":{"type":"string","enum":["superwall","superwall_v2"],"description":"Which webhook delivery application this endpoint belongs to. `superwall_v2` receives typed Superwall V2 payloads. Defaults to `superwall`."},"required":false,"description":"Which webhook delivery application this endpoint belongs to. `superwall_v2` receives typed Superwall V2 payloads. Defaults to `superwall`."}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","url","description","version","disabled","filter_types","channels","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the webhook endpoint"},"object":{"type":"string","enum":["webhook_endpoint"],"description":"Object type, always `webhook_endpoint`"},"url":{"type":"string","description":"The URL where webhook events are sent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Description of the webhook endpoint"},"version":{"type":"number","description":"Webhook endpoint version"},"disabled":{"type":"boolean","description":"Whether the webhook endpoint is disabled"},"filter_types":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"List of event types being filtered, or null for all events"},"channels":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Webhook channels"},"headers":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string"},"description":"Deprecated compatibility field. Stored header values are never returned; use `header_names` instead."},"secret":{"type":"string","description":"Deprecated compatibility field. Omitted from ordinary endpoint responses; signing secrets are returned only on creation or rotation."},"header_names":{"type":"array","items":{"type":"string"},"description":"Names of configured custom headers. Header values are never returned"},"integration_id":{"type":"string","description":"Safe integration identifier derived from the managed integration header. Other header values are never returned"},"format":{"type":"string","enum":["superwall","superwall_v2"],"description":"Which webhook delivery format this endpoint belongs to (`superwall` or `superwall_v2`)"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the endpoint was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the endpoint was last updated"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"502":{"description":"The upstream webhook provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/WebhookProviderError"]}},"additionalProperties":false,"description":"The upstream webhook provider request failed","title":"Webhook Provider Error"}}}}},"description":"Retrieves a webhook endpoint by ID. Requires webhooks:read scope.","summary":"Retrieve Webhook Endpoint"},"patch":{"tags":["Webhooks V2"],"operationId":"webhooksv2.updateWebhookEndpoint","parameters":[{"name":"project_id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"endpoint_id","in":"path","schema":{"type":"string","description":"Webhook endpoint ID"},"required":true,"description":"Webhook endpoint ID"},{"name":"format","in":"query","schema":{"type":"string","enum":["superwall","superwall_v2"],"description":"Which webhook delivery application this endpoint belongs to. `superwall_v2` receives typed Superwall V2 payloads. Defaults to `superwall`."},"required":false,"description":"Which webhook delivery application this endpoint belongs to. `superwall_v2` receives typed Superwall V2 payloads. Defaults to `superwall`."}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","url","description","version","disabled","filter_types","channels","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the webhook endpoint"},"object":{"type":"string","enum":["webhook_endpoint"],"description":"Object type, always `webhook_endpoint`"},"url":{"type":"string","description":"The URL where webhook events are sent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Description of the webhook endpoint"},"version":{"type":"number","description":"Webhook endpoint version"},"disabled":{"type":"boolean","description":"Whether the webhook endpoint is disabled"},"filter_types":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"List of event types being filtered, or null for all events"},"channels":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Webhook channels"},"headers":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string"},"description":"Deprecated compatibility field. Stored header values are never returned; use `header_names` instead."},"secret":{"type":"string","description":"Deprecated compatibility field. Omitted from ordinary endpoint responses; signing secrets are returned only on creation or rotation."},"header_names":{"type":"array","items":{"type":"string"},"description":"Names of configured custom headers. Header values are never returned"},"integration_id":{"type":"string","description":"Safe integration identifier derived from the managed integration header. Other header values are never returned"},"format":{"type":"string","enum":["superwall","superwall_v2"],"description":"Which webhook delivery format this endpoint belongs to (`superwall` or `superwall_v2`)"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the endpoint was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the endpoint was last updated"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"502":{"description":"The upstream webhook provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/WebhookProviderError"]}},"additionalProperties":false,"description":"The upstream webhook provider request failed","title":"Webhook Provider Error"}}}}},"description":"Updates a webhook endpoint's URL, description, or other settings. Requires webhooks:write scope.","summary":"Update Webhook Endpoint","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"url":{"type":"string","description":"The URL where webhook events will be sent"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Description of the webhook endpoint"},"filter_types":{"type":"array","items":{"type":"string"},"description":"List of event types to filter"},"disabled":{"type":"boolean","description":"Whether the webhook endpoint is disabled"},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 500 character(s) long","title":"maxLength(500)","maxLength":500},"description":"Arbitrary key-value metadata"},"headers":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string"},"description":"Custom headers to include with webhook requests"}},"additionalProperties":false}}},"required":true}},"delete":{"tags":["Webhooks V2"],"operationId":"webhooksv2.deleteWebhookEndpoint","parameters":[{"name":"project_id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"endpoint_id","in":"path","schema":{"type":"string","description":"Webhook endpoint ID"},"required":true,"description":"Webhook endpoint ID"},{"name":"format","in":"query","schema":{"type":"string","enum":["superwall","superwall_v2"],"description":"Which webhook delivery application this endpoint belongs to. `superwall_v2` receives typed Superwall V2 payloads. Defaults to `superwall`."},"required":false,"description":"Which webhook delivery application this endpoint belongs to. `superwall_v2` receives typed Superwall V2 payloads. Defaults to `superwall`."}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","deleted"],"properties":{"id":{"type":"string","description":"ID of the deleted webhook endpoint"},"object":{"type":"string","enum":["webhook_endpoint"],"description":"Object type, always `webhook_endpoint`"},"deleted":{"type":"boolean","enum":[true],"description":"Always true for deletion responses"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"502":{"description":"The upstream webhook provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/WebhookProviderError"]}},"additionalProperties":false,"description":"The upstream webhook provider request failed","title":"Webhook Provider Error"}}}}},"description":"Deletes a webhook endpoint. Requires webhooks:write scope.","summary":"Delete Webhook Endpoint"}},"/v2/projects/{project_id}/webhook_endpoints/{endpoint_id}/rotate_secret":{"post":{"tags":["Webhooks V2"],"operationId":"webhooksv2.rotateWebhookSecret","parameters":[{"name":"project_id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"endpoint_id","in":"path","schema":{"type":"string","description":"Webhook endpoint ID"},"required":true,"description":"Webhook endpoint ID"},{"name":"format","in":"query","schema":{"type":"string","enum":["superwall","superwall_v2"],"description":"Which webhook delivery application this endpoint belongs to. `superwall_v2` receives typed Superwall V2 payloads. Defaults to `superwall`."},"required":false,"description":"Which webhook delivery application this endpoint belongs to. `superwall_v2` receives typed Superwall V2 payloads. Defaults to `superwall`."}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","id","secret"],"properties":{"object":{"type":"string","enum":["webhook_endpoint"],"description":"Object type, always `webhook_endpoint`"},"id":{"type":"string","description":"ID of the webhook endpoint"},"secret":{"type":"string","description":"The new webhook signing secret"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"502":{"description":"The upstream webhook provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/WebhookProviderError"]}},"additionalProperties":false,"description":"The upstream webhook provider request failed","title":"Webhook Provider Error"}}}}},"description":"Rotates the signing secret for a webhook endpoint. The new secret will be used immediately. Requires webhooks:write scope.","summary":"Rotate Webhook Secret"}},"/v2/projects/{project_id}/webhook_endpoints/{endpoint_id}/attempts":{"get":{"tags":["Webhooks V2"],"operationId":"webhooksv2.listWebhookEndpointAttempts","parameters":[{"name":"project_id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"endpoint_id","in":"path","schema":{"type":"string","description":"Webhook endpoint ID"},"required":true,"description":"Webhook endpoint ID"},{"name":"limit","in":"query","schema":{"type":"string","description":"a number between 1 and 100","title":"between(1, 100)"},"required":false,"description":"a number between 1 and 100"},{"name":"iterator","in":"query","schema":{"type":"string"},"required":false},{"name":"status","in":"query","schema":{"$ref":"#/components/schemas/NumberFromString"},"required":false},{"name":"status_code_class","in":"query","schema":{"type":"string","description":"a string to be decoded into a number"},"required":false,"description":"a string to be decoded into a number"},{"name":"before","in":"query","schema":{"$ref":"#/components/schemas/DateFromString"},"required":false},{"name":"after","in":"query","schema":{"$ref":"#/components/schemas/DateFromString"},"required":false},{"name":"format","in":"query","schema":{"type":"string","enum":["superwall","superwall_v2"],"description":"Which webhook delivery application this endpoint belongs to. `superwall_v2` receives typed Superwall V2 payloads. Defaults to `superwall`."},"required":false,"description":"Which webhook delivery application this endpoint belongs to. `superwall_v2` receives typed Superwall V2 payloads. Defaults to `superwall`."}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","data","has_more"],"properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object","required":["id","object","endpoint_id","event_id","status","response","response_status_code","response_duration_ms","timestamp","trigger_type","url"],"properties":{"id":{"type":"string"},"object":{"type":"string","enum":["webhook_attempt"]},"endpoint_id":{"type":"string"},"event_id":{"type":"string"},"status":{"type":"number"},"response":{"type":"string"},"response_status_code":{"type":"number"},"response_duration_ms":{"type":"number"},"timestamp":{"type":"string"},"trigger_type":{"type":"number"},"url":{"type":"string"}},"additionalProperties":false}},"has_more":{"type":"boolean"},"iterator":{"type":"string"},"prev_iterator":{"type":"string"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"502":{"description":"The upstream webhook provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/WebhookProviderError"]}},"additionalProperties":false,"description":"The upstream webhook provider request failed","title":"Webhook Provider Error"}}}}},"description":"Returns delivery attempts from the endpoint's selected isolated delivery environment. Requires webhooks:read scope.","summary":"List Webhook Endpoint Delivery Attempts"}},"/v2/projects/{project_id}/webhook_endpoints/{endpoint_id}/stats":{"get":{"tags":["Webhooks V2"],"operationId":"webhooksv2.getWebhookEndpointStats","parameters":[{"name":"project_id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"endpoint_id","in":"path","schema":{"type":"string","description":"Webhook endpoint ID"},"required":true,"description":"Webhook endpoint ID"},{"name":"since","in":"query","schema":{"$ref":"#/components/schemas/DateFromString"},"required":false},{"name":"until","in":"query","schema":{"$ref":"#/components/schemas/DateFromString"},"required":false},{"name":"format","in":"query","schema":{"type":"string","enum":["superwall","superwall_v2"],"description":"Which webhook delivery application this endpoint belongs to. `superwall_v2` receives typed Superwall V2 payloads. Defaults to `superwall`."},"required":false,"description":"Which webhook delivery application this endpoint belongs to. `superwall_v2` receives typed Superwall V2 payloads. Defaults to `superwall`."}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","endpoint_id","success","fail","pending","sending"],"properties":{"object":{"type":"string","enum":["webhook_endpoint_stats"]},"endpoint_id":{"type":"string"},"success":{"type":"number"},"fail":{"type":"number"},"pending":{"type":"number"},"sending":{"type":"number"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"502":{"description":"The upstream webhook provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/WebhookProviderError"]}},"additionalProperties":false,"description":"The upstream webhook provider request failed","title":"Webhook Provider Error"}}}}},"description":"Returns delivery statistics from the endpoint's selected isolated delivery environment. Requires webhooks:read scope.","summary":"Get Webhook Endpoint Delivery Statistics"}},"/v2/projects/{project_id}/integrations/{integration_id}/config":{"get":{"tags":["Webhooks V2"],"operationId":"webhooksv2.getIntegrationConfig","parameters":[{"name":"project_id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"integration_id","in":"path","schema":{"type":"string","description":"Integration id as served by integration-router (e.g. 'mixpanel')"},"required":true,"description":"Integration id as served by integration-router (e.g. 'mixpanel')"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["credentials","event_names","configured","event_names_available","endpoint_id","disabled"],"properties":{"credentials":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string"}},"event_names":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 255 character(s) long","title":"maxLength(255)","minLength":1,"maxLength":255}},"configured":{"type":"boolean"},"event_names_available":{"type":"boolean"},"endpoint_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"disabled":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"502":{"description":"The upstream webhook provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/WebhookProviderError"]}},"additionalProperties":false,"description":"The upstream webhook provider request failed","title":"Webhook Provider Error"}}}}},"description":"Returns an integration's credentials (Svix endpoint headers) together with its custom event names, which are stored separately because a nested map cannot travel as a header. Requires applications:read scope.","summary":"Get Integration Config"},"put":{"tags":["Webhooks V2"],"operationId":"webhooksv2.saveIntegrationConfig","parameters":[{"name":"project_id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"integration_id","in":"path","schema":{"type":"string","description":"Integration id as served by integration-router (e.g. 'mixpanel')"},"required":true,"description":"Integration id as served by integration-router (e.g. 'mixpanel')"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["endpoint_id","event_names_saved"],"properties":{"endpoint_id":{"type":"string"},"event_names_saved":{"type":"number"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"502":{"description":"The upstream webhook provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/WebhookProviderError"]}},"additionalProperties":false,"description":"The upstream webhook provider request failed","title":"Webhook Provider Error"}}}}},"description":"Validates custom event names against the destination's rules, then upserts both the Svix endpoint headers and the event name mappings. One call per user action so the dashboard never has to sequence the two stores. Requires applications:write scope.","summary":"Save Integration Config","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["credentials"],"properties":{"credentials":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string"}},"description":{"type":"string"},"filter_types":{"type":"array","items":{"type":"string"}},"event_names":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string","description":"a string at most 255 character(s) long","title":"maxLength(255)","minLength":1,"maxLength":255}}},"additionalProperties":false}}},"required":true}},"delete":{"tags":["Webhooks V2"],"operationId":"webhooksv2.disconnectIntegration","parameters":[{"name":"project_id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"integration_id","in":"path","schema":{"type":"string","description":"Integration id as served by integration-router (e.g. 'mixpanel')"},"required":true,"description":"Integration id as served by integration-router (e.g. 'mixpanel')"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["disconnected","event_names_cleared"],"properties":{"disconnected":{"type":"boolean"},"event_names_cleared":{"type":"number"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"502":{"description":"The upstream webhook provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/WebhookProviderError"]}},"additionalProperties":false,"description":"The upstream webhook provider request failed","title":"Webhook Provider Error"}}}}},"description":"Removes an integration's webhook endpoint and its custom event names together, so a later reconnect does not silently inherit renames the customer can no longer see. Requires applications:write scope.","summary":"Disconnect Integration"}},"/revenuecat/projects/{project_id}/customers/{customer_id}":{"get":{"tags":["RevenueCat V2 (compatible)"],"operationId":"revenuecatv2.getCustomer","parameters":[{"name":"project_id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"customer_id","in":"path","schema":{"type":"string","description":"Customer ID (the app user id)"},"required":true,"description":"Customer ID (the app user id)"},{"name":"expand","in":"query","schema":{"type":"string","enum":["attributes"],"description":"Set to `attributes` to include the customer's attributes in the response"},"required":false,"description":"Set to `attributes` to include the customer's attributes in the response"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","id","project_id","first_seen_at","last_seen_at","last_seen_app_version","last_seen_country","last_seen_platform","last_seen_platform_version","active_entitlements","experiment"],"properties":{"object":{"type":"string","enum":["customer"]},"id":{"type":"string"},"project_id":{"type":"string"},"first_seen_at":{"type":"number"},"last_seen_at":{"type":"number"},"last_seen_app_version":{"type":"null"},"last_seen_country":{"type":"null"},"last_seen_platform":{"type":"null"},"last_seen_platform_version":{"type":"null"},"active_entitlements":{"type":"object","required":["object","items","next_page","url"],"properties":{"object":{"type":"string","enum":["list"]},"items":{"type":"array","items":{"type":"object","required":["object","entitlement_id","expires_at"],"properties":{"object":{"type":"string","enum":["customer.active_entitlement"]},"entitlement_id":{"type":"string"},"expires_at":{"anyOf":[{"type":"number"},{"type":"null"}]}},"additionalProperties":false}},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}]},"url":{"type":"string"}},"additionalProperties":false},"experiment":{"type":"null"},"attributes":{"type":"object","required":["object","items","next_page","url"],"properties":{"object":{"type":"string","enum":["list"]},"items":{"type":"array","items":{"type":"object","required":["object","name","value","updated_at"],"properties":{"object":{"type":"string","enum":["customer.attribute"]},"name":{"type":"string"},"value":{"anyOf":[{"type":"string"},{"type":"null"}]},"updated_at":{"anyOf":[{"type":"number"},{"type":"null"}]}},"additionalProperties":false}},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}]},"url":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission for this action (RevenueCat-compatible)","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"object":{"type":"string","enum":["error"]},"type":{"type":"string","enum":["authorization_error"]},"message":{"type":"string"},"retryable":{"type":"boolean"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RcAuthorization"]}},"additionalProperties":false,"description":"The API key does not have permission for this action (RevenueCat-compatible)","title":"Authorization Error"}}}},"404":{"description":"The requested resource was not found (RevenueCat-compatible error shape)","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"object":{"type":"string","enum":["error"]},"type":{"type":"string","enum":["resource_missing"]},"message":{"type":"string"},"retryable":{"type":"boolean"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RcResourceMissing"]}},"additionalProperties":false,"description":"The requested resource was not found (RevenueCat-compatible error shape)","title":"Resource Missing"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected server error occurred (RevenueCat-compatible error shape)","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"object":{"type":"string","enum":["error"]},"type":{"type":"string","enum":["server_error"]},"message":{"type":"string"},"retryable":{"type":"boolean"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RcServer"]}},"additionalProperties":false,"description":"An unexpected server error occurred (RevenueCat-compatible error shape)","title":"Server Error"}}}},"502":{"description":"The upstream subscriptions service failed (RevenueCat-compatible error shape)","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"object":{"type":"string","enum":["error"]},"type":{"type":"string","enum":["server_error"]},"message":{"type":"string"},"retryable":{"type":"boolean"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RcUpstream"]}},"additionalProperties":false,"description":"The upstream subscriptions service failed (RevenueCat-compatible error shape)","title":"Upstream Service Error"}}}}},"description":"Returns the customer (RevenueCat v2 customer object) with their active entitlements. Pass `expand=attributes` to include attributes. Requires customers:read scope.","summary":"Get Customer"}},"/revenuecat/projects/{project_id}/customers/{customer_id}/subscriptions":{"get":{"tags":["RevenueCat V2 (compatible)"],"operationId":"revenuecatv2.listCustomerSubscriptions","parameters":[{"name":"project_id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"customer_id","in":"path","schema":{"type":"string","description":"Customer ID (the app user id)"},"required":true,"description":"Customer ID (the app user id)"},{"name":"limit","in":"query","schema":{"type":"string","description":"Maximum number of items to return (1-100, default 20)","title":"between(1, 100)"},"required":false,"description":"Maximum number of items to return (1-100, default 20)"},{"name":"starting_after","in":"query","schema":{"type":"string"},"required":false}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","items","next_page","url"],"properties":{"object":{"type":"string","enum":["list"]},"items":{"type":"array","items":{"type":"object","required":["object","id","customer_id","original_customer_id","product_id","starts_at","current_period_starts_at","current_period_ends_at","ends_at","gives_access","pending_payment","auto_renewal_status","status","total_revenue_in_usd","presented_offering_id","entitlements","environment","store","store_subscription_identifier","ownership","pending_changes","country","management_url"],"properties":{"object":{"type":"string","enum":["subscription"]},"id":{"type":"string"},"customer_id":{"type":"string"},"original_customer_id":{"type":"string"},"product_id":{"type":"string"},"starts_at":{"type":"number"},"current_period_starts_at":{"type":"number"},"current_period_ends_at":{"anyOf":[{"type":"number"},{"type":"null"}]},"ends_at":{"anyOf":[{"type":"number"},{"type":"null"}]},"gives_access":{"type":"boolean"},"pending_payment":{"type":"boolean"},"auto_renewal_status":{"type":"string","enum":["will_renew","will_not_renew"]},"status":{"type":"string","enum":["trialing","active","expired","in_grace_period","in_billing_retry"]},"total_revenue_in_usd":{"type":"null"},"presented_offering_id":{"type":"null"},"entitlements":{"type":"object","required":["object","items","next_page","url"],"properties":{"object":{"type":"string","enum":["list"]},"items":{"type":"array","items":{"type":"object","required":["object","project_id","id","lookup_key","display_name","created_at"],"properties":{"object":{"type":"string","enum":["entitlement"]},"project_id":{"type":"string"},"id":{"type":"string"},"lookup_key":{"type":"string"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}]},"created_at":{"anyOf":[{"type":"number"},{"type":"null"}]}},"additionalProperties":false}},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}]},"url":{"type":"string"}},"additionalProperties":false},"environment":{"type":"string","enum":["production","sandbox"]},"store":{"type":"string","enum":["app_store","play_store","stripe","superwall_mock"]},"store_subscription_identifier":{"type":"string"},"ownership":{"type":"string","enum":["purchased"]},"pending_changes":{"type":"null"},"country":{"type":"null"},"management_url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false}},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}]},"url":{"type":"string"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission for this action (RevenueCat-compatible)","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"object":{"type":"string","enum":["error"]},"type":{"type":"string","enum":["authorization_error"]},"message":{"type":"string"},"retryable":{"type":"boolean"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RcAuthorization"]}},"additionalProperties":false,"description":"The API key does not have permission for this action (RevenueCat-compatible)","title":"Authorization Error"}}}},"404":{"description":"The requested resource was not found (RevenueCat-compatible error shape)","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"object":{"type":"string","enum":["error"]},"type":{"type":"string","enum":["resource_missing"]},"message":{"type":"string"},"retryable":{"type":"boolean"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RcResourceMissing"]}},"additionalProperties":false,"description":"The requested resource was not found (RevenueCat-compatible error shape)","title":"Resource Missing"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected server error occurred (RevenueCat-compatible error shape)","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"object":{"type":"string","enum":["error"]},"type":{"type":"string","enum":["server_error"]},"message":{"type":"string"},"retryable":{"type":"boolean"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RcServer"]}},"additionalProperties":false,"description":"An unexpected server error occurred (RevenueCat-compatible error shape)","title":"Server Error"}}}},"502":{"description":"The upstream subscriptions service failed (RevenueCat-compatible error shape)","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"object":{"type":"string","enum":["error"]},"type":{"type":"string","enum":["server_error"]},"message":{"type":"string"},"retryable":{"type":"boolean"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RcUpstream"]}},"additionalProperties":false,"description":"The upstream subscriptions service failed (RevenueCat-compatible error shape)","title":"Upstream Service Error"}}}}},"description":"Lists the customer's subscriptions (RevenueCat v2 subscription objects) with current, clock-correct status, alias-aware across the customer's identity group. Requires customers:read scope.","summary":"List Customer Subscriptions"}},"/revenuecat/projects/{project_id}/customers/{customer_id}/active_entitlements":{"get":{"tags":["RevenueCat V2 (compatible)"],"operationId":"revenuecatv2.listCustomerActiveEntitlements","parameters":[{"name":"project_id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"customer_id","in":"path","schema":{"type":"string","description":"Customer ID (the app user id)"},"required":true,"description":"Customer ID (the app user id)"},{"name":"limit","in":"query","schema":{"type":"string","description":"Maximum number of items to return (1-100, default 20)","title":"between(1, 100)"},"required":false,"description":"Maximum number of items to return (1-100, default 20)"},{"name":"starting_after","in":"query","schema":{"type":"string"},"required":false}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","items","next_page","url"],"properties":{"object":{"type":"string","enum":["list"]},"items":{"type":"array","items":{"type":"object","required":["object","entitlement_id","expires_at"],"properties":{"object":{"type":"string","enum":["customer.active_entitlement"]},"entitlement_id":{"type":"string"},"expires_at":{"anyOf":[{"type":"number"},{"type":"null"}]}},"additionalProperties":false}},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}]},"url":{"type":"string"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission for this action (RevenueCat-compatible)","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"object":{"type":"string","enum":["error"]},"type":{"type":"string","enum":["authorization_error"]},"message":{"type":"string"},"retryable":{"type":"boolean"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RcAuthorization"]}},"additionalProperties":false,"description":"The API key does not have permission for this action (RevenueCat-compatible)","title":"Authorization Error"}}}},"404":{"description":"The requested resource was not found (RevenueCat-compatible error shape)","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"object":{"type":"string","enum":["error"]},"type":{"type":"string","enum":["resource_missing"]},"message":{"type":"string"},"retryable":{"type":"boolean"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RcResourceMissing"]}},"additionalProperties":false,"description":"The requested resource was not found (RevenueCat-compatible error shape)","title":"Resource Missing"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected server error occurred (RevenueCat-compatible error shape)","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"object":{"type":"string","enum":["error"]},"type":{"type":"string","enum":["server_error"]},"message":{"type":"string"},"retryable":{"type":"boolean"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RcServer"]}},"additionalProperties":false,"description":"An unexpected server error occurred (RevenueCat-compatible error shape)","title":"Server Error"}}}},"502":{"description":"The upstream subscriptions service failed (RevenueCat-compatible error shape)","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"object":{"type":"string","enum":["error"]},"type":{"type":"string","enum":["server_error"]},"message":{"type":"string"},"retryable":{"type":"boolean"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RcUpstream"]}},"additionalProperties":false,"description":"The upstream subscriptions service failed (RevenueCat-compatible error shape)","title":"Upstream Service Error"}}}}},"description":"Lists the entitlements the customer currently has access to, from active subscriptions and manual grants. Requires customers:read scope.","summary":"List Customer Active Entitlements"}},"/revenuecat/projects/{project_id}/customers/{customer_id}/aliases":{"get":{"tags":["RevenueCat V2 (compatible)"],"operationId":"revenuecatv2.listCustomerAliases","parameters":[{"name":"project_id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"customer_id","in":"path","schema":{"type":"string","description":"Customer ID (the app user id)"},"required":true,"description":"Customer ID (the app user id)"},{"name":"limit","in":"query","schema":{"type":"string","description":"Maximum number of items to return (1-100, default 20)","title":"between(1, 100)"},"required":false,"description":"Maximum number of items to return (1-100, default 20)"},{"name":"starting_after","in":"query","schema":{"type":"string"},"required":false}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","items","next_page","url"],"properties":{"object":{"type":"string","enum":["list"]},"items":{"type":"array","items":{"type":"object","required":["object","id"],"properties":{"object":{"type":"string","enum":["customer.alias"]},"id":{"type":"string"}},"additionalProperties":false}},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}]},"url":{"type":"string"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission for this action (RevenueCat-compatible)","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"object":{"type":"string","enum":["error"]},"type":{"type":"string","enum":["authorization_error"]},"message":{"type":"string"},"retryable":{"type":"boolean"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RcAuthorization"]}},"additionalProperties":false,"description":"The API key does not have permission for this action (RevenueCat-compatible)","title":"Authorization Error"}}}},"404":{"description":"The requested resource was not found (RevenueCat-compatible error shape)","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"object":{"type":"string","enum":["error"]},"type":{"type":"string","enum":["resource_missing"]},"message":{"type":"string"},"retryable":{"type":"boolean"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RcResourceMissing"]}},"additionalProperties":false,"description":"The requested resource was not found (RevenueCat-compatible error shape)","title":"Resource Missing"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected server error occurred (RevenueCat-compatible error shape)","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"object":{"type":"string","enum":["error"]},"type":{"type":"string","enum":["server_error"]},"message":{"type":"string"},"retryable":{"type":"boolean"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RcServer"]}},"additionalProperties":false,"description":"An unexpected server error occurred (RevenueCat-compatible error shape)","title":"Server Error"}}}},"502":{"description":"The upstream subscriptions service failed (RevenueCat-compatible error shape)","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"object":{"type":"string","enum":["error"]},"type":{"type":"string","enum":["server_error"]},"message":{"type":"string"},"retryable":{"type":"boolean"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RcUpstream"]}},"additionalProperties":false,"description":"The upstream subscriptions service failed (RevenueCat-compatible error shape)","title":"Upstream Service Error"}}}}},"description":"Lists every identifier in the customer's identity group (the user-aliasing graph). Requires customers:read scope.","summary":"List Customer Aliases"}},"/revenuecat/v1/projects/{project_id}/subscribers/{app_user_id}":{"get":{"tags":["RevenueCat V1 (compatible)"],"operationId":"revenuecatv1.getSubscriber","parameters":[{"name":"project_id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"app_user_id","in":"path","schema":{"type":"string","description":"App user ID (the RevenueCat subscriber id)"},"required":true,"description":"App user ID (the RevenueCat subscriber id)"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["request_date","request_date_ms","subscriber"],"properties":{"request_date":{"type":"string"},"request_date_ms":{"type":"number"},"subscriber":{"type":"object","required":["original_app_user_id","original_application_version","original_purchase_date","management_url","first_seen","last_seen","entitlements","subscriptions","non_subscriptions","other_purchases","subscriber_attributes"],"properties":{"original_app_user_id":{"type":"string"},"original_application_version":{"type":"null"},"original_purchase_date":{"anyOf":[{"type":"string"},{"type":"null"}]},"management_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"first_seen":{"type":"string"},"last_seen":{"type":"string"},"entitlements":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"object","required":["expires_date","grace_period_expires_date","product_identifier","product_plan_identifier","purchase_date"],"properties":{"expires_date":{"anyOf":[{"type":"string"},{"type":"null"}]},"grace_period_expires_date":{"anyOf":[{"type":"string"},{"type":"null"}]},"product_identifier":{"type":"string"},"product_plan_identifier":{"anyOf":[{"type":"string"},{"type":"null"}]},"purchase_date":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false}},"subscriptions":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"object","required":["auto_resume_date","billing_issues_detected_at","expires_date","grace_period_expires_date","is_sandbox","original_purchase_date","ownership_type","period_type","product_plan_identifier","purchase_date","refunded_at","store","store_transaction_id","unsubscribe_detected_at"],"properties":{"auto_resume_date":{"anyOf":[{"type":"string"},{"type":"null"}]},"billing_issues_detected_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"expires_date":{"anyOf":[{"type":"string"},{"type":"null"}]},"grace_period_expires_date":{"anyOf":[{"type":"string"},{"type":"null"}]},"is_sandbox":{"type":"boolean"},"original_purchase_date":{"anyOf":[{"type":"string"},{"type":"null"}]},"ownership_type":{"type":"string","enum":["PURCHASED","FAMILY_SHARED"]},"period_type":{"type":"string","enum":["normal","trial","intro"]},"product_plan_identifier":{"anyOf":[{"type":"string"},{"type":"null"}]},"purchase_date":{"anyOf":[{"type":"string"},{"type":"null"}]},"refunded_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"store":{"type":"string"},"store_transaction_id":{"type":"string"},"unsubscribe_detected_at":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false}},"non_subscriptions":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"array","items":{"type":"object","required":["id","is_sandbox","original_purchase_date","purchase_date","store","store_transaction_id"],"properties":{"id":{"type":"string"},"is_sandbox":{"type":"boolean"},"original_purchase_date":{"anyOf":[{"type":"string"},{"type":"null"}]},"purchase_date":{"anyOf":[{"type":"string"},{"type":"null"}]},"store":{"type":"string"},"store_transaction_id":{"type":"string"}},"additionalProperties":false}}},"other_purchases":{"type":"object","required":[],"properties":{},"additionalProperties":{"$id":"/schemas/unknown","title":"unknown"}},"subscriber_attributes":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"object","required":["value","updated_at_ms"],"properties":{"value":{"type":"string"},"updated_at_ms":{"type":"number"}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission for this action (RevenueCat-compatible)","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"object":{"type":"string","enum":["error"]},"type":{"type":"string","enum":["authorization_error"]},"message":{"type":"string"},"retryable":{"type":"boolean"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RcAuthorization"]}},"additionalProperties":false,"description":"The API key does not have permission for this action (RevenueCat-compatible)","title":"Authorization Error"}}}},"404":{"description":"The requested resource was not found (RevenueCat-compatible error shape)","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"object":{"type":"string","enum":["error"]},"type":{"type":"string","enum":["resource_missing"]},"message":{"type":"string"},"retryable":{"type":"boolean"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RcResourceMissing"]}},"additionalProperties":false,"description":"The requested resource was not found (RevenueCat-compatible error shape)","title":"Resource Missing"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected server error occurred (RevenueCat-compatible error shape)","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"object":{"type":"string","enum":["error"]},"type":{"type":"string","enum":["server_error"]},"message":{"type":"string"},"retryable":{"type":"boolean"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RcServer"]}},"additionalProperties":false,"description":"An unexpected server error occurred (RevenueCat-compatible error shape)","title":"Server Error"}}}},"502":{"description":"The upstream subscriptions service failed (RevenueCat-compatible error shape)","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"object":{"type":"string","enum":["error"]},"type":{"type":"string","enum":["server_error"]},"message":{"type":"string"},"retryable":{"type":"boolean"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RcUpstream"]}},"additionalProperties":false,"description":"The upstream subscriptions service failed (RevenueCat-compatible error shape)","title":"Upstream Service Error"}}}}},"description":"Returns the subscriber (RevenueCat v1 subscriber object) with current, clock-correct entitlements and subscriptions, alias-aware across the customer's identity group. An unknown app user id returns a 200 with an empty subscriber. Requires customers:read scope.","summary":"Get Subscriber"}},"/v2/projects/{project_id}/events":{"get":{"tags":["Events V2"],"operationId":"eventsv2.listEvents","parameters":[{"name":"project_id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"limit","in":"query","schema":{"allOf":[{"$ref":"#/components/schemas/NumberFromString"}],"description":"Maximum number of items to return (default: 20)"},"required":false,"description":"Maximum number of items to return (default: 20)"},{"name":"iterator","in":"query","schema":{"type":"string"},"required":false},{"name":"channel","in":"query","schema":{"type":"string"},"required":false},{"name":"before","in":"query","schema":{"$ref":"#/components/schemas/DateFromString"},"required":false},{"name":"after","in":"query","schema":{"$ref":"#/components/schemas/DateFromString"},"required":false},{"name":"with_content","in":"query","schema":{"allOf":[{"$ref":"#/components/schemas/BooleanFromString"}],"description":"Include event payload content (default: true)"},"required":false,"description":"Include event payload content (default: true)"},{"name":"tag","in":"query","schema":{"type":"string"},"required":false},{"name":"event_types","in":"query","schema":{"type":"array","items":{"type":"string"}},"required":false}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","data","has_more"],"properties":{"object":{"type":"string","enum":["list"],"description":"Object type, always `list`"},"data":{"type":"array","items":{"type":"object","required":["id","object","event_type","event_id","channels","payload","timestamp"],"properties":{"id":{"type":"string","description":"Unique identifier for the event"},"object":{"type":"string","enum":["event"],"description":"Object type, always `event`"},"event_type":{"type":"string","description":"Type of the event"},"event_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"External event ID, or null"},"channels":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Channels the event was sent to"},"payload":{"type":"object","required":[],"properties":{},"additionalProperties":{"$ref":"#/components/schemas/@superwall~1api-schema~1v2~1JsonValue"},"description":"Event payload data"},"timestamp":{"type":"string","description":"ISO 8601 timestamp of when the event occurred"}},"additionalProperties":false},"description":"List of events"},"has_more":{"type":"boolean","description":"Whether there are more results available"},"iterator":{"type":"string","description":"Cursor for forward pagination"},"prev_iterator":{"type":"string","description":"Cursor for backward pagination"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"502":{"description":"The upstream webhook provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/WebhookProviderError"]}},"additionalProperties":false,"description":"The upstream webhook provider request failed","title":"Webhook Provider Error"}}}}},"description":"Returns a list of events (webhook messages) for the project. Supports pagination and filtering. Requires webhooks:read scope.","summary":"List Events"}},"/v2/projects/{project_id}/events/{event_id}":{"get":{"tags":["Events V2"],"operationId":"eventsv2.retrieveEvent","parameters":[{"name":"project_id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"event_id","in":"path","schema":{"type":"string","description":"Event ID"},"required":true,"description":"Event ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","event_type","event_id","channels","payload","timestamp"],"properties":{"id":{"type":"string","description":"Unique identifier for the event"},"object":{"type":"string","enum":["event"],"description":"Object type, always `event`"},"event_type":{"type":"string","description":"Type of the event"},"event_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"External event ID, or null"},"channels":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Channels the event was sent to"},"payload":{"type":"object","required":[],"properties":{},"additionalProperties":{"$ref":"#/components/schemas/@superwall~1api-schema~1v2~1JsonValue"},"description":"Event payload data"},"timestamp":{"type":"string","description":"ISO 8601 timestamp of when the event occurred"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"502":{"description":"The upstream webhook provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/WebhookProviderError"]}},"additionalProperties":false,"description":"The upstream webhook provider request failed","title":"Webhook Provider Error"}}}}},"description":"Retrieves an event by ID. Requires webhooks:read scope.","summary":"Retrieve Event"}},"/v2/projects/{project_id}/events/{event_id}/attempts":{"get":{"tags":["Events V2"],"operationId":"eventsv2.listEventAttempts","parameters":[{"name":"project_id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"event_id","in":"path","schema":{"type":"string","description":"Event ID"},"required":true,"description":"Event ID"},{"name":"limit","in":"query","schema":{"allOf":[{"$ref":"#/components/schemas/NumberFromString"}],"description":"Maximum number of items to return (default: 20)"},"required":false,"description":"Maximum number of items to return (default: 20)"},{"name":"iterator","in":"query","schema":{"type":"string"},"required":false},{"name":"status","in":"query","schema":{"$ref":"#/components/schemas/NumberFromString"},"required":false},{"name":"status_code_class","in":"query","schema":{"$ref":"#/components/schemas/NumberFromString"},"required":false},{"name":"before","in":"query","schema":{"$ref":"#/components/schemas/DateFromString"},"required":false},{"name":"after","in":"query","schema":{"$ref":"#/components/schemas/DateFromString"},"required":false}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","data","has_more"],"properties":{"object":{"type":"string","enum":["list"],"description":"Object type, always `list`"},"data":{"type":"array","items":{"type":"object","required":["id","object","endpoint_id","event_id","status","response","response_status_code","response_duration_ms","timestamp","trigger_type","url"],"properties":{"id":{"type":"string","description":"Unique identifier for the attempt"},"object":{"type":"string","enum":["event_attempt"],"description":"Object type, always `event_attempt`"},"endpoint_id":{"type":"string","description":"ID of the webhook endpoint"},"event_id":{"type":"string","description":"ID of the event"},"status":{"type":"number","description":"Delivery status code"},"response":{"type":"string","description":"Response body from the endpoint"},"response_status_code":{"type":"number","description":"HTTP status code from the endpoint"},"response_duration_ms":{"type":"number","description":"Response time in milliseconds"},"timestamp":{"type":"string","description":"ISO 8601 timestamp of the attempt"},"trigger_type":{"type":"number","description":"Type of trigger that initiated the delivery"},"url":{"type":"string","description":"URL the event was sent to"}},"additionalProperties":false},"description":"List of delivery attempts"},"has_more":{"type":"boolean","description":"Whether there are more results available"},"iterator":{"type":"string","description":"Cursor for forward pagination"},"prev_iterator":{"type":"string","description":"Cursor for backward pagination"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"502":{"description":"The upstream webhook provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/WebhookProviderError"]}},"additionalProperties":false,"description":"The upstream webhook provider request failed","title":"Webhook Provider Error"}}}}},"description":"Returns a list of delivery attempts for an event. Requires webhooks:read scope.","summary":"List Event Delivery Attempts"}},"/v2/projects/{project_id}/events/{event_id}/retry":{"post":{"tags":["Events V2"],"operationId":"eventsv2.retryEvent","parameters":[{"name":"project_id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"event_id","in":"path","schema":{"type":"string","description":"Event ID"},"required":true,"description":"Event ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","id","retried"],"properties":{"object":{"type":"string","enum":["event"],"description":"Object type, always `event`"},"id":{"type":"string","description":"ID of the event being retried"},"retried":{"type":"boolean","enum":[true],"description":"Always true for retry responses"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"502":{"description":"The upstream webhook provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/WebhookProviderError"]}},"additionalProperties":false,"description":"The upstream webhook provider request failed","title":"Webhook Provider Error"}}}}},"description":"Retries delivery of an event to a specific endpoint. Requires webhooks:write scope.","summary":"Retry Event Delivery","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["endpoint_id"],"properties":{"endpoint_id":{"type":"string","description":"ID of the webhook endpoint to retry delivery to"}},"additionalProperties":false}}},"required":true}}},"/v2/charts/data":{"post":{"tags":["Charts V2"],"operationId":"chartsv2.getChartData","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","request_id","series","data","y_axis","x_axis","filters","breakdowns","date_filters","enriched_data","duration"],"properties":{"object":{"type":"string","enum":["chart_data"],"description":"Object type, always `chart_data`"},"request_id":{"type":"string","description":"Unique identifier for this request"},"series":{"type":"array","items":{"type":"object","required":["breakdown","key"],"properties":{"breakdown":{"type":"string","description":"Breakdown dimension key"},"key":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Series key value, or null"}},"additionalProperties":false},"description":"List of data series in the response"},"data":{"type":"array","items":{"type":"object","required":["x","incomplete","values"],"properties":{"x":{"type":"string","description":"X-axis value (typically a date string)"},"incomplete":{"type":"boolean","description":"Whether this data point represents an incomplete period"},"values":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"object","required":["y","extra"],"properties":{"y":{"type":"number","description":"Y-axis value"},"extra":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"number"},"description":"Additional metric values"},"meta":{"type":"object","required":[],"properties":{},"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"number"},{"type":"string"}]},"description":"Additional point metadata, for example retention partial rows"}},"additionalProperties":false},"description":"Values keyed by series key"}},"additionalProperties":false},"description":"Chart data points"},"y_axis":{"type":"object","required":["key","name","description","value_type"],"properties":{"key":{"type":"string","description":"Metric key"},"name":{"type":"string","description":"Display name"},"description":{"type":"string","description":"Description of the metric"},"value_type":{"type":"string","enum":["number","percentage","currency"],"description":"How to format the value"},"extra":{"type":"array","items":{"type":"object","required":["key","name","description","value_type"],"properties":{"key":{"type":"string","description":"Metric key"},"name":{"type":"string","description":"Display name"},"description":{"type":"string","description":"Description of the metric"},"value_type":{"type":"string","enum":["number","percentage","currency"],"description":"How to format the value"}},"additionalProperties":false},"description":"Additional values rendered as sub-rows in chart tables"},"aggregate_total":{"type":"object","required":["numerator_key","denominator_key"],"properties":{"numerator_key":{"type":"string","description":"Extra metric key to sum for the aggregate total numerator"},"denominator_key":{"type":"string","description":"Extra metric key to sum for the aggregate total denominator"}},"additionalProperties":false,"description":"How to aggregate percentage totals from extra metric values"}},"additionalProperties":false,"description":"Y-axis definition"},"x_axis":{"type":"object","required":["key","name","description","value_type"],"properties":{"key":{"type":"string","description":"Dimension key"},"name":{"type":"string","description":"Display name"},"description":{"type":"string","description":"Description of the dimension"},"value_type":{"type":"string","enum":["date","string"],"description":"Value type of the dimension"},"fill_missing_values":{"type":"string","enum":["zero","cumulative"],"description":"How missing x-axis values are filled"},"date_intervals":{"type":"array","items":{"type":"object","required":["key","name","description"],"properties":{"key":{"type":"string","enum":["auto","hour","day","week","month","quarter","year","totals"],"description":"Interval key"},"name":{"type":"string","description":"Display name"},"description":{"type":"string","description":"Description of the interval"},"active":{"type":"boolean"}},"additionalProperties":false},"description":"Supported date interval options for this x-axis"}},"additionalProperties":false,"description":"X-axis definition"},"filters":{"type":"array","items":{"type":"object","required":["key","name","description","active","value_type"],"properties":{"key":{"type":"string","description":"Filter key"},"name":{"type":"string","description":"Display name"},"description":{"type":"string","description":"Description of the filter"},"active":{"type":"boolean","description":"Whether this filter is currently active"},"value_type":{"type":"string","enum":["string","date"],"description":"Value type of the filter"},"value":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"number"}]},"description":"Currently selected values"},"depends_on":{"type":"string","description":"Filter key that must be selected before this filter is available"}},"additionalProperties":false},"description":"Available filters"},"breakdowns":{"type":"array","items":{"type":"object","required":["key","name","description","active","value_type"],"properties":{"key":{"type":"string","description":"Breakdown key"},"name":{"type":"string","description":"Display name"},"description":{"type":"string","description":"Description of the breakdown"},"active":{"type":"boolean","description":"Whether this breakdown is currently active"},"value_type":{"type":"string","enum":["string","date"],"description":"Value type of the breakdown"},"group":{"type":"string","description":"Group this breakdown belongs to"}},"additionalProperties":false},"description":"Available breakdowns"},"date_filters":{"type":"array","items":{"type":"object","required":["name","preset","active","range"],"properties":{"name":{"type":"string","description":"Display name of the date filter"},"preset":{"type":"string","enum":["last_24_hours","today","yesterday","last_7_days","last_30_days","last_90_days","last_180_days","last_365_days","year_to_date","custom"],"description":"Active preset"},"active":{"type":"boolean","description":"Whether this date filter is active"},"range":{"type":"object","required":["from","to"],"properties":{"from":{"type":"string","description":"Start date (ISO 8601)"},"to":{"type":"string","description":"End date (ISO 8601)"}},"additionalProperties":false,"description":"Resolved date range"}},"additionalProperties":false},"description":"Date filter definitions"},"enriched_data":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"string"},"description":"Enriched metadata for the response"},"duration":{"type":"object","required":["start_time","end_time","duration_ms"],"properties":{"start_time":{"type":"number","description":"Request start time in milliseconds"},"end_time":{"type":"number","description":"Request end time in milliseconds"},"duration_ms":{"type":"number","description":"Total request duration in milliseconds"}},"additionalProperties":false,"description":"Request timing information"},"table":{"type":"object","required":[],"properties":{"kind":{"type":"string","enum":["standard","cohort"]},"row_meta":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"object","required":[],"properties":{},"additionalProperties":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"string"}]},{"type":"null"}]}}},"leading_columns":{"type":"array","items":{"type":"object","required":["key","label"],"properties":{"key":{"type":"string"},"label":{"type":"string"},"value_type":{"type":"string","enum":["number","percentage","currency","string"]},"align":{"type":"string","enum":["start","end"]},"sortable":{"type":"boolean"}},"additionalProperties":false}},"column_meta":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"object","required":[],"properties":{"incomplete":{"type":"boolean"}},"additionalProperties":false}},"hidden_columns":{"type":"array","items":{"type":"string"}},"hidden_series":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"description":"Table-specific metadata"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Queries chart data from ClickHouse based on the provided parameters. Returns time series data with optional breakdowns and filters. Requires charts:read scope.","summary":"Query Chart Data","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id","y_axis","x_axis"],"properties":{"application_id":{"type":"string","description":"Application ID to query data for"},"y_axis":{"type":"string","description":"Y-axis metric to display (e.g. `netProceeds`, `newUsers`, `trialConversionRate`). Must be an exact metric key from `GET /v2/charts/definitions` — e.g. proceeds charts use `netProceeds`, not `proceeds`."},"x_axis":{"type":"string","description":"X-axis dimension (e.g. `purchaseDate`, `installDate`). Must be an exact dimension key from `GET /v2/charts/definitions`."},"breakdown":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional breakdown dimension (e.g. `countryCode`, `placement`)"},"date_filter":{"type":"object","required":["dimension"],"properties":{"dimension":{"type":"string","enum":["purchaseDate","installDate","firstPurchaseDate","tsDate","mrrDate"],"description":"Date dimension to filter on"},"range":{"type":"object","required":["from","to"],"properties":{"from":{"type":"string","description":"Start date (ISO 8601)"},"to":{"type":"string","description":"End date (ISO 8601)"}},"additionalProperties":false,"description":"Custom date range (required when preset is `custom`)"},"preset":{"type":"string","enum":["last_24_hours","today","yesterday","last_7_days","last_30_days","last_90_days","last_180_days","last_365_days","year_to_date","custom"],"description":"Preset date range"}},"additionalProperties":false,"description":"Date filter configuration"},"date_interval":{"type":"string","enum":["auto","hour","day","week","month","quarter","year","totals"],"description":"Date interval for grouping (hour, day, week, month, quarter, year)"},"conversion_timeframe":{"type":"string","enum":["d1","d3","d4","d7","d14","d30","d90"],"description":"Conversion timeframe for SDK events"},"include":{"type":"array","items":{"type":"string"},"description":"Additional y-axis metrics to include in the response"},"paywall_id":{"type":"array","items":{"type":"string"},"description":"Filter by paywall IDs"},"variant_id":{"type":"array","items":{"type":"string","description":"a string to be decoded into a number"},"description":"Filter by variant IDs"},"experiment_id":{"type":"array","items":{"type":"string","description":"a string to be decoded into a number"},"description":"Filter by experiment IDs"},"campaign_id":{"type":"array","items":{"type":"string"},"description":"Filter by campaign IDs"},"country_code":{"type":"array","items":{"type":"string"},"description":"Filter by country codes"},"product_id":{"type":"array","items":{"type":"string"},"description":"Filter by product IDs"},"placement":{"type":"array","items":{"type":"string"},"description":"Filter by placements"},"environment":{"type":"array","items":{"type":"string"},"description":"Filter by environment (SANDBOX, PRODUCTION)"},"store":{"type":"array","items":{"type":"string"},"description":"Filter by store (APP_STORE, PLAY_STORE, STRIPE)"},"app_version":{"type":"array","items":{"type":"string"},"description":"Filter by app version"},"sdk_version":{"type":"array","items":{"type":"string"},"description":"Filter by SDK version"},"product_duration":{"type":"array","items":{"type":"string"},"description":"Filter by product duration"},"billing_plan_type":{"type":"array","items":{"type":"string","enum":["UP_FRONT","MONTHLY"],"description":"App Store billing plan type"},"description":"Filter by App Store billing plan type (UP_FRONT, MONTHLY)"},"event_type":{"type":"array","items":{"type":"string"},"description":"Filter by event type"},"sub_start_type":{"type":"array","items":{"type":"string"},"description":"Filter by subscription start type"},"revenue_type":{"type":"array","items":{"type":"string"},"description":"Filter by revenue type"},"auto_renew_status":{"type":"array","items":{"type":"string"},"description":"Filter by auto renew status"},"revenue_source":{"type":"array","items":{"type":"string"},"description":"Filter by revenue source (Superwall, Your App)"},"max_data_points":{"type":"number","description":"Maximum number of data points to return (default: 1000)"}},"additionalProperties":false}}},"required":true}}},"/v2/charts/definitions":{"get":{"tags":["Charts V2"],"operationId":"chartsv2.getChartDefinitions","parameters":[{"name":"application_id","in":"query","schema":{"type":"string","description":"Application ID (required for org resolution)"},"required":true,"description":"Application ID (required for org resolution)"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","y_axis","x_axis","breakdowns","filters","date_presets","date_intervals","chart_types"],"properties":{"object":{"type":"string","enum":["chart_definitions"],"description":"Object type, always `chart_definitions`"},"y_axis":{"type":"array","items":{"type":"object","required":["key","name","description","value_type"],"properties":{"key":{"type":"string","description":"Metric key"},"name":{"type":"string","description":"Display name"},"description":{"type":"string","description":"Description of the metric"},"value_type":{"type":"string","enum":["number","percentage","currency"],"description":"How to format the value"},"extra":{"type":"array","items":{"type":"object","required":["key","name","description","value_type"],"properties":{"key":{"type":"string","description":"Metric key"},"name":{"type":"string","description":"Display name"},"description":{"type":"string","description":"Description of the metric"},"value_type":{"type":"string","enum":["number","percentage","currency"],"description":"How to format the value"}},"additionalProperties":false},"description":"Additional values rendered as sub-rows in chart tables"},"aggregate_total":{"type":"object","required":["numerator_key","denominator_key"],"properties":{"numerator_key":{"type":"string","description":"Extra metric key to sum for the aggregate total numerator"},"denominator_key":{"type":"string","description":"Extra metric key to sum for the aggregate total denominator"}},"additionalProperties":false,"description":"How to aggregate percentage totals from extra metric values"}},"additionalProperties":false},"description":"Available y-axis metrics"},"x_axis":{"type":"array","items":{"type":"object","required":["key","name","description","value_type"],"properties":{"key":{"type":"string","description":"Dimension key"},"name":{"type":"string","description":"Display name"},"description":{"type":"string","description":"Description of the dimension"},"value_type":{"type":"string","enum":["date","string"],"description":"Value type of the dimension"},"fill_missing_values":{"type":"string","enum":["zero","cumulative"],"description":"How missing x-axis values are filled"},"date_intervals":{"type":"array","items":{"type":"object","required":["key","name","description"],"properties":{"key":{"type":"string","enum":["auto","hour","day","week","month","quarter","year","totals"],"description":"Interval key"},"name":{"type":"string","description":"Display name"},"description":{"type":"string","description":"Description of the interval"},"active":{"type":"boolean"}},"additionalProperties":false},"description":"Supported date interval options for this x-axis"}},"additionalProperties":false},"description":"Available x-axis dimensions"},"breakdowns":{"type":"array","items":{"type":"object","required":["key","name","description","active","value_type"],"properties":{"key":{"type":"string","description":"Breakdown key"},"name":{"type":"string","description":"Display name"},"description":{"type":"string","description":"Description of the breakdown"},"active":{"type":"boolean","description":"Whether this breakdown is currently active"},"value_type":{"type":"string","enum":["string","date"],"description":"Value type of the breakdown"},"group":{"type":"string","description":"Group this breakdown belongs to"}},"additionalProperties":false},"description":"Available breakdown dimensions"},"filters":{"type":"array","items":{"type":"object","required":["key","name","description","active","value_type"],"properties":{"key":{"type":"string","description":"Filter key"},"name":{"type":"string","description":"Display name"},"description":{"type":"string","description":"Description of the filter"},"active":{"type":"boolean","description":"Whether this filter is currently active"},"value_type":{"type":"string","enum":["string","date"],"description":"Value type of the filter"},"value":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"number"}]},"description":"Currently selected values"},"depends_on":{"type":"string","description":"Filter key that must be selected before this filter is available"}},"additionalProperties":false},"description":"Available filters"},"date_presets":{"type":"array","items":{"type":"string","enum":["last_24_hours","today","yesterday","last_7_days","last_30_days","last_90_days","last_180_days","last_365_days","year_to_date","custom"],"description":"Preset date range for filtering"},"description":"Available date presets"},"date_intervals":{"type":"array","items":{"type":"object","required":["key","name","description"],"properties":{"key":{"type":"string","enum":["auto","hour","day","week","month","quarter","year","totals"],"description":"Interval key"},"name":{"type":"string","description":"Display name"},"description":{"type":"string","description":"Description of the interval"}},"additionalProperties":false},"description":"Available date intervals"},"chart_types":{"type":"array","items":{"type":"object","required":["key","name","description","x_axis","y_axis","date_dimension","include"],"properties":{"key":{"type":"string","description":"Chart type key"},"name":{"type":"string","description":"Display name"},"description":{"type":"string","description":"Description of the chart type"},"group":{"type":"string","description":"Group this chart type belongs to"},"x_axis":{"type":"string","description":"Default x-axis dimension"},"y_axis":{"type":"string","description":"Default y-axis metric"},"date_dimension":{"type":"string","enum":["purchaseDate","installDate","firstPurchaseDate","tsDate","mrrDate"],"description":"Default date dimension"},"include":{"type":"array","items":{"type":"string"},"description":"Additional metrics included by default"},"default_breakdown":{"type":"string","description":"Default breakdown dimension"},"default_chart_type":{"type":"string","enum":["line","stackedArea","bar","stackedBar"],"description":"Default visualization type"},"chart_type_options":{"type":"array","items":{"type":"string","enum":["line","stackedArea","bar","stackedBar"]},"description":"Allowed visualization types"},"icon":{"type":"string","description":"Dashboard icon key"},"force_no_breakdown":{"type":"boolean","description":"When true, this chart must always render as a single combined series (no breakdown)"}},"additionalProperties":false},"description":"Available chart types"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns available chart definitions including y-axis metrics, x-axis dimensions, breakdowns, filters, and date presets. This is static configuration data. Requires charts:read scope.","summary":"Get Chart Definitions"}},"/v2/charts/filter-values":{"post":{"tags":["Charts V2"],"operationId":"chartsv2.getFilterValues","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","values"],"properties":{"object":{"type":"string","enum":["chart_filter_values"]},"values":{"anyOf":[{"type":"array","items":{"type":"object","required":["label","value"],"properties":{"label":{"type":"string"},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"array","items":{"type":"string"}},{"type":"array","items":{"type":"number"}}]}},"additionalProperties":false}},{"type":"null"}]}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns selectable values for a chart filter or breakdown. Requires charts:read scope.","summary":"Get Chart Filter Values","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id","key"],"properties":{"application_id":{"type":"string","description":"a string to be decoded into a number"},"key":{"type":"string"},"campaign_ids":{"type":"array","items":{"type":"string"}},"series":{"type":"array","items":{"type":"object","required":["breakdown","key"],"properties":{"breakdown":{"type":"string"},"key":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false}}},"required":true}}},"/v2/charts/acquisition-cohort-report":{"post":{"tags":["Charts V2"],"operationId":"chartsv2.getAcquisitionCohortReport","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","dimension","windows","date_range","rows","totals"],"properties":{"object":{"type":"string","enum":["acquisition_cohort_report"]},"dimension":{"type":"string","enum":["campaign","ad_set","ad","country"],"description":"Dimension to group the report by. campaign/ad_set/ad come from MMP paid-acquisition attribution; country from the SDK's install geo."},"windows":{"type":"array","items":{"type":"string","enum":["d1","d3","d4","d7","d14","d30","d90"],"description":"Conversion attribution window"}},"date_range":{"type":"object","required":["from","to"],"properties":{"from":{"type":"string","description":"Start date (ISO 8601)"},"to":{"type":"string","description":"End date (ISO 8601)"}},"additionalProperties":false,"description":"Resolved install-date window"},"rows":{"type":"array","items":{"type":"object","required":["key","name","network","installs","trials","install_to_trial_rate","spend","cpi","revenue"],"properties":{"key":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Dimension value (campaign/ad set/ad id, or country code). null is the organic/unattributed bucket."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Human-readable name for the dimension value, when known"},"network":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Ad network the installs matched to (campaign/ad_set/ad dimensions only)"},"installs":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Installs in the cohort window. 0 when the install source is available but recorded no installs for this row (e.g. revenue attributed to an id the MMP never saw). null when the install source itself is unavailable — MMP not configured or unreachable, or the environment filter is not production-only (MMP installs are production-only). Ad-dimension installs are windowed by MMP match time, which can trail the SDK install date the revenue columns cohort by at window edges."},"trials":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Trial starts cohorted by install date for this row, counted over the whole install window rather than per revenue window. 0 when the source saw none."},"install_to_trial_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"trials ÷ installs, normally 0-1. Can exceed 1 at window edges on ad dimensions, where trials are cohorted by SDK install date but installs are windowed by MMP match time. null when not computable: either side unavailable, or installs is 0."},"spend":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Ad-network spend for this row (campaign dimension only — spend has no ad-set/ad/country granularity). null on other dimensions, and null on every row when the window contains no spend at all — no connected ad account, or an account with no spend in this window — so rows never claim a misleading 0 cost. Once any spend exists in the window, 0 on a row is a real measurement."},"cpi":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Cost per install: spend ÷ installs (campaign dimension only). null when not computable — spend or installs unavailable, or installs is 0."},"revenue":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"number"},"description":"Cohorted net proceeds per requested window, keyed by window (e.g. d30)"}},"additionalProperties":false}},"totals":{"type":"object","required":["installs","matched_installs","trials","install_to_trial_rate","spend","cpi","revenue"],"properties":{"installs":{"anyOf":[{"type":"number"},{"type":"null"}]},"matched_installs":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Installs attributed to a dimension value (campaign/ad_set/ad dimensions only)"},"trials":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"All trial starts cohorted by install date in the window"},"install_to_trial_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"trials ÷ installs across all rows; a blended rate, organic included. Normally 0-1, but subject to the same window-edge skew as the per-row rate on ad dimensions."},"spend":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Total ad-network spend in the window (campaign dimension only)"},"cpi":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"spend ÷ installs across all rows — a blended CPI, organic installs included (campaign dimension only)"},"revenue":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"number"}}},"additionalProperties":false}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Installs, trial starts, install-to-trial rate, ad spend, CPI, and install-cohorted revenue (e.g. D4/D14/D30 proceeds) per acquisition campaign, ad set, ad, or country. Installs for ad dimensions come from MMP install matching; trials and revenue come from attributed events; spend and CPI require a connected ad account and exist on the campaign dimension only. Requires charts:read scope.","summary":"Get Acquisition Cohort Report","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id","dimension"],"properties":{"application_id":{"type":"string","description":"Application ID to query data for"},"dimension":{"type":"string","enum":["campaign","ad_set","ad","country"],"description":"Dimension to group the report by. campaign/ad_set/ad come from MMP paid-acquisition attribution; country from the SDK's install geo."},"date_preset":{"type":"string","enum":["last_24_hours","today","yesterday","last_7_days","last_30_days","last_90_days","last_180_days","last_365_days","year_to_date","custom"],"description":"Install-date window preset (default last_30_days). Ignored when date_range is set."},"date_range":{"type":"object","required":["from","to"],"properties":{"from":{"type":"string","description":"Start date (ISO 8601)"},"to":{"type":"string","description":"End date (ISO 8601)"}},"additionalProperties":false,"description":"Custom install-date window"},"windows":{"type":"array","items":{"type":"string","enum":["d1","d3","d4","d7","d14","d30","d90"],"description":"Conversion attribution window"},"description":"Cohort revenue windows to compute (default d4, d14, d30)"},"environment":{"type":"array","items":{"type":"string"},"description":"Filter by environment (SANDBOX, PRODUCTION). Defaults to PRODUCTION so installs and revenue describe the same population; ad-dimension installs are only reported when the filter is production-only."}},"additionalProperties":false}}},"required":true}}},"/v2/demand-score/query":{"post":{"tags":["Demand Score V2"],"operationId":"demandScorev2.queryDemandScore","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","metric","data"],"properties":{"object":{"type":"string","enum":["demand_score_query"]},"metric":{"type":"string","enum":["coverage","conversion","trial_billing","placement","country","sdk_platform"]},"data":{"type":"array","items":{"type":"object","required":[],"properties":{},"additionalProperties":{"$id":"/schemas/unknown","title":"unknown"}}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"summary":"Query Demand Score data","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["application_id","metric","from","to"],"properties":{"application_id":{"type":"string","description":"a string to be decoded into a number"},"metric":{"type":"string","enum":["coverage","conversion","trial_billing","placement","country"]},"from":{"type":"string","description":"a string at least 1 character(s) long","title":"minLength(1)","minLength":1},"to":{"type":"string","description":"a string at least 1 character(s) long","title":"minLength(1)","minLength":1}},"additionalProperties":false},{"type":"object","required":["application_id","metric"],"properties":{"application_id":{"type":"string","description":"a string to be decoded into a number"},"metric":{"type":"string","enum":["sdk_platform"]},"from":{"type":"string","description":"a string at least 1 character(s) long","title":"minLength(1)","minLength":1},"to":{"type":"string","description":"a string at least 1 character(s) long","title":"minLength(1)","minLength":1}},"additionalProperties":false}]}}},"required":true}}},"/v2/demand-score/ai-report":{"post":{"tags":["Demand Score V2"],"operationId":"demandScorev2.generateDemandScoreReport","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","text"],"properties":{"object":{"type":"string","enum":["demand_score_ai_report"]},"text":{"type":"string"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"summary":"Generate Demand Score AI report","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id","from","to","date_range_label","bucket_size","volume_bucket_size","trial_bucket_size","placement_min_paywall_views","country_min_paywall_views"],"properties":{"application_id":{"type":"string","description":"a string to be decoded into a number"},"from":{"type":"string","description":"a string at least 1 character(s) long","title":"minLength(1)","minLength":1},"to":{"type":"string","description":"a string at least 1 character(s) long","title":"minLength(1)","minLength":1},"date_range_label":{"type":"string","description":"a string at least 1 character(s) long","title":"minLength(1)","minLength":1},"bucket_size":{"type":"number"},"volume_bucket_size":{"type":"number"},"trial_bucket_size":{"type":"number"},"placement_min_paywall_views":{"type":"number"},"country_min_paywall_views":{"type":"number"}},"additionalProperties":false}}},"required":true}}},"/v2/demand-score/launch-experiment":{"post":{"tags":["Demand Score V2"],"operationId":"demandScorev2.launchDemandScoreExperiment","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","campaign_id","audience_id","href"],"properties":{"object":{"type":"string","enum":["demand_score_launch"]},"campaign_id":{"type":"string","description":"a string to be decoded into a number"},"audience_id":{"type":"string","description":"a string to be decoded into a number"},"href":{"type":"string"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"summary":"Create a Demand Score audience","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id"],"properties":{"application_id":{"type":"string","description":"a string to be decoded into a number"},"campaign_id":{"type":"string","description":"a string to be decoded into a number"}},"additionalProperties":false}}},"required":true}}},"/v2/users/resolve":{"get":{"tags":["Users V2"],"operationId":"usersv2.resolveUser","parameters":[{"name":"application_id","in":"query","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"},{"name":"app_user_id","in":"query","schema":{"type":"string","description":"App user identifier"},"required":true,"description":"App user identifier"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","application_user_found","application_user_aliases"],"properties":{"object":{"type":"string","enum":["user_resolution"]},"application_user_found":{"type":"boolean"},"application_user_aliases":{"type":"array","items":{"type":"object","required":["app_user_id","created_at"],"properties":{"app_user_id":{"type":"string"},"created_at":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"summary":"Resolve User"}},"/v2/users/device-properties-sample":{"get":{"tags":["Users V2"],"operationId":"usersv2.getDevicePropertiesSample","parameters":[{"name":"application_id","in":"query","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","properties","live"],"properties":{"object":{"type":"string","enum":["device_properties_sample"]},"properties":{"$ref":"#/components/schemas/@superwall~1api-schema~1v2~1JsonObject"},"live":{"type":"boolean","description":"False when the application has no recent events and only defaults were returned"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns one plausible set of device properties for the application, for previewing a paywall before it has been shown. Merges a recent real device event over a documented default set, then adds the derived time and days-since fields the SDK computes on device. Requires users:read scope.","summary":"Sample Device Properties"}},"/v2/users/properties-sample":{"get":{"tags":["Users V2"],"operationId":"usersv2.getUserPropertiesSample","parameters":[{"name":"application_id","in":"query","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","properties","live"],"properties":{"object":{"type":"string","enum":["user_properties_sample"]},"properties":{"$ref":"#/components/schemas/@superwall~1api-schema~1v2~1JsonObject"},"live":{"type":"boolean","description":"False when no attributes were set in the sampling window"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns the user attributes this application has set in the last 7 days, collapsed to one representative value per key, for previewing a paywall. Falls back to a documented example set when the window is empty. Requires users:read scope.","summary":"Sample User Properties"}},"/v2/users/{app_user_id}/attributes":{"get":{"tags":["Users V2"],"operationId":"usersv2.getUserAttributes","parameters":[{"name":"app_user_id","in":"path","schema":{"type":"string","description":"App user identifier"},"required":true,"description":"App user identifier"},{"name":"application_id","in":"query","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","app_user_id","properties","updated_at","error"],"properties":{"object":{"type":"string","enum":["user_attributes"]},"app_user_id":{"type":"string"},"properties":{"anyOf":[{"$ref":"#/components/schemas/@superwall~1api-schema~1v2~1JsonObject"},{"type":"null"}]},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"error":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"summary":"Get User Attributes"}},"/v2/users/{app_user_id}/device-attributes":{"get":{"tags":["Users V2"],"operationId":"usersv2.getUserDeviceAttributes","parameters":[{"name":"app_user_id","in":"path","schema":{"type":"string","description":"App user identifier"},"required":true,"description":"App user identifier"},{"name":"application_id","in":"query","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","app_user_id","data"],"properties":{"object":{"type":"string","enum":["device_attributes"]},"app_user_id":{"type":"string"},"data":{"type":"array","items":{"type":"object","required":["key","type","value","timestamp","max_timestamp"],"properties":{"key":{"type":"string"},"type":{"type":"string"},"value":{"type":"string"},"timestamp":{"type":"string","description":"Timestamp of this attribute value"},"max_timestamp":{"type":"string","description":"Maximum timestamp observed for this attribute"}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"summary":"Get User Device Attributes"}},"/v2/users/{app_user_id}/events":{"get":{"tags":["Users V2"],"operationId":"usersv2.listUserEvents","parameters":[{"name":"app_user_id","in":"path","schema":{"type":"string","description":"App user identifier"},"required":true,"description":"App user identifier"},{"name":"application_id","in":"query","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"},{"name":"event_group","in":"query","schema":{"type":"string","enum":["app","sdk","integration","subscription","overview","all"]},"required":false},{"name":"search_term","in":"query","schema":{"type":"string"},"required":false},{"name":"environment","in":"query","schema":{"type":"string","enum":["production","sandbox"]},"required":false},{"name":"limit","in":"query","schema":{"$ref":"#/components/schemas/NumberFromString"},"required":false},{"name":"offset","in":"query","schema":{"$ref":"#/components/schemas/NumberFromString"},"required":false}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","url","has_more","total_count","data"],"properties":{"object":{"type":"string","enum":["list"]},"url":{"type":"string","enum":["/v2/users/events"]},"has_more":{"type":"boolean"},"total_count":{"type":"number"},"data":{"type":"array","items":{"type":"object","required":["id","timestamp","name","source","properties"],"properties":{"id":{"type":"string","description":"Unique event identifier"},"timestamp":{"type":"string","description":"ISO 8601 timestamp of when the event occurred"},"name":{"type":"string","description":"Event name"},"source":{"type":"string","description":"Human-readable source label for the event (e.g. integration name, SDK version)"},"properties":{"$ref":"#/components/schemas/@superwall~1api-schema~1v2~1JsonObject"},"app_user_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"app_version":{"anyOf":[{"type":"string"},{"type":"null"}]},"platform":{"anyOf":[{"type":"string"},{"type":"null"}]},"device_locale":{"anyOf":[{"type":"string"},{"type":"null"}]},"inserted_at":{"type":"string"},"headers":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"summary":"List User Events"}},"/v2/users/events/{event_id}":{"get":{"tags":["Users V2"],"operationId":"usersv2.retrieveUserEvent","parameters":[{"name":"event_id","in":"path","schema":{"type":"string","description":"Event ID"},"required":true,"description":"Event ID"},{"name":"application_id","in":"query","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","timestamp","name","source","properties","event_source"],"properties":{"id":{"type":"string","description":"Unique event identifier"},"timestamp":{"type":"string","description":"ISO 8601 timestamp of when the event occurred"},"name":{"type":"string","description":"Event name"},"source":{"type":"string","description":"Human-readable source label for the event (e.g. integration name, SDK version)"},"properties":{"$ref":"#/components/schemas/@superwall~1api-schema~1v2~1JsonObject"},"app_user_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"app_version":{"anyOf":[{"type":"string"},{"type":"null"}]},"platform":{"anyOf":[{"type":"string"},{"type":"null"}]},"device_locale":{"anyOf":[{"type":"string"},{"type":"null"}]},"inserted_at":{"type":"string"},"headers":{"anyOf":[{"type":"string"},{"type":"null"}]},"event_source":{"type":"string","enum":["subscription","sdk"],"description":"Categorized event origin: 'subscription' for payment/billing events, 'sdk' for client SDK events"},"debug":{"$ref":"#/components/schemas/@superwall~1api-schema~1v2~1JsonValue"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Retrieves a single event by ID. The `application_id` query parameter is required for authorization. Requires users:read scope.","summary":"Retrieve User Event"}},"/v2/users/event-names":{"get":{"tags":["Users V2"],"operationId":"usersv2.listUserEventNames","parameters":[{"name":"application_id","in":"query","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"},{"name":"include_all","in":"query","schema":{"$ref":"#/components/schemas/BooleanFromString"},"required":false},{"name":"limit","in":"query","schema":{"$ref":"#/components/schemas/NumberFromString"},"required":false},{"name":"offset","in":"query","schema":{"$ref":"#/components/schemas/NumberFromString"},"required":false},{"name":"is_web","in":"query","schema":{"$ref":"#/components/schemas/BooleanFromString"},"required":false}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","data"],"properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object","required":["name","cnt","source","automatically_tracked"],"properties":{"name":{"type":"string"},"cnt":{"type":"number"},"source":{"type":"string"},"automatically_tracked":{"type":"boolean"}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"summary":"List User Event Names"}},"/v2/users/filter-properties":{"get":{"tags":["Users V2"],"operationId":"usersv2.listUserFilterProperties","parameters":[{"name":"application_id","in":"query","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","user_properties","device_properties","other_properties"],"properties":{"object":{"type":"string","enum":["user_filter_properties"]},"user_properties":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"array","items":{"type":"string"}}},"device_properties":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"array","items":{"type":"string"}}},"other_properties":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"array","items":{"type":"string"}}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"summary":"List User Filter Properties"}},"/v2/users/query":{"post":{"tags":["Users V2"],"operationId":"usersv2.listUsers","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","total","returned_count","filtered_total","columns","keys","time_elapsed","rows"],"properties":{"object":{"type":"string","enum":["user_query_result"]},"total":{"type":"number","description":"Total users in the application"},"returned_count":{"type":"number","description":"Users returned in this page"},"filtered_total":{"type":"number","description":"Users matching the filters after the search term is applied"},"columns":{"type":"array","items":{"type":"object","required":["key","type","count"],"properties":{"key":{"type":"string"},"type":{"type":"string","description":"Inferred type, e.g. String, Int64, Float64, Bool, Date"},"count":{"type":"number","description":"Number of users with this attribute"}},"additionalProperties":false},"description":"Ordered columns to render: app_user_id first, then attributes by frequency"},"keys":{"type":"array","items":{"type":"object","required":["key","type","count"],"properties":{"key":{"type":"string"},"type":{"type":"string","description":"Inferred type, e.g. String, Int64, Float64, Bool, Date"},"count":{"type":"number","description":"Number of users with this attribute"}},"additionalProperties":false},"description":"Attribute columns only"},"time_elapsed":{"type":"number","description":"Query duration in seconds"},"rows":{"type":"array","items":{"$ref":"#/components/schemas/@superwall~1api-schema~1v2~1JsonObject"},"description":"User rows; each has app_user_id, a nested properties object, and flattened attributes"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Query users with filters, search term, and a download flag. Returns dynamic attribute columns alongside each user row (app_user_id, a nested properties object, and flattened attributes). Requires users:read scope.","summary":"List Users","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id"],"properties":{"application_id":{"type":"string","description":"Application ID"},"filters":{"type":"array","items":{"type":"object","required":["id","field_id","values"],"properties":{"id":{"type":"string","description":"Client-supplied filter identifier"},"field_id":{"type":"string","description":"Field to filter on: 'user_<attributeKey>' for an attribute, 'user_appUserId' for the id, or 'event' for an event name"},"operator":{"type":"string","description":"Comparison operator, e.g. is, isNot, contains, greaterThan, between, before"},"values":{"type":"array","items":{"$ref":"#/components/schemas/@superwall~1api-schema~1v2~1JsonValue"},"description":"Operand value(s) for the operator"}},"additionalProperties":false}},"match_mode":{"type":"string","enum":["all","any"],"description":"Whether a row must match all filters or any of them"},"search_term":{"type":"string"},"is_download":{"type":"boolean","description":"When true, raises the row limit for CSV export"}},"additionalProperties":false}}},"required":true}}},"/v2/users/{app_user_id}/subscription-summary":{"get":{"tags":["Users V2"],"operationId":"usersv2.getUserSubscriptionSummary","parameters":[{"name":"app_user_id","in":"path","schema":{"type":"string","description":"App user identifier"},"required":true,"description":"App user identifier"},{"name":"application_id","in":"query","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","total_spend","total_refunds","net_revenue","monthly_recurring_revenue","has_active_subscription","subscription_status","auto_renew_enabled","active_product_ids","primary_product_id","primary_store","total_renewals","first_purchase_date","last_purchase_date","next_renewal_date","expiration_date","latest_event","latest_event_ts","is_family_share","integration_partner","lifetime_value","average_order_value","last_paywall_conversion"],"properties":{"object":{"type":"string","enum":["user_subscription_summary"]},"total_spend":{"type":"number"},"total_refunds":{"type":"number"},"net_revenue":{"type":"number"},"monthly_recurring_revenue":{"type":"number"},"has_active_subscription":{"type":"boolean"},"subscription_status":{"type":"string","enum":["active","expired","trial","cancelled","none"]},"auto_renew_enabled":{"type":"boolean"},"active_product_ids":{"type":"array","items":{"type":"string"}},"primary_product_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"primary_store":{"anyOf":[{"type":"string"},{"type":"null"}]},"total_renewals":{"type":"number"},"first_purchase_date":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_purchase_date":{"anyOf":[{"type":"string"},{"type":"null"}]},"next_renewal_date":{"anyOf":[{"type":"string"},{"type":"null"}]},"expiration_date":{"anyOf":[{"type":"string"},{"type":"null"}]},"latest_event":{"anyOf":[{"type":"string"},{"type":"null"}]},"latest_event_ts":{"anyOf":[{"type":"string"},{"type":"null"}]},"is_family_share":{"type":"boolean"},"integration_partner":{"anyOf":[{"type":"string"},{"type":"null"}]},"lifetime_value":{"type":"number"},"average_order_value":{"type":"number"},"last_paywall_conversion":{"anyOf":[{"type":"object","required":[],"properties":{"paywall_id":{"type":"string"},"paywall_name":{"type":"string"},"placement":{"type":"string"},"experiment_id":{"type":"string"},"variant_id":{"type":"string"}},"additionalProperties":false},{"type":"null"}]},"debug":{"$ref":"#/components/schemas/@superwall~1api-schema~1v2~1JsonObject"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"summary":"Get User Subscription Summary"}},"/v2/users/{app_user_id}/active-entitlements":{"get":{"tags":["Users V2"],"operationId":"usersv2.getUserActiveEntitlements","parameters":[{"name":"app_user_id","in":"path","schema":{"type":"string","description":"App user identifier"},"required":true,"description":"App user identifier"},{"name":"application_id","in":"query","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","app_user_id","entitlements"],"properties":{"object":{"type":"string","enum":["user_active_entitlements"]},"app_user_id":{"type":"string"},"entitlements":{"type":"array","items":{"type":"string"}},"debug":{"$ref":"#/components/schemas/@superwall~1api-schema~1v2~1JsonObject"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"summary":"Get User Active Entitlements"}},"/v2/users/test-mode":{"get":{"tags":["Users V2"],"operationId":"usersv2.listTestModeUsers","parameters":[{"name":"application_id","in":"query","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","data"],"properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object","required":["id","app_user_id","created_at"],"properties":{"id":{"type":"number","description":"Internal test mode user record ID"},"app_user_id":{"type":"string","description":"App user identifier"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when test mode was enabled"}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"summary":"List Test Mode Users"}},"/v2/users/{app_user_id}/test-mode":{"patch":{"tags":["Users V2"],"operationId":"usersv2.updateUserTestMode","parameters":[{"name":"app_user_id","in":"path","schema":{"type":"string","description":"App user identifier"},"required":true,"description":"App user identifier"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","app_user_id","test_mode_enabled"],"properties":{"object":{"type":"string","enum":["test_mode_user"]},"app_user_id":{"type":"string"},"test_mode_enabled":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"summary":"Update User Test Mode","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id","test_mode_enabled"],"properties":{"application_id":{"type":"string","description":"Application ID"},"test_mode_enabled":{"type":"boolean"}},"additionalProperties":false}}},"required":true}}},"/v3/users/{app_user_id}/subscriptions":{"get":{"tags":["Users V3"],"operationId":"usersv3.getUserSubscriptions","parameters":[{"name":"app_user_id","in":"path","schema":{"type":"string","description":"App user identifier"},"required":true,"description":"App user identifier"},{"name":"application_id","in":"query","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","app_user_id","data"],"properties":{"object":{"type":"string","enum":["user_subscriptions"]},"app_user_id":{"type":"string"},"data":{"type":"array","items":{"type":"object","required":["subscription_id","product_id","product_type","store","transaction_id","state","is_active","is_lifetime","will_renew","offer_type","starts_at","renewed_at","expires_at","original_purchase_date","amount","currency","invoice_id","invoice_url","metadata"],"properties":{"subscription_id":{"type":"string"},"product_id":{"type":"string"},"product_type":{"type":"string","enum":["consumable","nonConsumable","autorenewable","nonRenewable"]},"store":{"type":"string"},"transaction_id":{"type":"string"},"state":{"type":"string","enum":["active","inGracePeriod","expired","inBillingRetryPeriod","revoked"]},"is_active":{"type":"boolean"},"is_lifetime":{"type":"boolean"},"will_renew":{"type":"boolean"},"offer_type":{"anyOf":[{"type":"string"},{"type":"null"}]},"starts_at":{"anyOf":[{"type":"string","description":"ISO 8601 timestamp the subscription first started"},{"type":"null"}]},"renewed_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"expires_at":{"anyOf":[{"type":"string","description":"ISO 8601 current period end; null for lifetime/open-ended"},{"type":"null"}]},"original_purchase_date":{"anyOf":[{"type":"string"},{"type":"null"}]},"amount":{"anyOf":[{"type":"number"},{"type":"null"}]},"currency":{"anyOf":[{"type":"string"},{"type":"null"}]},"invoice_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"invoice_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"metadata":{"anyOf":[{"$ref":"#/components/schemas/@superwall~1api-schema~1v2~1JsonObject"},{"type":"null"}]}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/DatabaseQueryError"]}},"additionalProperties":false,"description":"A query against the Superwall database failed","title":"Database Query Error"}]}}}},"502":{"description":"The upstream subscriptions service request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SubscriptionsProviderError"]}},"additionalProperties":false,"description":"The upstream subscriptions service request failed","title":"Subscriptions Service Error"}}}}},"description":"Returns the user's full, alias-aware subscription history from the subscriptions store. Requires users:read scope.","summary":"Get User Subscriptions"}},"/v3/users/{app_user_id}/aliases":{"get":{"tags":["Users V3"],"operationId":"usersv3.getUserAliases","parameters":[{"name":"app_user_id","in":"path","schema":{"type":"string","description":"App user identifier"},"required":true,"description":"App user identifier"},{"name":"application_id","in":"query","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","app_user_id","aliases"],"properties":{"object":{"type":"string","enum":["user_aliases"]},"app_user_id":{"type":"string"},"aliases":{"type":"array","items":{"type":"string"},"description":"Every identifier (appUserId/deviceId) in the user's identity group"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/DatabaseQueryError"]}},"additionalProperties":false,"description":"A query against the Superwall database failed","title":"Database Query Error"}]}}}},"502":{"description":"The upstream subscriptions service request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SubscriptionsProviderError"]}},"additionalProperties":false,"description":"The upstream subscriptions service request failed","title":"Subscriptions Service Error"}}}}},"description":"Returns every identifier in the user's identity group (the user-aliasing graph). Requires users:read scope.","summary":"Get User Aliases"}},"/v3/users/{app_user_id}/attributes":{"get":{"tags":["Users V3"],"operationId":"usersv3.getUserAttributes","parameters":[{"name":"app_user_id","in":"path","schema":{"type":"string","description":"App user identifier"},"required":true,"description":"App user identifier"},{"name":"application_id","in":"query","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","app_user_id","data"],"properties":{"object":{"type":"string","enum":["user_synced_attributes"]},"app_user_id":{"type":"string"},"data":{"type":"array","items":{"type":"object","required":["key","value","updated_at"],"properties":{"key":{"type":"string"},"value":{"anyOf":[{"type":"string"},{"type":"null"}]},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/DatabaseQueryError"]}},"additionalProperties":false,"description":"A query against the Superwall database failed","title":"Database Query Error"}]}}}},"502":{"description":"The upstream subscriptions service request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SubscriptionsProviderError"]}},"additionalProperties":false,"description":"The upstream subscriptions service request failed","title":"Subscriptions Service Error"}}}}},"description":"Returns the user's alias-aware synced attributes from the subscriptions store. Requires users:read scope.","summary":"Get User Synced Attributes"},"post":{"tags":["Users V3"],"operationId":"usersv3.setUserAttributes","parameters":[{"name":"app_user_id","in":"path","schema":{"type":"string","description":"App user identifier"},"required":true,"description":"App user identifier"},{"name":"application_id","in":"query","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","app_user_id","accepted"],"properties":{"object":{"type":"string","enum":["user_synced_attributes"]},"app_user_id":{"type":"string"},"accepted":{"type":"object","required":[],"properties":{},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/DatabaseQueryError"]}},"additionalProperties":false,"description":"A query against the Superwall database failed","title":"Database Query Error"}]}}}}},"description":"Sets attributes on the user via the events pipeline — the same path SDK user_attributes events take — so values land in both the subscriptions store and analytics. Propagation is asynchronous (typically seconds). The `accepted` field in the response means the request passed validation and was handed to the pipeline — it is not a read-back of the stored snapshot; use GET /v3/users/{app_user_id}/attributes to observe persisted values. Requires users:write scope.","summary":"Set User Synced Attributes","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["attributes"],"properties":{"attributes":{"type":"object","required":[],"properties":{},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"description":"Attribute key/value pairs to set on the user. Values must be scalars."}},"additionalProperties":false}}},"required":true}}},"/v2/imports/subscriptions":{"post":{"tags":["Imports"],"operationId":"imports.importUsers","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","import_id","users_received","subscriptions_received","applied","skipped","outcomes","skip_reasons","parked"],"properties":{"object":{"type":"string","enum":["subscription_import"]},"import_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"users_received":{"type":"number"},"subscriptions_received":{"type":"number"},"applied":{"type":"number"},"skipped":{"type":"number"},"outcomes":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"number"}},"skip_reasons":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"number"}},"parked":{"type":"number"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/DatabaseQueryError"]}},"additionalProperties":false,"description":"A query against the Superwall database failed","title":"Database Query Error"}]}}}},"502":{"description":"The upstream subscriptions service request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SubscriptionsProviderError"]}},"additionalProperties":false,"description":"The upstream subscriptions service request failed","title":"Subscriptions Service Error"}}}}},"description":"Loads users, their aliases, their attributes and their subscription history into the subscriptions store — the same store the SDK and store webhooks write to, read back by GET /v3/users/{app_user_id}/subscriptions.\n\nSend at most 500 users and 2000 subscriptions per request; a larger batch is rejected with 400 and will fail identically on retry.\n\nEvery write is idempotent and merged by the timestamps on the record, so re-posting a batch is safe and a 5xx should be retried with the same body. Subscription status is derived from the lifecycle timestamps you send (refunded_at, billing_issues_detected_at, grace_period_expires_at, unsubscribe_detected_at, expires_at) rather than supplied directly.\n\nA request is applied in three passes — identity, then ownership, then subscription state — and it is NOT all-or-nothing: if a later pass fails, the earlier ones have already been written. This is safe to recover from and needs no cleanup on your side; re-post the same batch and the already-written records are rewritten identically. Do not treat a failed request as though nothing landed, and do not attempt to compensate by deleting.\n\nSend updated_at as the time the store last reported the subscription, not the time of the request: it decides whether an imported row outranks a live store event for the same subscription.\n\nAttributes sent here reach the subscriptions store only — they do not emit analytics events. Use POST /v3/users/{app_user_id}/attributes for attributes that should also reach charts and campaigns.\n\nRate limited per application: a 429 carries Retry-After. The store is written by a single process that is also handling live subscription events, so imports are paced deliberately.\n\nRequires imports:write scope.","summary":"Import Users and Subscriptions","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id","users"],"properties":{"application_id":{"type":"integer","description":"The application these users belong to","title":"int"},"import_id":{"type":"string","description":"a string at most 128 character(s) long","title":"maxLength(128)","minLength":1,"maxLength":128},"users":{"type":"array","items":{"type":"object","required":["app_user_id"],"properties":{"app_user_id":{"type":"string","description":"a string at least 1 character(s) long","title":"minLength(1)","minLength":1},"aliases":{"type":"array","items":{"type":"string"}},"attributes":{"type":"object","required":[],"properties":{},"additionalProperties":{"$id":"/schemas/unknown","title":"unknown"}},"subscriptions":{"type":"array","items":{"type":"object","required":["store","subscription_id","product_id","starts_at"],"properties":{"store":{"type":"string","enum":["app-store","play-store","stripe"]},"subscription_id":{"type":"string","description":"a string at least 1 character(s) long","title":"minLength(1)","minLength":1},"transaction_id":{"type":"string","description":"a string at least 1 character(s) long","title":"minLength(1)","minLength":1},"product_id":{"type":"string","description":"a string at least 1 character(s) long","title":"minLength(1)","minLength":1},"product_type":{"type":"string","enum":["autorenewable","nonRenewable","nonConsumable","consumable"]},"environment":{"type":"string","enum":["live","test"]},"starts_at":{"anyOf":[{"type":"number","description":"Epoch milliseconds"},{"type":"string","description":"ISO 8601 timestamp"}],"description":"ISO 8601 string or epoch milliseconds"},"expires_at":{"anyOf":[{"anyOf":[{"type":"number","description":"Epoch milliseconds"},{"type":"string","description":"ISO 8601 timestamp"}],"description":"ISO 8601 string or epoch milliseconds"},{"type":"null"}]},"renewed_at":{"anyOf":[{"anyOf":[{"type":"number","description":"Epoch milliseconds"},{"type":"string","description":"ISO 8601 timestamp"}],"description":"ISO 8601 string or epoch milliseconds"},{"type":"null"}]},"original_purchase_date":{"anyOf":[{"anyOf":[{"type":"number","description":"Epoch milliseconds"},{"type":"string","description":"ISO 8601 timestamp"}],"description":"ISO 8601 string or epoch milliseconds"},{"type":"null"}]},"is_auto_renewable":{"type":"boolean"},"unsubscribe_detected_at":{"anyOf":[{"anyOf":[{"type":"number","description":"Epoch milliseconds"},{"type":"string","description":"ISO 8601 timestamp"}],"description":"ISO 8601 string or epoch milliseconds"},{"type":"null"}]},"billing_issues_detected_at":{"anyOf":[{"anyOf":[{"type":"number","description":"Epoch milliseconds"},{"type":"string","description":"ISO 8601 timestamp"}],"description":"ISO 8601 string or epoch milliseconds"},{"type":"null"}]},"grace_period_expires_at":{"anyOf":[{"anyOf":[{"type":"number","description":"Epoch milliseconds"},{"type":"string","description":"ISO 8601 timestamp"}],"description":"ISO 8601 string or epoch milliseconds"},{"type":"null"}]},"refunded_at":{"anyOf":[{"anyOf":[{"type":"number","description":"Epoch milliseconds"},{"type":"string","description":"ISO 8601 timestamp"}],"description":"ISO 8601 string or epoch milliseconds"},{"type":"null"}]},"offer_type":{"anyOf":[{"type":"string","enum":["trial","promotional","code"]},{"type":"null"}]},"price":{"anyOf":[{"type":"number"},{"type":"null"}]},"currency":{"anyOf":[{"type":"string"},{"type":"null"}]},"updated_at":{"anyOf":[{"type":"number","description":"Epoch milliseconds"},{"type":"string","description":"ISO 8601 timestamp"}],"description":"ISO 8601 string or epoch milliseconds"},"metadata":{"$ref":"#/components/schemas/@superwall~1api-schema~1v2~1JsonObject"}},"additionalProperties":false}}},"additionalProperties":false}}},"additionalProperties":false}}},"required":true}}},"/v2/retention-messages":{"get":{"tags":["Retention Messages V2"],"operationId":"retentionMessagesV2.listRetentionMessages","parameters":[{"name":"application_id","in":"query","schema":{"type":"string","description":"Application ID to list messages for (required)"},"required":true,"description":"Application ID to list messages for (required)"},{"name":"environment","in":"query","schema":{"type":"string","enum":["sandbox","production"],"description":"Optional environment filter"},"required":false,"description":"Optional environment filter"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","data"],"properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object","required":["id","object","application_id","message_group_id","name","environment","locale","apple_message_identifier","apple_message_state","apple_upload_state","apple_upload_attempt_count","apple_upload_last_error","apple_uploaded_at","header","body","alt_text","image_identifier","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_message"],"description":"Object type, always `retention_message`"},"application_id":{"type":"string","description":"Application ID"},"message_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical message group ID, or null for legacy/standalone messages"},"name":{"type":"string","description":"Display name of the retention message"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment this message belongs to"},"locale":{"type":"string","description":"BCP-47 locale code (e.g. `en-US`)"},"apple_message_identifier":{"type":"string","description":"Current Apple message identifier"},"apple_message_state":{"type":"string","enum":["PENDING","APPROVED","REJECTED","UNKNOWN"],"description":"Raw Apple review state for this message identifier"},"apple_upload_state":{"type":"string","enum":["not_uploaded","uploading","uploaded","failed"],"description":"Superwall-to-Apple upload state"},"apple_upload_attempt_count":{"type":"number"},"apple_upload_last_error":{"anyOf":[{"type":"string"},{"type":"null"}]},"apple_uploaded_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"header":{"type":"string","description":"Message header text"},"body":{"type":"string","description":"Message body text"},"alt_text":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Image alt text, or null"},"image_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple image identifier (pre-uploaded), or null"},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"502":{"description":"The upstream retention provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RetentionProviderError"]}},"additionalProperties":false,"description":"The upstream retention provider request failed","title":"Retention Provider Error"}}}}},"description":"Returns all retention messages for the specified application. Requires retention_messages:read scope.","summary":"List Retention Messages"},"post":{"tags":["Retention Messages V2"],"operationId":"retentionMessagesV2.createRetentionMessage","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","message_group_id","name","environment","locale","apple_message_identifier","apple_message_state","apple_upload_state","apple_upload_attempt_count","apple_upload_last_error","apple_uploaded_at","header","body","alt_text","image_identifier","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_message"],"description":"Object type, always `retention_message`"},"application_id":{"type":"string","description":"Application ID"},"message_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical message group ID, or null for legacy/standalone messages"},"name":{"type":"string","description":"Display name of the retention message"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment this message belongs to"},"locale":{"type":"string","description":"BCP-47 locale code (e.g. `en-US`)"},"apple_message_identifier":{"type":"string","description":"Current Apple message identifier"},"apple_message_state":{"type":"string","enum":["PENDING","APPROVED","REJECTED","UNKNOWN"],"description":"Raw Apple review state for this message identifier"},"apple_upload_state":{"type":"string","enum":["not_uploaded","uploading","uploaded","failed"],"description":"Superwall-to-Apple upload state"},"apple_upload_attempt_count":{"type":"number"},"apple_upload_last_error":{"anyOf":[{"type":"string"},{"type":"null"}]},"apple_uploaded_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"header":{"type":"string","description":"Message header text"},"body":{"type":"string","description":"Message body text"},"alt_text":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Image alt text, or null"},"image_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple image identifier (pre-uploaded), or null"},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}},"502":{"description":"The upstream retention provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RetentionProviderError"]}},"additionalProperties":false,"description":"The upstream retention provider request failed","title":"Retention Provider Error"}}}}},"description":"Creates a new retention message, generates Apple message identifiers, and uploads to Apple. Requires retention_messages:write scope.","summary":"Create Retention Message","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id","name","locale","header","body"],"properties":{"application_id":{"type":"string","description":"Application ID to create the message for"},"name":{"type":"string","description":"Display name of the retention message","title":"maxLength(256)","minLength":1,"maxLength":256},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment for message upload"},"locale":{"type":"string","description":"BCP-47 locale code","title":"maxLength(32)","minLength":1,"maxLength":32},"header":{"type":"string","description":"Message header text","title":"maxLength(256)","minLength":1,"maxLength":256},"body":{"type":"string","description":"Message body text","title":"minLength(1)","minLength":1},"alt_text":{"type":"string","description":"a string at most 512 character(s) long","title":"maxLength(512)","maxLength":512},"image_identifier":{"type":"string"}},"additionalProperties":false}}},"required":true}}},"/v2/retention-messages/groups":{"get":{"tags":["Retention Messages V2"],"operationId":"retentionMessagesV2.listRetentionMessageGroups","parameters":[{"name":"application_id","in":"query","schema":{"type":"string","description":"Application ID to list messages for (required)"},"required":true,"description":"Application ID to list messages for (required)"},{"name":"environment","in":"query","schema":{"type":"string","enum":["sandbox","production"],"description":"Optional environment filter"},"required":false,"description":"Optional environment filter"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","data"],"properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object","required":["id","object","application_id","name","environment","default_retention_message_id","messages","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_message_group"]},"application_id":{"type":"string","description":"Application ID"},"name":{"type":"string","description":"Display name"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment: 'sandbox' for testing, 'production' for live"},"default_retention_message_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}]},"messages":{"type":"array","items":{"type":"object","required":["id","object","application_id","message_group_id","name","environment","locale","apple_message_identifier","apple_message_state","apple_upload_state","apple_upload_attempt_count","apple_upload_last_error","apple_uploaded_at","header","body","alt_text","image_identifier","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_message"],"description":"Object type, always `retention_message`"},"application_id":{"type":"string","description":"Application ID"},"message_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical message group ID, or null for legacy/standalone messages"},"name":{"type":"string","description":"Display name of the retention message"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment this message belongs to"},"locale":{"type":"string","description":"BCP-47 locale code (e.g. `en-US`)"},"apple_message_identifier":{"type":"string","description":"Current Apple message identifier"},"apple_message_state":{"type":"string","enum":["PENDING","APPROVED","REJECTED","UNKNOWN"],"description":"Raw Apple review state for this message identifier"},"apple_upload_state":{"type":"string","enum":["not_uploaded","uploading","uploaded","failed"],"description":"Superwall-to-Apple upload state"},"apple_upload_attempt_count":{"type":"number"},"apple_upload_last_error":{"anyOf":[{"type":"string"},{"type":"null"}]},"apple_uploaded_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"header":{"type":"string","description":"Message header text"},"body":{"type":"string","description":"Message body text"},"alt_text":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Image alt text, or null"},"image_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple image identifier (pre-uploaded), or null"},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"502":{"description":"The upstream retention provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RetentionProviderError"]}},"additionalProperties":false,"description":"The upstream retention provider request failed","title":"Retention Provider Error"}}}}},"description":"Returns logical retention message groups and their localized variants.","summary":"List Retention Message Groups"},"post":{"tags":["Retention Messages V2"],"operationId":"retentionMessagesV2.createRetentionMessageGroup","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","name","environment","default_retention_message_id","messages","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_message_group"]},"application_id":{"type":"string","description":"Application ID"},"name":{"type":"string","description":"Display name"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment: 'sandbox' for testing, 'production' for live"},"default_retention_message_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}]},"messages":{"type":"array","items":{"type":"object","required":["id","object","application_id","message_group_id","name","environment","locale","apple_message_identifier","apple_message_state","apple_upload_state","apple_upload_attempt_count","apple_upload_last_error","apple_uploaded_at","header","body","alt_text","image_identifier","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_message"],"description":"Object type, always `retention_message`"},"application_id":{"type":"string","description":"Application ID"},"message_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical message group ID, or null for legacy/standalone messages"},"name":{"type":"string","description":"Display name of the retention message"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment this message belongs to"},"locale":{"type":"string","description":"BCP-47 locale code (e.g. `en-US`)"},"apple_message_identifier":{"type":"string","description":"Current Apple message identifier"},"apple_message_state":{"type":"string","enum":["PENDING","APPROVED","REJECTED","UNKNOWN"],"description":"Raw Apple review state for this message identifier"},"apple_upload_state":{"type":"string","enum":["not_uploaded","uploading","uploaded","failed"],"description":"Superwall-to-Apple upload state"},"apple_upload_attempt_count":{"type":"number"},"apple_upload_last_error":{"anyOf":[{"type":"string"},{"type":"null"}]},"apple_uploaded_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"header":{"type":"string","description":"Message header text"},"body":{"type":"string","description":"Message body text"},"alt_text":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Image alt text, or null"},"image_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple image identifier (pre-uploaded), or null"},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Creates a logical group of localized retention messages in Superwall without uploading them to Apple.","summary":"Create Retention Message Group","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id","name","messages"],"properties":{"application_id":{"type":"string","description":"Application ID to create the message group for"},"name":{"type":"string","description":"Display name of the message group","title":"maxLength(256)","minLength":1,"maxLength":256},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment for message upload"},"messages":{"type":"array","items":{"type":"object","required":["locale","header","body"],"properties":{"locale":{"type":"string","description":"Locale or language scope, e.g. `en-US` or `en`","title":"maxLength(32)","minLength":1,"maxLength":32},"header":{"type":"string","description":"Message header text","title":"maxLength(256)","minLength":1,"maxLength":256},"body":{"type":"string","description":"Message body text","title":"minLength(1)","minLength":1},"alt_text":{"type":"string","description":"a string at most 512 character(s) long","title":"maxLength(512)","maxLength":512},"image_identifier":{"type":"string"},"is_default":{"type":"boolean","description":"Whether this variant is the group's fallback/default message"}},"additionalProperties":false},"description":"Localized message variants","title":"minItems(1)","minItems":1}},"additionalProperties":false}}},"required":true}}},"/v2/retention-messages/{id}/group":{"post":{"tags":["Retention Messages V2"],"operationId":"retentionMessagesV2.createRetentionMessageGroupFromMessage","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Retention message ID"},"required":true,"description":"Retention message ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","name","environment","default_retention_message_id","messages","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_message_group"]},"application_id":{"type":"string","description":"Application ID"},"name":{"type":"string","description":"Display name"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment: 'sandbox' for testing, 'production' for live"},"default_retention_message_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}]},"messages":{"type":"array","items":{"type":"object","required":["id","object","application_id","message_group_id","name","environment","locale","apple_message_identifier","apple_message_state","apple_upload_state","apple_upload_attempt_count","apple_upload_last_error","apple_uploaded_at","header","body","alt_text","image_identifier","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_message"],"description":"Object type, always `retention_message`"},"application_id":{"type":"string","description":"Application ID"},"message_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical message group ID, or null for legacy/standalone messages"},"name":{"type":"string","description":"Display name of the retention message"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment this message belongs to"},"locale":{"type":"string","description":"BCP-47 locale code (e.g. `en-US`)"},"apple_message_identifier":{"type":"string","description":"Current Apple message identifier"},"apple_message_state":{"type":"string","enum":["PENDING","APPROVED","REJECTED","UNKNOWN"],"description":"Raw Apple review state for this message identifier"},"apple_upload_state":{"type":"string","enum":["not_uploaded","uploading","uploaded","failed"],"description":"Superwall-to-Apple upload state"},"apple_upload_attempt_count":{"type":"number"},"apple_upload_last_error":{"anyOf":[{"type":"string"},{"type":"null"}]},"apple_uploaded_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"header":{"type":"string","description":"Message header text"},"body":{"type":"string","description":"Message body text"},"alt_text":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Image alt text, or null"},"image_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple image identifier (pre-uploaded), or null"},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Wraps an existing standalone retention message in a logical message group so it can be used by grouped mapping and configuration flows.","summary":"Create Retention Message Group From Message"}},"/v2/retention-messages/groups/from-messages":{"post":{"tags":["Retention Messages V2"],"operationId":"retentionMessagesV2.createRetentionMessageGroupFromMessages","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","name","environment","default_retention_message_id","messages","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_message_group"]},"application_id":{"type":"string","description":"Application ID"},"name":{"type":"string","description":"Display name"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment: 'sandbox' for testing, 'production' for live"},"default_retention_message_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}]},"messages":{"type":"array","items":{"type":"object","required":["id","object","application_id","message_group_id","name","environment","locale","apple_message_identifier","apple_message_state","apple_upload_state","apple_upload_attempt_count","apple_upload_last_error","apple_uploaded_at","header","body","alt_text","image_identifier","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_message"],"description":"Object type, always `retention_message`"},"application_id":{"type":"string","description":"Application ID"},"message_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical message group ID, or null for legacy/standalone messages"},"name":{"type":"string","description":"Display name of the retention message"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment this message belongs to"},"locale":{"type":"string","description":"BCP-47 locale code (e.g. `en-US`)"},"apple_message_identifier":{"type":"string","description":"Current Apple message identifier"},"apple_message_state":{"type":"string","enum":["PENDING","APPROVED","REJECTED","UNKNOWN"],"description":"Raw Apple review state for this message identifier"},"apple_upload_state":{"type":"string","enum":["not_uploaded","uploading","uploaded","failed"],"description":"Superwall-to-Apple upload state"},"apple_upload_attempt_count":{"type":"number"},"apple_upload_last_error":{"anyOf":[{"type":"string"},{"type":"null"}]},"apple_uploaded_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"header":{"type":"string","description":"Message header text"},"body":{"type":"string","description":"Message body text"},"alt_text":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Image alt text, or null"},"image_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple image identifier (pre-uploaded), or null"},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Creates a logical group from existing ungrouped retention messages. This updates only Superwall DB rows and does not upload anything to Apple.","summary":"Create Retention Message Group From Messages","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id","name","messages"],"properties":{"application_id":{"type":"string","description":"Application ID to create the message group for"},"name":{"type":"string","description":"Display name of the message group","title":"maxLength(256)","minLength":1,"maxLength":256},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment for the existing messages"},"messages":{"type":"array","items":{"type":"object","required":["message_id","locale","is_default"],"properties":{"message_id":{"type":"integer","description":"Existing retention message ID","title":"int"},"locale":{"type":"string","description":"Locale or language scope to assign inside the group","title":"maxLength(32)","minLength":1,"maxLength":32},"is_default":{"type":"boolean","description":"Whether this existing message should be the group default"}},"additionalProperties":false},"description":"Existing ungrouped retention messages to attach to the new logical message group","title":"maxItems(100)","minItems":1,"maxItems":100}},"additionalProperties":false}}},"required":true}}},"/v2/retention-messages/groups/{id}/upload":{"post":{"tags":["Retention Messages V2"],"operationId":"retentionMessagesV2.uploadRetentionMessageGroup","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Retention message group ID"},"required":true,"description":"Retention message group ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","name","environment","default_retention_message_id","messages","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_message_group"]},"application_id":{"type":"string","description":"Application ID"},"name":{"type":"string","description":"Display name"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment: 'sandbox' for testing, 'production' for live"},"default_retention_message_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}]},"messages":{"type":"array","items":{"type":"object","required":["id","object","application_id","message_group_id","name","environment","locale","apple_message_identifier","apple_message_state","apple_upload_state","apple_upload_attempt_count","apple_upload_last_error","apple_uploaded_at","header","body","alt_text","image_identifier","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_message"],"description":"Object type, always `retention_message`"},"application_id":{"type":"string","description":"Application ID"},"message_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical message group ID, or null for legacy/standalone messages"},"name":{"type":"string","description":"Display name of the retention message"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment this message belongs to"},"locale":{"type":"string","description":"BCP-47 locale code (e.g. `en-US`)"},"apple_message_identifier":{"type":"string","description":"Current Apple message identifier"},"apple_message_state":{"type":"string","enum":["PENDING","APPROVED","REJECTED","UNKNOWN"],"description":"Raw Apple review state for this message identifier"},"apple_upload_state":{"type":"string","enum":["not_uploaded","uploading","uploaded","failed"],"description":"Superwall-to-Apple upload state"},"apple_upload_attempt_count":{"type":"number"},"apple_upload_last_error":{"anyOf":[{"type":"string"},{"type":"null"}]},"apple_uploaded_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"header":{"type":"string","description":"Message header text"},"body":{"type":"string","description":"Message body text"},"alt_text":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Image alt text, or null"},"image_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple image identifier (pre-uploaded), or null"},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}},"502":{"description":"The upstream retention provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RetentionProviderError"]}},"additionalProperties":false,"description":"The upstream retention provider request failed","title":"Retention Provider Error"}}}}},"description":"Uploads not-yet-uploaded or failed message variants in a group to Apple, updating per-message upload state. Provider failures for individual variants are persisted on the affected rows and returned in the response so clients can show partial success and allow retry.","summary":"Upload Retention Message Group"}},"/v2/retention-messages/groups/{id}":{"patch":{"tags":["Retention Messages V2"],"operationId":"retentionMessagesV2.updateRetentionMessageGroup","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Retention message group ID"},"required":true,"description":"Retention message group ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","name","environment","default_retention_message_id","messages","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_message_group"]},"application_id":{"type":"string","description":"Application ID"},"name":{"type":"string","description":"Display name"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment: 'sandbox' for testing, 'production' for live"},"default_retention_message_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}]},"messages":{"type":"array","items":{"type":"object","required":["id","object","application_id","message_group_id","name","environment","locale","apple_message_identifier","apple_message_state","apple_upload_state","apple_upload_attempt_count","apple_upload_last_error","apple_uploaded_at","header","body","alt_text","image_identifier","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_message"],"description":"Object type, always `retention_message`"},"application_id":{"type":"string","description":"Application ID"},"message_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical message group ID, or null for legacy/standalone messages"},"name":{"type":"string","description":"Display name of the retention message"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment this message belongs to"},"locale":{"type":"string","description":"BCP-47 locale code (e.g. `en-US`)"},"apple_message_identifier":{"type":"string","description":"Current Apple message identifier"},"apple_message_state":{"type":"string","enum":["PENDING","APPROVED","REJECTED","UNKNOWN"],"description":"Raw Apple review state for this message identifier"},"apple_upload_state":{"type":"string","enum":["not_uploaded","uploading","uploaded","failed"],"description":"Superwall-to-Apple upload state"},"apple_upload_attempt_count":{"type":"number"},"apple_upload_last_error":{"anyOf":[{"type":"string"},{"type":"null"}]},"apple_uploaded_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"header":{"type":"string","description":"Message header text"},"body":{"type":"string","description":"Message body text"},"alt_text":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Image alt text, or null"},"image_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple image identifier (pre-uploaded), or null"},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Updates logical message group metadata and, when message_ids is provided, atomically replaces group membership using existing messages. This does not upload anything to Apple.","summary":"Update Retention Message Group","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"Display name of the message group"},"default_retention_message_id":{"type":"integer","description":"Selected message to use as the group's fallback/default message","title":"int"},"message_ids":{"type":"array","items":{"type":"integer","description":"an integer","title":"int"},"description":"Full replacement set of existing messages in this group. Messages must be ungrouped or already in this group.","title":"maxItems(100)","minItems":1,"maxItems":100},"new_messages":{"type":"array","items":{"type":"object","required":["locale","header","body"],"properties":{"locale":{"type":"string","description":"Locale or language scope, e.g. `en-US` or `en`","title":"maxLength(32)","minLength":1,"maxLength":32},"header":{"type":"string","description":"Message header text","title":"maxLength(256)","minLength":1,"maxLength":256},"body":{"type":"string","description":"Message body text","title":"minLength(1)","minLength":1},"alt_text":{"type":"string","description":"a string at most 512 character(s) long","title":"maxLength(512)","maxLength":512},"image_identifier":{"type":"string"},"is_default":{"type":"boolean","description":"Whether this variant is the group's fallback/default message"}},"additionalProperties":false},"description":"New localized message variants to create inside this group. They are saved locally and must be submitted to Apple explicitly.","title":"maxItems(100)","minItems":1,"maxItems":100}},"additionalProperties":false}}},"required":true}},"delete":{"tags":["Retention Messages V2"],"operationId":"retentionMessagesV2.deleteRetentionMessageGroup","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Retention message group ID"},"required":true,"description":"Retention message group ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","deleted"],"properties":{"id":{"type":"integer","description":"ID of the deleted message group","title":"int"},"object":{"type":"string","enum":["retention_message_group"]},"deleted":{"type":"boolean","enum":[true]}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}},"502":{"description":"The upstream retention provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RetentionProviderError"]}},"additionalProperties":false,"description":"The upstream retention provider request failed","title":"Retention Provider Error"}}}}},"description":"Deletes every message variant in a logical group from Apple, then removes the group. Groups referenced by realtime configuration or default mapping groups cannot be deleted.","summary":"Delete Retention Message Group"}},"/v2/retention-messages/{id}":{"get":{"tags":["Retention Messages V2"],"operationId":"retentionMessagesV2.retrieveRetentionMessage","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Retention message ID"},"required":true,"description":"Retention message ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","message_group_id","name","environment","locale","apple_message_identifier","apple_message_state","apple_upload_state","apple_upload_attempt_count","apple_upload_last_error","apple_uploaded_at","header","body","alt_text","image_identifier","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_message"],"description":"Object type, always `retention_message`"},"application_id":{"type":"string","description":"Application ID"},"message_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical message group ID, or null for legacy/standalone messages"},"name":{"type":"string","description":"Display name of the retention message"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment this message belongs to"},"locale":{"type":"string","description":"BCP-47 locale code (e.g. `en-US`)"},"apple_message_identifier":{"type":"string","description":"Current Apple message identifier"},"apple_message_state":{"type":"string","enum":["PENDING","APPROVED","REJECTED","UNKNOWN"],"description":"Raw Apple review state for this message identifier"},"apple_upload_state":{"type":"string","enum":["not_uploaded","uploading","uploaded","failed"],"description":"Superwall-to-Apple upload state"},"apple_upload_attempt_count":{"type":"number"},"apple_upload_last_error":{"anyOf":[{"type":"string"},{"type":"null"}]},"apple_uploaded_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"header":{"type":"string","description":"Message header text"},"body":{"type":"string","description":"Message body text"},"alt_text":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Image alt text, or null"},"image_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple image identifier (pre-uploaded), or null"},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"502":{"description":"The upstream retention provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RetentionProviderError"]}},"additionalProperties":false,"description":"The upstream retention provider request failed","title":"Retention Provider Error"}}}}},"description":"Retrieves a retention message by ID. Requires retention_messages:read scope.","summary":"Retrieve Retention Message"},"delete":{"tags":["Retention Messages V2"],"operationId":"retentionMessagesV2.deleteRetentionMessage","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Retention message ID"},"required":true,"description":"Retention message ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","deleted"],"properties":{"id":{"type":"integer","description":"ID of the deleted message","title":"int"},"object":{"type":"string","enum":["retention_message"]},"deleted":{"type":"boolean","enum":[true]}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}},"502":{"description":"The upstream retention provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RetentionProviderError"]}},"additionalProperties":false,"description":"The upstream retention provider request failed","title":"Retention Provider Error"}}}}},"description":"Deletes a retention message. Cannot delete a message referenced by configurations or default mappings. Requires retention_messages:write scope.","summary":"Delete Retention Message"}},"/v2/retention-default-messages/groups":{"get":{"tags":["Retention Default Messages V2"],"operationId":"retentionDefaultMessagesV2.listRetentionDefaultMessageGroups","parameters":[{"name":"application_id","in":"query","schema":{"type":"string","description":"Application ID to list default message mappings for (required)"},"required":true,"description":"Application ID to list default message mappings for (required)"},{"name":"environment","in":"query","schema":{"type":"string","enum":["sandbox","production"],"description":"Optional environment filter"},"required":false,"description":"Optional environment filter"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","data"],"properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object","required":["id","object","application_id","name","environment","message_group_id","message_group","default_messages","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_default_message_group"]},"application_id":{"type":"string","description":"Application ID"},"name":{"type":"string","description":"Display name"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment: 'sandbox' for testing, 'production' for live"},"message_group_id":{"type":"integer","description":"an integer","title":"int"},"message_group":{"type":"object","required":["id","object","application_id","name","environment","default_retention_message_id","messages","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_message_group"]},"application_id":{"type":"string","description":"Application ID"},"name":{"type":"string","description":"Display name"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment: 'sandbox' for testing, 'production' for live"},"default_retention_message_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}]},"messages":{"type":"array","items":{"type":"object","required":["id","object","application_id","message_group_id","name","environment","locale","apple_message_identifier","apple_message_state","apple_upload_state","apple_upload_attempt_count","apple_upload_last_error","apple_uploaded_at","header","body","alt_text","image_identifier","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_message"],"description":"Object type, always `retention_message`"},"application_id":{"type":"string","description":"Application ID"},"message_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical message group ID, or null for legacy/standalone messages"},"name":{"type":"string","description":"Display name of the retention message"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment this message belongs to"},"locale":{"type":"string","description":"BCP-47 locale code (e.g. `en-US`)"},"apple_message_identifier":{"type":"string","description":"Current Apple message identifier"},"apple_message_state":{"type":"string","enum":["PENDING","APPROVED","REJECTED","UNKNOWN"],"description":"Raw Apple review state for this message identifier"},"apple_upload_state":{"type":"string","enum":["not_uploaded","uploading","uploaded","failed"],"description":"Superwall-to-Apple upload state"},"apple_upload_attempt_count":{"type":"number"},"apple_upload_last_error":{"anyOf":[{"type":"string"},{"type":"null"}]},"apple_uploaded_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"header":{"type":"string","description":"Message header text"},"body":{"type":"string","description":"Message body text"},"alt_text":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Image alt text, or null"},"image_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple image identifier (pre-uploaded), or null"},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false},"default_messages":{"type":"array","items":{"type":"object","required":["id","object","application_id","default_message_group_id","environment","product_id","locale","retention_message_id","message_name","apple_message_identifier","apple_sync_state","apple_sync_attempt_count","apple_sync_last_error","apple_synced_at","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_default_message"],"description":"Object type, always `retention_default_message`"},"application_id":{"type":"string","description":"Application ID"},"default_message_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical default mapping group ID, or null for legacy/standalone mappings"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Environment this default message mapping applies to"},"product_id":{"type":"string","description":"Apple product ID"},"locale":{"type":"string","description":"Locale code for this mapping"},"retention_message_id":{"type":"integer","description":"Linked retention message ID","title":"int"},"message_name":{"type":"string","description":"Linked retention message name"},"apple_message_identifier":{"type":"string","description":"Apple message identifier configured for this default mapping"},"apple_sync_state":{"type":"string","enum":["not_synced","syncing","synced","failed"],"description":"Apple default-message sync state"},"apple_sync_attempt_count":{"type":"number"},"apple_sync_last_error":{"anyOf":[{"type":"string"},{"type":"null"}]},"apple_synced_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"502":{"description":"The upstream retention provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RetentionProviderError"]}},"additionalProperties":false,"description":"The upstream retention provider request failed","title":"Retention Provider Error"}}}}},"description":"Returns logical default message groups and their product/locale child rows.","summary":"List Retention Default Message Groups"},"post":{"tags":["Retention Default Messages V2"],"operationId":"retentionDefaultMessagesV2.createRetentionDefaultMessageGroup","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","name","environment","message_group_id","message_group","default_messages","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_default_message_group"]},"application_id":{"type":"string","description":"Application ID"},"name":{"type":"string","description":"Display name"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment: 'sandbox' for testing, 'production' for live"},"message_group_id":{"type":"integer","description":"an integer","title":"int"},"message_group":{"type":"object","required":["id","object","application_id","name","environment","default_retention_message_id","messages","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_message_group"]},"application_id":{"type":"string","description":"Application ID"},"name":{"type":"string","description":"Display name"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment: 'sandbox' for testing, 'production' for live"},"default_retention_message_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}]},"messages":{"type":"array","items":{"type":"object","required":["id","object","application_id","message_group_id","name","environment","locale","apple_message_identifier","apple_message_state","apple_upload_state","apple_upload_attempt_count","apple_upload_last_error","apple_uploaded_at","header","body","alt_text","image_identifier","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_message"],"description":"Object type, always `retention_message`"},"application_id":{"type":"string","description":"Application ID"},"message_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical message group ID, or null for legacy/standalone messages"},"name":{"type":"string","description":"Display name of the retention message"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment this message belongs to"},"locale":{"type":"string","description":"BCP-47 locale code (e.g. `en-US`)"},"apple_message_identifier":{"type":"string","description":"Current Apple message identifier"},"apple_message_state":{"type":"string","enum":["PENDING","APPROVED","REJECTED","UNKNOWN"],"description":"Raw Apple review state for this message identifier"},"apple_upload_state":{"type":"string","enum":["not_uploaded","uploading","uploaded","failed"],"description":"Superwall-to-Apple upload state"},"apple_upload_attempt_count":{"type":"number"},"apple_upload_last_error":{"anyOf":[{"type":"string"},{"type":"null"}]},"apple_uploaded_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"header":{"type":"string","description":"Message header text"},"body":{"type":"string","description":"Message body text"},"alt_text":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Image alt text, or null"},"image_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple image identifier (pre-uploaded), or null"},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false},"default_messages":{"type":"array","items":{"type":"object","required":["id","object","application_id","default_message_group_id","environment","product_id","locale","retention_message_id","message_name","apple_message_identifier","apple_sync_state","apple_sync_attempt_count","apple_sync_last_error","apple_synced_at","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_default_message"],"description":"Object type, always `retention_default_message`"},"application_id":{"type":"string","description":"Application ID"},"default_message_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical default mapping group ID, or null for legacy/standalone mappings"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Environment this default message mapping applies to"},"product_id":{"type":"string","description":"Apple product ID"},"locale":{"type":"string","description":"Locale code for this mapping"},"retention_message_id":{"type":"integer","description":"Linked retention message ID","title":"int"},"message_name":{"type":"string","description":"Linked retention message name"},"apple_message_identifier":{"type":"string","description":"Apple message identifier configured for this default mapping"},"apple_sync_state":{"type":"string","enum":["not_synced","syncing","synced","failed"],"description":"Apple default-message sync state"},"apple_sync_attempt_count":{"type":"number"},"apple_sync_last_error":{"anyOf":[{"type":"string"},{"type":"null"}]},"apple_synced_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Creates desired product/locale default-message rows resolved from a message group without syncing them to Apple.","summary":"Create Retention Default Message Group","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id","name","message_group_id","product_ids","locales"],"properties":{"application_id":{"type":"string","description":"Application ID to create default mappings for"},"name":{"type":"string","description":"Display name of the default mapping group","title":"maxLength(256)","minLength":1,"maxLength":256},"environment":{"type":"string","enum":["sandbox","production"],"description":"Environment for these default mappings"},"message_group_id":{"type":"integer","description":"Message group to resolve per-locale variants from","title":"int"},"product_ids":{"type":"array","items":{"type":"string","description":"a string at most 256 character(s) long","title":"maxLength(256)","minLength":1,"maxLength":256},"description":"Apple product IDs","title":"minItems(1)","minItems":1},"locales":{"type":"array","items":{"type":"string","description":"a string at most 32 character(s) long","title":"maxLength(32)","minLength":1,"maxLength":32},"description":"Exact Apple locale short codes","title":"minItems(1)","minItems":1},"replace_existing":{"type":"boolean"}},"additionalProperties":false}}},"required":true}}},"/v2/retention-default-messages/groups/{id}/sync":{"post":{"tags":["Retention Default Messages V2"],"operationId":"retentionDefaultMessagesV2.syncRetentionDefaultMessageGroup","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Retention default message group ID"},"required":true,"description":"Retention default message group ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","name","environment","message_group_id","message_group","default_messages","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_default_message_group"]},"application_id":{"type":"string","description":"Application ID"},"name":{"type":"string","description":"Display name"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment: 'sandbox' for testing, 'production' for live"},"message_group_id":{"type":"integer","description":"an integer","title":"int"},"message_group":{"type":"object","required":["id","object","application_id","name","environment","default_retention_message_id","messages","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_message_group"]},"application_id":{"type":"string","description":"Application ID"},"name":{"type":"string","description":"Display name"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment: 'sandbox' for testing, 'production' for live"},"default_retention_message_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}]},"messages":{"type":"array","items":{"type":"object","required":["id","object","application_id","message_group_id","name","environment","locale","apple_message_identifier","apple_message_state","apple_upload_state","apple_upload_attempt_count","apple_upload_last_error","apple_uploaded_at","header","body","alt_text","image_identifier","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_message"],"description":"Object type, always `retention_message`"},"application_id":{"type":"string","description":"Application ID"},"message_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical message group ID, or null for legacy/standalone messages"},"name":{"type":"string","description":"Display name of the retention message"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment this message belongs to"},"locale":{"type":"string","description":"BCP-47 locale code (e.g. `en-US`)"},"apple_message_identifier":{"type":"string","description":"Current Apple message identifier"},"apple_message_state":{"type":"string","enum":["PENDING","APPROVED","REJECTED","UNKNOWN"],"description":"Raw Apple review state for this message identifier"},"apple_upload_state":{"type":"string","enum":["not_uploaded","uploading","uploaded","failed"],"description":"Superwall-to-Apple upload state"},"apple_upload_attempt_count":{"type":"number"},"apple_upload_last_error":{"anyOf":[{"type":"string"},{"type":"null"}]},"apple_uploaded_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"header":{"type":"string","description":"Message header text"},"body":{"type":"string","description":"Message body text"},"alt_text":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Image alt text, or null"},"image_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple image identifier (pre-uploaded), or null"},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false},"default_messages":{"type":"array","items":{"type":"object","required":["id","object","application_id","default_message_group_id","environment","product_id","locale","retention_message_id","message_name","apple_message_identifier","apple_sync_state","apple_sync_attempt_count","apple_sync_last_error","apple_synced_at","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_default_message"],"description":"Object type, always `retention_default_message`"},"application_id":{"type":"string","description":"Application ID"},"default_message_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical default mapping group ID, or null for legacy/standalone mappings"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Environment this default message mapping applies to"},"product_id":{"type":"string","description":"Apple product ID"},"locale":{"type":"string","description":"Locale code for this mapping"},"retention_message_id":{"type":"integer","description":"Linked retention message ID","title":"int"},"message_name":{"type":"string","description":"Linked retention message name"},"apple_message_identifier":{"type":"string","description":"Apple message identifier configured for this default mapping"},"apple_sync_state":{"type":"string","enum":["not_synced","syncing","synced","failed"],"description":"Apple default-message sync state"},"apple_sync_attempt_count":{"type":"number"},"apple_sync_last_error":{"anyOf":[{"type":"string"},{"type":"null"}]},"apple_synced_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}},"502":{"description":"The upstream retention provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RetentionProviderError"]}},"additionalProperties":false,"description":"The upstream retention provider request failed","title":"Retention Provider Error"}}}}},"description":"Configures not-yet-synced or failed product/locale default mappings in Apple. Provider failures for individual mappings are persisted on the affected rows and returned in the response so clients can show partial success and allow retry.","summary":"Sync Retention Default Message Group"}},"/v2/retention-default-messages/groups/{id}":{"patch":{"tags":["Retention Default Messages V2"],"operationId":"retentionDefaultMessagesV2.updateRetentionDefaultMessageGroup","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Retention default message group ID"},"required":true,"description":"Retention default message group ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","name","environment","message_group_id","message_group","default_messages","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_default_message_group"]},"application_id":{"type":"string","description":"Application ID"},"name":{"type":"string","description":"Display name"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment: 'sandbox' for testing, 'production' for live"},"message_group_id":{"type":"integer","description":"an integer","title":"int"},"message_group":{"type":"object","required":["id","object","application_id","name","environment","default_retention_message_id","messages","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_message_group"]},"application_id":{"type":"string","description":"Application ID"},"name":{"type":"string","description":"Display name"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment: 'sandbox' for testing, 'production' for live"},"default_retention_message_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}]},"messages":{"type":"array","items":{"type":"object","required":["id","object","application_id","message_group_id","name","environment","locale","apple_message_identifier","apple_message_state","apple_upload_state","apple_upload_attempt_count","apple_upload_last_error","apple_uploaded_at","header","body","alt_text","image_identifier","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_message"],"description":"Object type, always `retention_message`"},"application_id":{"type":"string","description":"Application ID"},"message_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical message group ID, or null for legacy/standalone messages"},"name":{"type":"string","description":"Display name of the retention message"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment this message belongs to"},"locale":{"type":"string","description":"BCP-47 locale code (e.g. `en-US`)"},"apple_message_identifier":{"type":"string","description":"Current Apple message identifier"},"apple_message_state":{"type":"string","enum":["PENDING","APPROVED","REJECTED","UNKNOWN"],"description":"Raw Apple review state for this message identifier"},"apple_upload_state":{"type":"string","enum":["not_uploaded","uploading","uploaded","failed"],"description":"Superwall-to-Apple upload state"},"apple_upload_attempt_count":{"type":"number"},"apple_upload_last_error":{"anyOf":[{"type":"string"},{"type":"null"}]},"apple_uploaded_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"header":{"type":"string","description":"Message header text"},"body":{"type":"string","description":"Message body text"},"alt_text":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Image alt text, or null"},"image_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple image identifier (pre-uploaded), or null"},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false},"default_messages":{"type":"array","items":{"type":"object","required":["id","object","application_id","default_message_group_id","environment","product_id","locale","retention_message_id","message_name","apple_message_identifier","apple_sync_state","apple_sync_attempt_count","apple_sync_last_error","apple_synced_at","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_default_message"],"description":"Object type, always `retention_default_message`"},"application_id":{"type":"string","description":"Application ID"},"default_message_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical default mapping group ID, or null for legacy/standalone mappings"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Environment this default message mapping applies to"},"product_id":{"type":"string","description":"Apple product ID"},"locale":{"type":"string","description":"Locale code for this mapping"},"retention_message_id":{"type":"integer","description":"Linked retention message ID","title":"int"},"message_name":{"type":"string","description":"Linked retention message name"},"apple_message_identifier":{"type":"string","description":"Apple message identifier configured for this default mapping"},"apple_sync_state":{"type":"string","enum":["not_synced","syncing","synced","failed"],"description":"Apple default-message sync state"},"apple_sync_attempt_count":{"type":"number"},"apple_sync_last_error":{"anyOf":[{"type":"string"},{"type":"null"}]},"apple_synced_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Renames a logical default mapping group and updates its desired product/locale rows. Added mappings are configured in Apple and removed mappings are deleted from Apple before the local group is updated. The sync endpoint is used to retry failed mappings.","summary":"Update Retention Default Message Group","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"Display name of the default mapping group"},"product_ids":{"type":"array","items":{"type":"string","description":"a string at most 256 character(s) long","title":"maxLength(256)","minLength":1,"maxLength":256},"description":"Full desired Apple product ID set for the group","title":"minItems(1)","minItems":1},"locales":{"type":"array","items":{"type":"string","description":"a string at most 32 character(s) long","title":"maxLength(32)","minLength":1,"maxLength":32},"description":"Full desired exact Apple locale short code set","title":"minItems(1)","minItems":1}},"additionalProperties":false}}},"required":true}},"delete":{"tags":["Retention Default Messages V2"],"operationId":"retentionDefaultMessagesV2.deleteRetentionDefaultMessageGroup","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Retention default message group ID"},"required":true,"description":"Retention default message group ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","deleted"],"properties":{"id":{"type":"integer","description":"ID of the deleted default mapping group","title":"int"},"object":{"type":"string","enum":["retention_default_message_group"]},"deleted":{"type":"boolean","enum":[true]}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}},"502":{"description":"The upstream retention provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RetentionProviderError"]}},"additionalProperties":false,"description":"The upstream retention provider request failed","title":"Retention Provider Error"}}}}},"description":"Deletes every product/locale default mapping in a logical group from Apple, then removes the group.","summary":"Delete Retention Default Message Group"}},"/v2/retention-default-messages/for-products":{"post":{"tags":["Retention Default Messages V2"],"operationId":"retentionDefaultMessagesV2.createRetentionDefaultMessagesForProducts","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","data"],"properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object","required":["id","object","application_id","default_message_group_id","environment","product_id","locale","retention_message_id","message_name","apple_message_identifier","apple_sync_state","apple_sync_attempt_count","apple_sync_last_error","apple_synced_at","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_default_message"],"description":"Object type, always `retention_default_message`"},"application_id":{"type":"string","description":"Application ID"},"default_message_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical default mapping group ID, or null for legacy/standalone mappings"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Environment this default message mapping applies to"},"product_id":{"type":"string","description":"Apple product ID"},"locale":{"type":"string","description":"Locale code for this mapping"},"retention_message_id":{"type":"integer","description":"Linked retention message ID","title":"int"},"message_name":{"type":"string","description":"Linked retention message name"},"apple_message_identifier":{"type":"string","description":"Apple message identifier configured for this default mapping"},"apple_sync_state":{"type":"string","enum":["not_synced","syncing","synced","failed"],"description":"Apple default-message sync state"},"apple_sync_attempt_count":{"type":"number"},"apple_sync_last_error":{"anyOf":[{"type":"string"},{"type":"null"}]},"apple_synced_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}},"502":{"description":"The upstream retention provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RetentionProviderError"]}},"additionalProperties":false,"description":"The upstream retention provider request failed","title":"Retention Provider Error"}}}}},"description":"Creates or replaces default message mappings for multiple products as one backend workflow. Apple configure calls complete before DB mappings are upserted. Requires retention_messages:write scope.","summary":"Create Retention Default Message Mappings For Products","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id","product_ids","locale","retention_message_id"],"properties":{"application_id":{"type":"string","description":"Application ID to create default mappings for"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Environment for these default mappings"},"product_ids":{"type":"array","items":{"type":"string","description":"a string at most 256 character(s) long","title":"maxLength(256)","minLength":1,"maxLength":256},"description":"Apple product IDs","title":"minItems(1)","minItems":1},"locale":{"type":"string","description":"Locale code","title":"maxLength(32)","minLength":1,"maxLength":32},"retention_message_id":{"type":"integer","description":"Retention message ID used for these default mappings","title":"int"}},"additionalProperties":false}}},"required":true}}},"/v2/retention-default-messages":{"get":{"tags":["Retention Default Messages V2"],"operationId":"retentionDefaultMessagesV2.listRetentionDefaultMessages","parameters":[{"name":"application_id","in":"query","schema":{"type":"string","description":"Application ID to list default message mappings for (required)"},"required":true,"description":"Application ID to list default message mappings for (required)"},{"name":"environment","in":"query","schema":{"type":"string","enum":["sandbox","production"],"description":"Optional environment filter"},"required":false,"description":"Optional environment filter"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","data"],"properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object","required":["id","object","application_id","default_message_group_id","environment","product_id","locale","retention_message_id","message_name","apple_message_identifier","apple_sync_state","apple_sync_attempt_count","apple_sync_last_error","apple_synced_at","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_default_message"],"description":"Object type, always `retention_default_message`"},"application_id":{"type":"string","description":"Application ID"},"default_message_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical default mapping group ID, or null for legacy/standalone mappings"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Environment this default message mapping applies to"},"product_id":{"type":"string","description":"Apple product ID"},"locale":{"type":"string","description":"Locale code for this mapping"},"retention_message_id":{"type":"integer","description":"Linked retention message ID","title":"int"},"message_name":{"type":"string","description":"Linked retention message name"},"apple_message_identifier":{"type":"string","description":"Apple message identifier configured for this default mapping"},"apple_sync_state":{"type":"string","enum":["not_synced","syncing","synced","failed"],"description":"Apple default-message sync state"},"apple_sync_attempt_count":{"type":"number"},"apple_sync_last_error":{"anyOf":[{"type":"string"},{"type":"null"}]},"apple_synced_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"502":{"description":"The upstream retention provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RetentionProviderError"]}},"additionalProperties":false,"description":"The upstream retention provider request failed","title":"Retention Provider Error"}}}}},"description":"Returns retention default message mappings for an application. Requires retention_messages:read scope.","summary":"List Retention Default Message Mappings"},"post":{"tags":["Retention Default Messages V2"],"operationId":"retentionDefaultMessagesV2.createRetentionDefaultMessage","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","default_message_group_id","environment","product_id","locale","retention_message_id","message_name","apple_message_identifier","apple_sync_state","apple_sync_attempt_count","apple_sync_last_error","apple_synced_at","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_default_message"],"description":"Object type, always `retention_default_message`"},"application_id":{"type":"string","description":"Application ID"},"default_message_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical default mapping group ID, or null for legacy/standalone mappings"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Environment this default message mapping applies to"},"product_id":{"type":"string","description":"Apple product ID"},"locale":{"type":"string","description":"Locale code for this mapping"},"retention_message_id":{"type":"integer","description":"Linked retention message ID","title":"int"},"message_name":{"type":"string","description":"Linked retention message name"},"apple_message_identifier":{"type":"string","description":"Apple message identifier configured for this default mapping"},"apple_sync_state":{"type":"string","enum":["not_synced","syncing","synced","failed"],"description":"Apple default-message sync state"},"apple_sync_attempt_count":{"type":"number"},"apple_sync_last_error":{"anyOf":[{"type":"string"},{"type":"null"}]},"apple_synced_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}},"502":{"description":"The upstream retention provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RetentionProviderError"]}},"additionalProperties":false,"description":"The upstream retention provider request failed","title":"Retention Provider Error"}}}}},"description":"Creates or replaces a default message mapping. Apple configure call succeeds first, then DB is upserted. Requires retention_messages:write scope.","summary":"Create Retention Default Message Mapping","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id","product_id","locale","retention_message_id"],"properties":{"application_id":{"type":"string","description":"Application ID to create the default mapping for"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Environment for this default mapping"},"product_id":{"type":"string","description":"Apple product ID","title":"maxLength(256)","minLength":1,"maxLength":256},"locale":{"type":"string","description":"Locale code","title":"maxLength(32)","minLength":1,"maxLength":32},"retention_message_id":{"type":"integer","description":"Retention message ID used for this default mapping","title":"int"}},"additionalProperties":false}}},"required":true}}},"/v2/retention-default-messages/{id}":{"delete":{"tags":["Retention Default Messages V2"],"operationId":"retentionDefaultMessagesV2.deleteRetentionDefaultMessage","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Retention default message ID"},"required":true,"description":"Retention default message ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","deleted"],"properties":{"id":{"type":"integer","description":"ID of the deleted default mapping","title":"int"},"object":{"type":"string","enum":["retention_default_message"]},"deleted":{"type":"boolean","enum":[true]}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}},"502":{"description":"The upstream retention provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RetentionProviderError"]}},"additionalProperties":false,"description":"The upstream retention provider request failed","title":"Retention Provider Error"}}}}},"description":"Deletes a default message mapping. Apple delete is attempted first, then DB row is removed. Requires retention_messages:write scope.","summary":"Delete Retention Default Message Mapping"}},"/v2/retention-configurations":{"get":{"tags":["Retention Configurations V2"],"operationId":"retentionConfigurationsV2.listRetentionConfigurations","parameters":[{"name":"application_id","in":"query","schema":{"type":"string","description":"Application ID to list configurations for (required)"},"required":true,"description":"Application ID to list configurations for (required)"},{"name":"environment","in":"query","schema":{"type":"string","enum":["sandbox","production"],"description":"Optional environment filter"},"required":false,"description":"Optional environment filter"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","data"],"properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object","required":["id","object","application_id","configuration_group_id","name","environment","product_id","locale","type","retention_message_id","alternate_product_id","offer_identifier","offer_product_id","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_configuration"],"description":"Object type, always `retention_configuration`"},"application_id":{"type":"string","description":"Application ID"},"configuration_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical realtime configuration group ID, or null for legacy/standalone rows"},"name":{"type":"string","description":"Display name of the configuration"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Environment this configuration applies to"},"product_id":{"type":"string","description":"Apple product ID"},"locale":{"type":"string","description":"Locale code for this configuration"},"type":{"type":"string","enum":["message","alternate_product","promotional_offer"],"description":"Type of retention offer: message, alternate_product, or promotional_offer"},"retention_message_id":{"type":"integer","description":"ID of the linked retention message","title":"int"},"alternate_product_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Alternate product ID (for alternate_product type)"},"offer_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Promotional offer identifier (for promotional_offer type)"},"offer_product_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Product ID the offer applies to (for promotional_offer type)"},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Returns all retention configurations for the specified application. Requires retention_messages:read scope.","summary":"List Retention Configurations"},"post":{"tags":["Retention Configurations V2"],"operationId":"retentionConfigurationsV2.createRetentionConfiguration","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","configuration_group_id","name","environment","product_id","locale","type","retention_message_id","alternate_product_id","offer_identifier","offer_product_id","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_configuration"],"description":"Object type, always `retention_configuration`"},"application_id":{"type":"string","description":"Application ID"},"configuration_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical realtime configuration group ID, or null for legacy/standalone rows"},"name":{"type":"string","description":"Display name of the configuration"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Environment this configuration applies to"},"product_id":{"type":"string","description":"Apple product ID"},"locale":{"type":"string","description":"Locale code for this configuration"},"type":{"type":"string","enum":["message","alternate_product","promotional_offer"],"description":"Type of retention offer: message, alternate_product, or promotional_offer"},"retention_message_id":{"type":"integer","description":"ID of the linked retention message","title":"int"},"alternate_product_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Alternate product ID (for alternate_product type)"},"offer_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Promotional offer identifier (for promotional_offer type)"},"offer_product_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Product ID the offer applies to (for promotional_offer type)"},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}},"502":{"description":"The upstream retention provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RetentionProviderError"]}},"additionalProperties":false,"description":"The upstream retention provider request failed","title":"Retention Provider Error"}}}}},"description":"Creates a new retention configuration for worker routing. Apple and App Store Connect may be queried for validation, but no Apple-side configuration is written. Requires retention_messages:write scope.","summary":"Create Retention Configuration","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id","name","product_id","locale","type","retention_message_id"],"properties":{"application_id":{"type":"string","description":"Application ID to create the configuration for"},"name":{"type":"string","description":"Display name of the configuration","title":"maxLength(256)","minLength":1,"maxLength":256},"environment":{"type":"string","enum":["sandbox","production"],"description":"Environment for this configuration (defaults to production if omitted)"},"product_id":{"type":"string","description":"Apple product ID","title":"maxLength(256)","minLength":1,"maxLength":256},"locale":{"type":"string","description":"Locale code for this configuration","title":"maxLength(32)","minLength":1,"maxLength":32},"type":{"type":"string","enum":["message","alternate_product","promotional_offer"],"description":"Type of retention offer: message, alternate_product, or promotional_offer"},"retention_message_id":{"type":"integer","description":"ID of the retention message to use","title":"int"},"alternate_product_id":{"type":"string","description":"Alternate product ID (required for alternate_product type)"},"offer_identifier":{"type":"string","description":"Promotional offer identifier (required for promotional_offer type)"},"offer_product_id":{"type":"string","description":"Product ID the offer applies to (required for promotional_offer type)"}},"additionalProperties":false}}},"required":true}}},"/v2/retention-configurations/groups":{"get":{"tags":["Retention Configurations V2"],"operationId":"retentionConfigurationsV2.listRetentionConfigurationGroups","parameters":[{"name":"application_id","in":"query","schema":{"type":"string","description":"Application ID to list configurations for (required)"},"required":true,"description":"Application ID to list configurations for (required)"},{"name":"environment","in":"query","schema":{"type":"string","enum":["sandbox","production"],"description":"Optional environment filter"},"required":false,"description":"Optional environment filter"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","data"],"properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object","required":["id","object","application_id","name","environment","message_group_id","message_group","type","alternate_product_id","offer_identifier","offer_product_id","configurations","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_configuration_group"]},"application_id":{"type":"string","description":"Application ID"},"name":{"type":"string","description":"Display name"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment: 'sandbox' for testing, 'production' for live"},"message_group_id":{"type":"integer","description":"an integer","title":"int"},"message_group":{"type":"object","required":["id","object","application_id","name","environment","default_retention_message_id","messages","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_message_group"]},"application_id":{"type":"string","description":"Application ID"},"name":{"type":"string","description":"Display name"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment: 'sandbox' for testing, 'production' for live"},"default_retention_message_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}]},"messages":{"type":"array","items":{"type":"object","required":["id","object","application_id","message_group_id","name","environment","locale","apple_message_identifier","apple_message_state","apple_upload_state","apple_upload_attempt_count","apple_upload_last_error","apple_uploaded_at","header","body","alt_text","image_identifier","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_message"],"description":"Object type, always `retention_message`"},"application_id":{"type":"string","description":"Application ID"},"message_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical message group ID, or null for legacy/standalone messages"},"name":{"type":"string","description":"Display name of the retention message"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment this message belongs to"},"locale":{"type":"string","description":"BCP-47 locale code (e.g. `en-US`)"},"apple_message_identifier":{"type":"string","description":"Current Apple message identifier"},"apple_message_state":{"type":"string","enum":["PENDING","APPROVED","REJECTED","UNKNOWN"],"description":"Raw Apple review state for this message identifier"},"apple_upload_state":{"type":"string","enum":["not_uploaded","uploading","uploaded","failed"],"description":"Superwall-to-Apple upload state"},"apple_upload_attempt_count":{"type":"number"},"apple_upload_last_error":{"anyOf":[{"type":"string"},{"type":"null"}]},"apple_uploaded_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"header":{"type":"string","description":"Message header text"},"body":{"type":"string","description":"Message body text"},"alt_text":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Image alt text, or null"},"image_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple image identifier (pre-uploaded), or null"},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false},"type":{"type":"string","enum":["message","alternate_product","promotional_offer"],"description":"Type of retention offer: message, alternate_product, or promotional_offer"},"alternate_product_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"offer_identifier":{"anyOf":[{"type":"string"},{"type":"null"}]},"offer_product_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"configurations":{"type":"array","items":{"type":"object","required":["id","object","application_id","configuration_group_id","name","environment","product_id","locale","type","retention_message_id","alternate_product_id","offer_identifier","offer_product_id","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_configuration"],"description":"Object type, always `retention_configuration`"},"application_id":{"type":"string","description":"Application ID"},"configuration_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical realtime configuration group ID, or null for legacy/standalone rows"},"name":{"type":"string","description":"Display name of the configuration"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Environment this configuration applies to"},"product_id":{"type":"string","description":"Apple product ID"},"locale":{"type":"string","description":"Locale code for this configuration"},"type":{"type":"string","enum":["message","alternate_product","promotional_offer"],"description":"Type of retention offer: message, alternate_product, or promotional_offer"},"retention_message_id":{"type":"integer","description":"ID of the linked retention message","title":"int"},"alternate_product_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Alternate product ID (for alternate_product type)"},"offer_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Promotional offer identifier (for promotional_offer type)"},"offer_product_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Product ID the offer applies to (for promotional_offer type)"},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Returns logical realtime configuration groups and their product/locale child rows.","summary":"List Retention Configuration Groups"},"post":{"tags":["Retention Configurations V2"],"operationId":"retentionConfigurationsV2.createRetentionConfigurationGroup","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","name","environment","message_group_id","message_group","type","alternate_product_id","offer_identifier","offer_product_id","configurations","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_configuration_group"]},"application_id":{"type":"string","description":"Application ID"},"name":{"type":"string","description":"Display name"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment: 'sandbox' for testing, 'production' for live"},"message_group_id":{"type":"integer","description":"an integer","title":"int"},"message_group":{"type":"object","required":["id","object","application_id","name","environment","default_retention_message_id","messages","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_message_group"]},"application_id":{"type":"string","description":"Application ID"},"name":{"type":"string","description":"Display name"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment: 'sandbox' for testing, 'production' for live"},"default_retention_message_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}]},"messages":{"type":"array","items":{"type":"object","required":["id","object","application_id","message_group_id","name","environment","locale","apple_message_identifier","apple_message_state","apple_upload_state","apple_upload_attempt_count","apple_upload_last_error","apple_uploaded_at","header","body","alt_text","image_identifier","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_message"],"description":"Object type, always `retention_message`"},"application_id":{"type":"string","description":"Application ID"},"message_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical message group ID, or null for legacy/standalone messages"},"name":{"type":"string","description":"Display name of the retention message"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment this message belongs to"},"locale":{"type":"string","description":"BCP-47 locale code (e.g. `en-US`)"},"apple_message_identifier":{"type":"string","description":"Current Apple message identifier"},"apple_message_state":{"type":"string","enum":["PENDING","APPROVED","REJECTED","UNKNOWN"],"description":"Raw Apple review state for this message identifier"},"apple_upload_state":{"type":"string","enum":["not_uploaded","uploading","uploaded","failed"],"description":"Superwall-to-Apple upload state"},"apple_upload_attempt_count":{"type":"number"},"apple_upload_last_error":{"anyOf":[{"type":"string"},{"type":"null"}]},"apple_uploaded_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"header":{"type":"string","description":"Message header text"},"body":{"type":"string","description":"Message body text"},"alt_text":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Image alt text, or null"},"image_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple image identifier (pre-uploaded), or null"},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false},"type":{"type":"string","enum":["message","alternate_product","promotional_offer"],"description":"Type of retention offer: message, alternate_product, or promotional_offer"},"alternate_product_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"offer_identifier":{"anyOf":[{"type":"string"},{"type":"null"}]},"offer_product_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"configurations":{"type":"array","items":{"type":"object","required":["id","object","application_id","configuration_group_id","name","environment","product_id","locale","type","retention_message_id","alternate_product_id","offer_identifier","offer_product_id","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_configuration"],"description":"Object type, always `retention_configuration`"},"application_id":{"type":"string","description":"Application ID"},"configuration_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical realtime configuration group ID, or null for legacy/standalone rows"},"name":{"type":"string","description":"Display name of the configuration"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Environment this configuration applies to"},"product_id":{"type":"string","description":"Apple product ID"},"locale":{"type":"string","description":"Locale code for this configuration"},"type":{"type":"string","enum":["message","alternate_product","promotional_offer"],"description":"Type of retention offer: message, alternate_product, or promotional_offer"},"retention_message_id":{"type":"integer","description":"ID of the linked retention message","title":"int"},"alternate_product_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Alternate product ID (for alternate_product type)"},"offer_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Promotional offer identifier (for promotional_offer type)"},"offer_product_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Product ID the offer applies to (for promotional_offer type)"},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}},"502":{"description":"The upstream retention provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RetentionProviderError"]}},"additionalProperties":false,"description":"The upstream retention provider request failed","title":"Retention Provider Error"}}}}},"description":"Creates realtime configurations for multiple products and locales as one backend workflow.","summary":"Create Retention Configuration Group","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id","name","message_group_id","product_ids","locales","type"],"properties":{"application_id":{"type":"string","description":"Application ID to create configurations for"},"name":{"type":"string","description":"Display name of the configuration group","title":"maxLength(256)","minLength":1,"maxLength":256},"environment":{"type":"string","enum":["sandbox","production"],"description":"Environment for these configurations (defaults to production if omitted)"},"message_group_id":{"type":"integer","description":"Message group to resolve per-locale variants from","title":"int"},"product_ids":{"type":"array","items":{"type":"string","description":"a string at most 256 character(s) long","title":"maxLength(256)","minLength":1,"maxLength":256},"description":"Apple product IDs","title":"minItems(1)","minItems":1},"locales":{"type":"array","items":{"type":"string","description":"a string at most 32 character(s) long","title":"maxLength(32)","minLength":1,"maxLength":32},"description":"Exact runtime locale codes","title":"minItems(1)","minItems":1},"type":{"type":"string","enum":["message","alternate_product","promotional_offer"],"description":"Type of retention offer: message, alternate_product, or promotional_offer"},"alternate_product_id":{"type":"string","description":"Alternate product ID (required for alternate_product type)"},"offer_identifier":{"type":"string","description":"Promotional offer identifier (required for promotional_offer type)"},"offer_product_id":{"type":"string","description":"Product ID the offer applies to (required for promotional_offer type)"}},"additionalProperties":false}}},"required":true}}},"/v2/retention-configurations/promotional-offers":{"get":{"tags":["Retention Configurations V2"],"operationId":"retentionConfigurationsV2.listRetentionPromotionalOfferOptions","parameters":[{"name":"application_id","in":"query","schema":{"type":"string","description":"Application ID to load promotional offers for"},"required":true,"description":"Application ID to load promotional offers for"},{"name":"offer_product_id","in":"query","schema":{"type":"string","description":"Subscription product ID the promotional offer applies to","title":"maxLength(256)","minLength":1,"maxLength":256},"required":true,"description":"Subscription product ID the promotional offer applies to"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","data"],"properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object","required":["object","offer_identifier","name","duration","offer_mode","number_of_periods"],"properties":{"object":{"type":"string","enum":["retention_promotional_offer_option"],"description":"Object type, always `retention_promotional_offer_option`"},"offer_identifier":{"type":"string","description":"Promotional offer identifier from App Store Connect"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Promotional offer display name in App Store Connect"},"duration":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Promotional offer duration enum from App Store Connect"},"offer_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Promotional offer mode enum from App Store Connect"},"number_of_periods":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Number of billing periods configured for the offer"}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}},"502":{"description":"The upstream retention provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RetentionProviderError"]}},"additionalProperties":false,"description":"The upstream retention provider request failed","title":"Retention Provider Error"}}}}},"description":"Returns App Store Connect promotional offers for the specified offer product. Requires retention_messages:read scope.","summary":"List Promotional Offer Options"}},"/v2/retention-configurations/subscription-groups":{"get":{"tags":["Retention Configurations V2"],"operationId":"retentionConfigurationsV2.getRetentionSubscriptionGroupMap","parameters":[{"name":"application_id","in":"query","schema":{"type":"string","description":"Application ID to load subscription groups for"},"required":true,"description":"Application ID to load subscription groups for"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["status","product_group_map"],"properties":{"status":{"type":"string","enum":["success","asc_not_configured","missing_app_id","api_error"]},"product_group_map":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"object","required":["group_id","group_name"],"properties":{"group_id":{"type":"string"},"group_name":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns App Store Connect subscription group metadata keyed by product identifier. Requires retention_messages:read scope.","summary":"Get Retention Subscription Group Map"}},"/v2/retention-configurations/groups/{id}":{"delete":{"tags":["Retention Configurations V2"],"operationId":"retentionConfigurationsV2.deleteRetentionConfigurationGroup","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Retention configuration group ID"},"required":true,"description":"Retention configuration group ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","deleted"],"properties":{"id":{"type":"integer","description":"ID of the deleted realtime configuration group","title":"int"},"object":{"type":"string","enum":["retention_configuration_group"]},"deleted":{"type":"boolean","enum":[true]}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Deletes every realtime configuration row in a logical group.","summary":"Delete Retention Configuration Group"},"patch":{"tags":["Retention Configurations V2"],"operationId":"retentionConfigurationsV2.updateRetentionConfigurationGroup","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Retention configuration group ID"},"required":true,"description":"Retention configuration group ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","name","environment","message_group_id","message_group","type","alternate_product_id","offer_identifier","offer_product_id","configurations","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_configuration_group"]},"application_id":{"type":"string","description":"Application ID"},"name":{"type":"string","description":"Display name"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment: 'sandbox' for testing, 'production' for live"},"message_group_id":{"type":"integer","description":"an integer","title":"int"},"message_group":{"type":"object","required":["id","object","application_id","name","environment","default_retention_message_id","messages","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_message_group"]},"application_id":{"type":"string","description":"Application ID"},"name":{"type":"string","description":"Display name"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment: 'sandbox' for testing, 'production' for live"},"default_retention_message_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}]},"messages":{"type":"array","items":{"type":"object","required":["id","object","application_id","message_group_id","name","environment","locale","apple_message_identifier","apple_message_state","apple_upload_state","apple_upload_attempt_count","apple_upload_last_error","apple_uploaded_at","header","body","alt_text","image_identifier","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_message"],"description":"Object type, always `retention_message`"},"application_id":{"type":"string","description":"Application ID"},"message_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical message group ID, or null for legacy/standalone messages"},"name":{"type":"string","description":"Display name of the retention message"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment this message belongs to"},"locale":{"type":"string","description":"BCP-47 locale code (e.g. `en-US`)"},"apple_message_identifier":{"type":"string","description":"Current Apple message identifier"},"apple_message_state":{"type":"string","enum":["PENDING","APPROVED","REJECTED","UNKNOWN"],"description":"Raw Apple review state for this message identifier"},"apple_upload_state":{"type":"string","enum":["not_uploaded","uploading","uploaded","failed"],"description":"Superwall-to-Apple upload state"},"apple_upload_attempt_count":{"type":"number"},"apple_upload_last_error":{"anyOf":[{"type":"string"},{"type":"null"}]},"apple_uploaded_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"header":{"type":"string","description":"Message header text"},"body":{"type":"string","description":"Message body text"},"alt_text":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Image alt text, or null"},"image_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Apple image identifier (pre-uploaded), or null"},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false},"type":{"type":"string","enum":["message","alternate_product","promotional_offer"],"description":"Type of retention offer: message, alternate_product, or promotional_offer"},"alternate_product_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"offer_identifier":{"anyOf":[{"type":"string"},{"type":"null"}]},"offer_product_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"configurations":{"type":"array","items":{"type":"object","required":["id","object","application_id","configuration_group_id","name","environment","product_id","locale","type","retention_message_id","alternate_product_id","offer_identifier","offer_product_id","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_configuration"],"description":"Object type, always `retention_configuration`"},"application_id":{"type":"string","description":"Application ID"},"configuration_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical realtime configuration group ID, or null for legacy/standalone rows"},"name":{"type":"string","description":"Display name of the configuration"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Environment this configuration applies to"},"product_id":{"type":"string","description":"Apple product ID"},"locale":{"type":"string","description":"Locale code for this configuration"},"type":{"type":"string","enum":["message","alternate_product","promotional_offer"],"description":"Type of retention offer: message, alternate_product, or promotional_offer"},"retention_message_id":{"type":"integer","description":"ID of the linked retention message","title":"int"},"alternate_product_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Alternate product ID (for alternate_product type)"},"offer_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Promotional offer identifier (for promotional_offer type)"},"offer_product_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Product ID the offer applies to (for promotional_offer type)"},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}},"502":{"description":"The upstream retention provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RetentionProviderError"]}},"additionalProperties":false,"description":"The upstream retention provider request failed","title":"Retention Provider Error"}}}}},"description":"Updates realtime configuration group metadata and, when product_ids or locales are provided, atomically replaces the group's product/locale configuration rows.","summary":"Update Retention Configuration Group","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"Display name of the configuration group"},"message_group_id":{"type":"integer","description":"Message group to resolve per-locale variants from","title":"int"},"product_ids":{"type":"array","items":{"type":"string","description":"a string at most 256 character(s) long","title":"maxLength(256)","minLength":1,"maxLength":256},"description":"Full replacement set of Apple product IDs","title":"minItems(1)","minItems":1},"locales":{"type":"array","items":{"type":"string","description":"a string at most 32 character(s) long","title":"maxLength(32)","minLength":1,"maxLength":32},"description":"Full replacement set of exact runtime locale codes","title":"minItems(1)","minItems":1},"type":{"type":"string","enum":["message","alternate_product","promotional_offer"],"description":"Type of retention offer"},"alternate_product_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Alternate product ID"},"offer_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Promotional offer identifier"},"offer_product_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Product ID the offer applies to"}},"additionalProperties":false}}},"required":true}}},"/v2/retention-configurations/for-products":{"post":{"tags":["Retention Configurations V2"],"operationId":"retentionConfigurationsV2.createRetentionConfigurationsForProducts","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","data"],"properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object","required":["id","object","application_id","configuration_group_id","name","environment","product_id","locale","type","retention_message_id","alternate_product_id","offer_identifier","offer_product_id","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_configuration"],"description":"Object type, always `retention_configuration`"},"application_id":{"type":"string","description":"Application ID"},"configuration_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical realtime configuration group ID, or null for legacy/standalone rows"},"name":{"type":"string","description":"Display name of the configuration"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Environment this configuration applies to"},"product_id":{"type":"string","description":"Apple product ID"},"locale":{"type":"string","description":"Locale code for this configuration"},"type":{"type":"string","enum":["message","alternate_product","promotional_offer"],"description":"Type of retention offer: message, alternate_product, or promotional_offer"},"retention_message_id":{"type":"integer","description":"ID of the linked retention message","title":"int"},"alternate_product_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Alternate product ID (for alternate_product type)"},"offer_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Promotional offer identifier (for promotional_offer type)"},"offer_product_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Product ID the offer applies to (for promotional_offer type)"},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}},"502":{"description":"The upstream retention provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RetentionProviderError"]}},"additionalProperties":false,"description":"The upstream retention provider request failed","title":"Retention Provider Error"}}}}},"description":"Creates retention configurations for multiple products as one backend workflow. Requires retention_messages:write scope.","summary":"Create Retention Configurations For Products","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id","name","product_ids","locale","type","retention_message_id"],"properties":{"application_id":{"type":"string","description":"Application ID to create configurations for"},"name":{"type":"string","description":"Display name of the configurations","title":"maxLength(256)","minLength":1,"maxLength":256},"environment":{"type":"string","enum":["sandbox","production"],"description":"Environment for these configurations (defaults to production if omitted)"},"product_ids":{"type":"array","items":{"type":"string","description":"a string at most 256 character(s) long","title":"maxLength(256)","minLength":1,"maxLength":256},"description":"Apple product IDs","title":"minItems(1)","minItems":1},"locale":{"type":"string","description":"Locale code for these configurations","title":"maxLength(32)","minLength":1,"maxLength":32},"type":{"type":"string","enum":["message","alternate_product","promotional_offer"],"description":"Type of retention offer: message, alternate_product, or promotional_offer"},"retention_message_id":{"type":"integer","description":"ID of the retention message to use","title":"int"},"alternate_product_id":{"type":"string","description":"Alternate product ID (required for alternate_product type)"},"offer_identifier":{"type":"string","description":"Promotional offer identifier (required for promotional_offer type)"},"offer_product_id":{"type":"string","description":"Product ID the offer applies to (required for promotional_offer type)"}},"additionalProperties":false}}},"required":true}}},"/v2/retention-configurations/{id}":{"get":{"tags":["Retention Configurations V2"],"operationId":"retentionConfigurationsV2.retrieveRetentionConfiguration","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Retention configuration ID"},"required":true,"description":"Retention configuration ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","configuration_group_id","name","environment","product_id","locale","type","retention_message_id","alternate_product_id","offer_identifier","offer_product_id","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_configuration"],"description":"Object type, always `retention_configuration`"},"application_id":{"type":"string","description":"Application ID"},"configuration_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical realtime configuration group ID, or null for legacy/standalone rows"},"name":{"type":"string","description":"Display name of the configuration"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Environment this configuration applies to"},"product_id":{"type":"string","description":"Apple product ID"},"locale":{"type":"string","description":"Locale code for this configuration"},"type":{"type":"string","enum":["message","alternate_product","promotional_offer"],"description":"Type of retention offer: message, alternate_product, or promotional_offer"},"retention_message_id":{"type":"integer","description":"ID of the linked retention message","title":"int"},"alternate_product_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Alternate product ID (for alternate_product type)"},"offer_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Promotional offer identifier (for promotional_offer type)"},"offer_product_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Product ID the offer applies to (for promotional_offer type)"},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Retrieves a retention configuration by ID. Requires retention_messages:read scope.","summary":"Retrieve Retention Configuration"},"patch":{"tags":["Retention Configurations V2"],"operationId":"retentionConfigurationsV2.updateRetentionConfiguration","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Retention configuration ID"},"required":true,"description":"Retention configuration ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","configuration_group_id","name","environment","product_id","locale","type","retention_message_id","alternate_product_id","offer_identifier","offer_product_id","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier"},"object":{"type":"string","enum":["retention_configuration"],"description":"Object type, always `retention_configuration`"},"application_id":{"type":"string","description":"Application ID"},"configuration_group_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Logical realtime configuration group ID, or null for legacy/standalone rows"},"name":{"type":"string","description":"Display name of the configuration"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Environment this configuration applies to"},"product_id":{"type":"string","description":"Apple product ID"},"locale":{"type":"string","description":"Locale code for this configuration"},"type":{"type":"string","enum":["message","alternate_product","promotional_offer"],"description":"Type of retention offer: message, alternate_product, or promotional_offer"},"retention_message_id":{"type":"integer","description":"ID of the linked retention message","title":"int"},"alternate_product_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Alternate product ID (for alternate_product type)"},"offer_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Promotional offer identifier (for promotional_offer type)"},"offer_product_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Product ID the offer applies to (for promotional_offer type)"},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}},"502":{"description":"The upstream retention provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RetentionProviderError"]}},"additionalProperties":false,"description":"The upstream retention provider request failed","title":"Retention Provider Error"}}}}},"description":"Updates a retention configuration in Superwall. Apple and App Store Connect may be queried for validation, but no Apple-side configuration is written. Requires retention_messages:write scope.","summary":"Update Retention Configuration","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"Display name","title":"maxLength(256)","minLength":1,"maxLength":256},"type":{"type":"string","enum":["message","alternate_product","promotional_offer"],"description":"Type of retention offer"},"retention_message_id":{"type":"integer","description":"ID of the retention message to use","title":"int"},"alternate_product_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Alternate product ID"},"offer_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Promotional offer identifier"},"offer_product_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Product ID the offer applies to"}},"additionalProperties":false}}},"required":true}},"delete":{"tags":["Retention Configurations V2"],"operationId":"retentionConfigurationsV2.deleteRetentionConfiguration","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Retention configuration ID"},"required":true,"description":"Retention configuration ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","deleted"],"properties":{"id":{"type":"integer","description":"ID of the deleted configuration","title":"int"},"object":{"type":"string","enum":["retention_configuration"]},"deleted":{"type":"boolean","enum":[true]}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A required post-operation side effect failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["operation","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/SideEffectExecutionError"]}},"additionalProperties":false,"description":"A required post-operation side effect failed","title":"Side Effect Execution Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"description":"Deletes a retention configuration. Requires retention_messages:write scope.","summary":"Delete Retention Configuration"}},"/v2/retention-onboarding/status":{"get":{"tags":["Retention Messaging Onboarding V2"],"operationId":"retentionOnboardingV2.getRetentionOnboardingStatus","parameters":[{"name":"application_id","in":"query","schema":{"type":"string","description":"Application ID to inspect for retention messaging onboarding"},"required":true,"description":"Application ID to inspect for retention messaging onboarding"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","application_id","callback_url","expected_realtime_url","docs_url","apple_access_url","has_in_app_purchase_configuration","has_app_store_connect_configuration","has_app_store_app_id","has_retention_rows"],"properties":{"object":{"type":"string","enum":["retention_onboarding_status"]},"application_id":{"type":"string","description":"a string to be decoded into a number"},"callback_url":{"type":"string"},"expected_realtime_url":{"type":"string"},"docs_url":{"type":"string"},"apple_access_url":{"type":"string"},"has_in_app_purchase_configuration":{"type":"boolean"},"has_app_store_connect_configuration":{"type":"boolean"},"has_app_store_app_id":{"type":"boolean"},"has_retention_rows":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"summary":"Get Retention Messaging Onboarding Status"}},"/v2/retention-onboarding/apple-access/check":{"post":{"tags":["Retention Messaging Onboarding V2"],"operationId":"retentionOnboardingV2.checkRetentionAppleAccess","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","application_id","status","sandbox_realtime_url","expected_realtime_url","matches_expected","message"],"properties":{"object":{"type":"string","enum":["retention_apple_access_check"]},"application_id":{"type":"string","description":"a string to be decoded into a number"},"status":{"type":"string","enum":["granted","not_granted"]},"sandbox_realtime_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"expected_realtime_url":{"type":"string"},"matches_expected":{"type":"boolean"},"message":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"502":{"description":"The upstream retention provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RetentionProviderError"]}},"additionalProperties":false,"description":"The upstream retention provider request failed","title":"Retention Provider Error"}}}}},"summary":"Check Apple Retention Messaging Access","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id"],"properties":{"application_id":{"type":"string","description":"Application ID for the onboarding action"}},"additionalProperties":false}}},"required":true}}},"/v2/retention-onboarding/sandbox/realtime-url":{"post":{"tags":["Retention Messaging Onboarding V2"],"operationId":"retentionOnboardingV2.configureRetentionSandboxRealtimeUrl","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","application_id","environment","expected_realtime_url","realtime_url","matches_expected"],"properties":{"object":{"type":"string","enum":["retention_realtime_url_result"]},"application_id":{"type":"string","description":"a string to be decoded into a number"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment: 'sandbox' for testing, 'production' for live"},"expected_realtime_url":{"type":"string"},"realtime_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"matches_expected":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"502":{"description":"The upstream retention provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RetentionProviderError"]}},"additionalProperties":false,"description":"The upstream retention provider request failed","title":"Retention Provider Error"}}}}},"summary":"Configure Sandbox Retention Realtime URL","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id"],"properties":{"application_id":{"type":"string","description":"Application ID for the onboarding action"}},"additionalProperties":false}}},"required":true}}},"/v2/retention-onboarding/sandbox/active-subscription":{"post":{"tags":["Retention Messaging Onboarding V2"],"operationId":"retentionOnboardingV2.findRetentionSandboxSubscription","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","application_id","subscription"],"properties":{"object":{"type":"string","enum":["retention_sandbox_subscription_lookup"]},"application_id":{"type":"string","description":"a string to be decoded into a number"},"subscription":{"anyOf":[{"type":"object","required":["original_transaction_id","transaction_id","product_id","app_user_id"],"properties":{"original_transaction_id":{"type":"string"},"transaction_id":{"type":"string"},"product_id":{"type":"string"},"app_user_id":{"type":"string"}},"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"A query against the Superwall database failed","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"operation":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/DatabaseQueryError"]}},"additionalProperties":false,"description":"A query against the Superwall database failed","title":"Database Query Error"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}]}}}}},"summary":"Find Active Sandbox App Store Subscription","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id"],"properties":{"application_id":{"type":"string","description":"Application ID for the onboarding action"}},"additionalProperties":false}}},"required":true}}},"/v2/retention-onboarding/sandbox/performance-test":{"post":{"tags":["Retention Messaging Onboarding V2"],"operationId":"retentionOnboardingV2.startRetentionSandboxPerformanceTest","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","application_id","request_id","config"],"properties":{"object":{"type":"string","enum":["retention_performance_test"]},"application_id":{"type":"string","description":"a string to be decoded into a number"},"request_id":{"type":"string"},"config":{"type":"object","required":["max_concurrent_requests","response_time_threshold","success_rate_threshold","total_duration","total_requests"],"properties":{"max_concurrent_requests":{"type":"number"},"response_time_threshold":{"type":"number"},"success_rate_threshold":{"type":"number"},"total_duration":{"type":"number"},"total_requests":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"502":{"description":"The upstream retention provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RetentionProviderError"]}},"additionalProperties":false,"description":"The upstream retention provider request failed","title":"Retention Provider Error"}}}}},"summary":"Start Sandbox Retention Performance Test","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id","original_transaction_id"],"properties":{"application_id":{"type":"string","description":"a string to be decoded into a number"},"original_transaction_id":{"type":"string","description":"a string at least 1 character(s) long","title":"minLength(1)","minLength":1}},"additionalProperties":false}}},"required":true}}},"/v2/retention-onboarding/sandbox/performance-test/result":{"post":{"tags":["Retention Messaging Onboarding V2"],"operationId":"retentionOnboardingV2.checkRetentionSandboxPerformanceTest","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","application_id","request_id","target","result","success_rate","response_times","num_pending","failures","config"],"properties":{"object":{"type":"string","enum":["retention_performance_test_result"]},"application_id":{"type":"string","description":"a string to be decoded into a number"},"request_id":{"type":"string"},"target":{"type":"string"},"result":{"type":"string","enum":["PASS","FAIL","INCOMPLETE","PENDING"]},"success_rate":{"type":"number"},"response_times":{"type":"object","required":[],"properties":{"p0":{"type":"number"},"p50":{"type":"number"},"p90":{"type":"number"},"p95":{"type":"number"},"p99":{"type":"number"},"p100":{"type":"number"},"average":{"type":"number"}},"additionalProperties":false},"num_pending":{"type":"number"},"failures":{"type":"object","required":[],"properties":{},"additionalProperties":{"type":"number"}},"config":{"type":"object","required":["max_concurrent_requests","response_time_threshold","success_rate_threshold","total_duration","total_requests"],"properties":{"max_concurrent_requests":{"type":"number"},"response_time_threshold":{"type":"number"},"success_rate_threshold":{"type":"number"},"total_duration":{"type":"number"},"total_requests":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"502":{"description":"The upstream retention provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RetentionProviderError"]}},"additionalProperties":false,"description":"The upstream retention provider request failed","title":"Retention Provider Error"}}}}},"summary":"Check Sandbox Retention Performance Test","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id","request_id"],"properties":{"application_id":{"type":"string","description":"a string to be decoded into a number"},"request_id":{"type":"string","description":"a string at least 1 character(s) long","title":"minLength(1)","minLength":1}},"additionalProperties":false}}},"required":true}}},"/v2/retention-onboarding/production/realtime-url":{"post":{"tags":["Retention Messaging Onboarding V2"],"operationId":"retentionOnboardingV2.configureRetentionProductionRealtimeUrl","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","application_id","environment","expected_realtime_url","realtime_url","matches_expected"],"properties":{"object":{"type":"string","enum":["retention_realtime_url_result"]},"application_id":{"type":"string","description":"a string to be decoded into a number"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment: 'sandbox' for testing, 'production' for live"},"expected_realtime_url":{"type":"string"},"realtime_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"matches_expected":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"502":{"description":"The upstream retention provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RetentionProviderError"]}},"additionalProperties":false,"description":"The upstream retention provider request failed","title":"Retention Provider Error"}}}}},"summary":"Configure Production Retention Realtime URL","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id"],"properties":{"application_id":{"type":"string","description":"Application ID for the onboarding action"}},"additionalProperties":false}}},"required":true}}},"/v2/retention-onboarding/production/realtime-url/check":{"post":{"tags":["Retention Messaging Onboarding V2"],"operationId":"retentionOnboardingV2.checkRetentionProductionRealtimeUrl","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","application_id","environment","expected_realtime_url","realtime_url","matches_expected"],"properties":{"object":{"type":"string","enum":["retention_realtime_url_result"]},"application_id":{"type":"string","description":"a string to be decoded into a number"},"environment":{"type":"string","enum":["sandbox","production"],"description":"Apple environment: 'sandbox' for testing, 'production' for live"},"expected_realtime_url":{"type":"string"},"realtime_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"matches_expected":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"502":{"description":"The upstream retention provider request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_error_type":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RetentionProviderError"]}},"additionalProperties":false,"description":"The upstream retention provider request failed","title":"Retention Provider Error"}}}}},"summary":"Check Production Retention Realtime URL","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id"],"properties":{"application_id":{"type":"string","description":"Application ID for the onboarding action"}},"additionalProperties":false}}},"required":true}}},"/v2/assets":{"get":{"tags":["Assets V2"],"operationId":"assetsv2.listAssets","parameters":[{"name":"limit","in":"query","schema":{"allOf":[{"$ref":"#/components/schemas/NumberFromString"}],"description":"Maximum number of items to return (1-100, default: 10)"},"required":false,"description":"Maximum number of items to return (1-100, default: 10)"},{"name":"starting_after","in":"query","schema":{"type":"string","description":"a string to be decoded into a number"},"required":false,"description":"a string to be decoded into a number"},{"name":"ending_before","in":"query","schema":{"type":"string","description":"a string to be decoded into a number"},"required":false,"description":"a string to be decoded into a number"},{"name":"project_id","in":"query","schema":{"type":"string","description":"a string to be decoded into a number"},"required":false,"description":"a string to be decoded into a number"},{"name":"application_id","in":"query","schema":{"type":"string","description":"ID of the application"},"required":true,"description":"ID of the application"},{"name":"type","in":"query","schema":{"anyOf":[{"type":"string","enum":["image"],"description":"Image asset"},{"type":"string","enum":["video"],"description":"Video asset"}],"description":"Media type of the asset"},"required":false,"description":"Media type of the asset"},{"name":"q","in":"query","schema":{"type":"string"},"required":false},{"name":"sort","in":"query","schema":{"anyOf":[{"type":"string","enum":["newest"],"description":"Newest assets first"},{"type":"string","enum":["oldest"],"description":"Oldest assets first"}],"description":"Sort order for asset lists"},"required":false,"description":"Sort order for asset lists"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","url","has_more","data"],"properties":{"object":{"type":"string","enum":["list"],"description":"Object type, always `list`"},"url":{"type":"string","enum":["/v2/assets"],"description":"API endpoint URL for this list"},"has_more":{"type":"boolean","description":"Whether there are more results available beyond this page"},"data":{"type":"array","items":{"type":"object","required":["id","object","project_id","key","name","url","type","mime_type","file_size","width","height","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the asset"},"object":{"type":"string","enum":["asset"],"description":"Object type, always `asset`"},"project_id":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the project this asset belongs to"},"key":{"type":"string","description":"Unique key for this asset within the project"},"name":{"type":"string","description":"Display name of the asset"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"CDN URL of the asset"},"type":{"anyOf":[{"anyOf":[{"type":"string","enum":["image"],"description":"Image asset"},{"type":"string","enum":["video"],"description":"Video asset"}],"description":"Media type of the asset"},{"type":"null"}],"description":"Media type of the asset"},"mime_type":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"MIME type of the asset (e.g. image/webp)"},"file_size":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"File size in bytes"},"width":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Width in pixels"},"height":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Height in pixels"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the asset was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the asset was last updated"}},"additionalProperties":false},"description":"List of results"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns a list of assets for the specified application. Optionally filter by project. Requires assets:read scope.","summary":"List Assets"},"post":{"tags":["Assets V2"],"operationId":"assetsv2.createAsset","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","project_id","key","name","url","type","mime_type","file_size","width","height","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the asset"},"object":{"type":"string","enum":["asset"],"description":"Object type, always `asset`"},"project_id":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the project this asset belongs to"},"key":{"type":"string","description":"Unique key for this asset within the project"},"name":{"type":"string","description":"Display name of the asset"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"CDN URL of the asset"},"type":{"anyOf":[{"anyOf":[{"type":"string","enum":["image"],"description":"Image asset"},{"type":"string","enum":["video"],"description":"Video asset"}],"description":"Media type of the asset"},{"type":"null"}],"description":"Media type of the asset"},"mime_type":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"MIME type of the asset (e.g. image/webp)"},"file_size":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"File size in bytes"},"width":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Width in pixels"},"height":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Height in pixels"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the asset was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the asset was last updated"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Creates a new asset or updates an existing one with the same key. Requires assets:write scope.","summary":"Create Asset","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id","url","key","name","type"],"properties":{"project_id":{"type":"string","description":"ID of the project to create the asset in"},"application_id":{"type":"string","description":"ID of the application"},"url":{"type":"string","description":"CDN URL of the asset","title":"maxLength(2048)","maxLength":2048},"key":{"type":"string","description":"Unique key for the asset within the project","title":"maxLength(191)","minLength":1,"maxLength":191},"name":{"type":"string","description":"Display name of the asset","title":"maxLength(191)","minLength":1,"maxLength":191},"type":{"anyOf":[{"type":"string","enum":["image"],"description":"Image asset"},{"type":"string","enum":["video"],"description":"Video asset"}],"description":"Media type of the asset"},"mime_type":{"type":"string","description":"MIME type of the asset"},"file_size":{"type":"number","description":"File size in bytes"},"width":{"type":"number","description":"Width in pixels"},"height":{"type":"number","description":"Height in pixels"}},"additionalProperties":false}}},"required":true}}},"/v2/assets/{id}":{"get":{"tags":["Assets V2"],"operationId":"assetsv2.retrieveAsset","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Asset ID"},"required":true,"description":"Asset ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","project_id","key","name","url","type","mime_type","file_size","width","height","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the asset"},"object":{"type":"string","enum":["asset"],"description":"Object type, always `asset`"},"project_id":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"ID of the project this asset belongs to"},"key":{"type":"string","description":"Unique key for this asset within the project"},"name":{"type":"string","description":"Display name of the asset"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"CDN URL of the asset"},"type":{"anyOf":[{"anyOf":[{"type":"string","enum":["image"],"description":"Image asset"},{"type":"string","enum":["video"],"description":"Video asset"}],"description":"Media type of the asset"},{"type":"null"}],"description":"Media type of the asset"},"mime_type":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"MIME type of the asset (e.g. image/webp)"},"file_size":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"File size in bytes"},"width":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Width in pixels"},"height":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Height in pixels"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the asset was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the asset was last updated"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Retrieves an asset by ID. Requires assets:read scope.","summary":"Retrieve Asset"},"delete":{"tags":["Assets V2"],"operationId":"assetsv2.deleteAsset","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Asset ID"},"required":true,"description":"Asset ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","deleted"],"properties":{"id":{"type":"string","description":"ID of the deleted asset"},"object":{"type":"string","enum":["asset"],"description":"Object type, always `asset`"},"deleted":{"type":"boolean","enum":[true],"description":"Always true for deletion responses"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Deletes an asset. This won't affect existing paywalls using this asset. Requires assets:write scope.","summary":"Delete Asset"}},"/v2/assets/upload-url":{"post":{"tags":["Assets V2"],"operationId":"assetsv2.generateUploadUrl","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["upload_url","key","public_url"],"properties":{"upload_url":{"type":"string","description":"Presigned URL to PUT the file to"},"key":{"type":"string","description":"Storage key for the uploaded file"},"public_url":{"type":"string","description":"Public URL where the asset will be accessible after upload"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Generates a presigned URL for uploading an asset file. Upload the file via PUT to the returned URL, then create the asset record. Requires assets:write scope.","summary":"Generate Upload URL","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id","file_name","content_type"],"properties":{"project_id":{"type":"string","description":"ID of the project to upload the asset for"},"application_id":{"type":"string","description":"ID of the application"},"file_name":{"type":"string","description":"Original file name","title":"minLength(1)","minLength":1},"content_type":{"type":"string"}},"additionalProperties":false}}},"required":true}}},"/v2/assets/discover":{"post":{"tags":["Assets V2"],"operationId":"assetsv2.discoverAssets","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["discovered_count"],"properties":{"discovered_count":{"type":"number","description":"Number of newly discovered assets"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Scans existing paywalls and creates asset records for any images/videos found. Requires assets:write scope.","summary":"Discover Assets","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id"],"properties":{"project_id":{"type":"string","description":"ID of the project to discover assets for"},"application_id":{"type":"string","description":"ID of the application"}},"additionalProperties":false}}},"required":true}}},"/v2/surveys":{"get":{"tags":["Surveys V2"],"operationId":"surveysv2.listSurveys","parameters":[{"name":"application_id","in":"query","schema":{"type":"string","description":"Filter by application ID (required)"},"required":true,"description":"Filter by application ID (required)"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","data"],"properties":{"object":{"type":"string","enum":["list"],"description":"Object type, always `list`"},"data":{"type":"array","items":{"type":"object","required":["id","object","application_id","name","title","message","options","include_other_option","include_close_option","presentation_probability","assignment_key","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the survey"},"object":{"type":"string","enum":["survey"],"description":"Object type, always `survey`"},"application_id":{"type":"string","description":"ID of the application this survey belongs to"},"name":{"type":"string","description":"Display name of the survey"},"title":{"type":"string","description":"Title shown to the user"},"message":{"type":"string","description":"Message shown below the title"},"options":{"type":"array","items":{"type":"object","required":["id","title"],"properties":{"id":{"type":"string","description":"Unique identifier for the option"},"title":{"type":"string","description":"Display text for the option"}},"additionalProperties":false,"description":"A selectable option in a survey"},"description":"Selectable options for the survey"},"include_other_option":{"type":"boolean","description":"Whether to show an 'Other' free-text option"},"include_close_option":{"type":"boolean","description":"Whether to show a close button that dismisses without answering"},"presentation_probability":{"type":"number","description":"Probability (0-1) of showing the survey to a given user"},"assignment_key":{"type":"string","description":"Key used for tracking user assignments; changes when assignments are reset"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the survey was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the survey was last updated"}},"additionalProperties":false},"description":"List of surveys"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns a list of non-archived surveys for the specified application. Requires surveys:read scope.","summary":"List Surveys"},"post":{"tags":["Surveys V2"],"operationId":"surveysv2.createSurvey","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","name","title","message","options","include_other_option","include_close_option","presentation_probability","assignment_key","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the survey"},"object":{"type":"string","enum":["survey"],"description":"Object type, always `survey`"},"application_id":{"type":"string","description":"ID of the application this survey belongs to"},"name":{"type":"string","description":"Display name of the survey"},"title":{"type":"string","description":"Title shown to the user"},"message":{"type":"string","description":"Message shown below the title"},"options":{"type":"array","items":{"type":"object","required":["id","title"],"properties":{"id":{"type":"string","description":"Unique identifier for the option"},"title":{"type":"string","description":"Display text for the option"}},"additionalProperties":false,"description":"A selectable option in a survey"},"description":"Selectable options for the survey"},"include_other_option":{"type":"boolean","description":"Whether to show an 'Other' free-text option"},"include_close_option":{"type":"boolean","description":"Whether to show a close button that dismisses without answering"},"presentation_probability":{"type":"number","description":"Probability (0-1) of showing the survey to a given user"},"assignment_key":{"type":"string","description":"Key used for tracking user assignments; changes when assignments are reset"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the survey was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the survey was last updated"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Creates a new survey in the specified application. Requires surveys:write scope.","summary":"Create Survey","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["application_id","name","title","message","options"],"properties":{"application_id":{"type":"string","description":"ID of the application to create the survey in"},"name":{"type":"string","description":"Display name of the survey","title":"maxLength(191)","minLength":1,"maxLength":191},"title":{"type":"string","description":"Title shown to the user","title":"minLength(1)","minLength":1},"message":{"type":"string","description":"Message shown below the title","title":"minLength(1)","minLength":1},"options":{"type":"array","items":{"type":"object","required":["id","title"],"properties":{"id":{"type":"string","description":"Unique identifier for the option"},"title":{"type":"string","description":"Display text for the option"}},"additionalProperties":false,"description":"A selectable option in a survey"},"description":"Selectable options for the survey","title":"minItems(1)","minItems":1},"include_other_option":{"type":"boolean","description":"Whether to show an 'Other' free-text option (default: true)"},"include_close_option":{"type":"boolean","description":"Whether to show a close button (default: false)"},"presentation_probability":{"type":"number","description":"Probability (0-1) of showing the survey (default: 1.0)"}},"additionalProperties":false}}},"required":true}}},"/v2/surveys/{id}":{"get":{"tags":["Surveys V2"],"operationId":"surveysv2.retrieveSurvey","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Survey ID"},"required":true,"description":"Survey ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","name","title","message","options","include_other_option","include_close_option","presentation_probability","assignment_key","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the survey"},"object":{"type":"string","enum":["survey"],"description":"Object type, always `survey`"},"application_id":{"type":"string","description":"ID of the application this survey belongs to"},"name":{"type":"string","description":"Display name of the survey"},"title":{"type":"string","description":"Title shown to the user"},"message":{"type":"string","description":"Message shown below the title"},"options":{"type":"array","items":{"type":"object","required":["id","title"],"properties":{"id":{"type":"string","description":"Unique identifier for the option"},"title":{"type":"string","description":"Display text for the option"}},"additionalProperties":false,"description":"A selectable option in a survey"},"description":"Selectable options for the survey"},"include_other_option":{"type":"boolean","description":"Whether to show an 'Other' free-text option"},"include_close_option":{"type":"boolean","description":"Whether to show a close button that dismisses without answering"},"presentation_probability":{"type":"number","description":"Probability (0-1) of showing the survey to a given user"},"assignment_key":{"type":"string","description":"Key used for tracking user assignments; changes when assignments are reset"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the survey was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the survey was last updated"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Retrieves a survey by ID. Requires surveys:read scope.","summary":"Retrieve Survey"},"patch":{"tags":["Surveys V2"],"operationId":"surveysv2.updateSurvey","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Survey ID"},"required":true,"description":"Survey ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","name","title","message","options","include_other_option","include_close_option","presentation_probability","assignment_key","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the survey"},"object":{"type":"string","enum":["survey"],"description":"Object type, always `survey`"},"application_id":{"type":"string","description":"ID of the application this survey belongs to"},"name":{"type":"string","description":"Display name of the survey"},"title":{"type":"string","description":"Title shown to the user"},"message":{"type":"string","description":"Message shown below the title"},"options":{"type":"array","items":{"type":"object","required":["id","title"],"properties":{"id":{"type":"string","description":"Unique identifier for the option"},"title":{"type":"string","description":"Display text for the option"}},"additionalProperties":false,"description":"A selectable option in a survey"},"description":"Selectable options for the survey"},"include_other_option":{"type":"boolean","description":"Whether to show an 'Other' free-text option"},"include_close_option":{"type":"boolean","description":"Whether to show a close button that dismisses without answering"},"presentation_probability":{"type":"number","description":"Probability (0-1) of showing the survey to a given user"},"assignment_key":{"type":"string","description":"Key used for tracking user assignments; changes when assignments are reset"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the survey was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the survey was last updated"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Updates a survey's fields. Requires surveys:write scope.","summary":"Update Survey","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"Display name of the survey","title":"maxLength(191)","minLength":1,"maxLength":191},"title":{"type":"string","description":"Title shown to the user"},"message":{"type":"string","description":"Message shown below the title"},"options":{"type":"array","items":{"type":"object","required":["id","title"],"properties":{"id":{"type":"string","description":"Unique identifier for the option"},"title":{"type":"string","description":"Display text for the option"}},"additionalProperties":false,"description":"A selectable option in a survey"},"description":"Selectable options for the survey"},"include_other_option":{"type":"boolean","description":"Whether to show an 'Other' free-text option"},"include_close_option":{"type":"boolean","description":"Whether to show a close button"},"presentation_probability":{"type":"number","description":"Probability (0-1) of showing the survey"}},"additionalProperties":false}}},"required":true}},"delete":{"tags":["Surveys V2"],"operationId":"surveysv2.archiveSurvey","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Survey ID"},"required":true,"description":"Survey ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","deleted"],"properties":{"id":{"type":"string","description":"ID of the archived survey"},"object":{"type":"string","enum":["survey"],"description":"Object type, always `survey`"},"deleted":{"type":"boolean","enum":[true],"description":"Always true for archive responses"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"409":{"description":"The resource already exists or conflicts with an existing resource","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"identifier":{"type":"string"},"field":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/Conflict"]}},"additionalProperties":false,"description":"The resource already exists or conflicts with an existing resource","title":"Conflict"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Archives a survey. Surveys with active paywall associations cannot be archived. Requires surveys:write scope.","summary":"Archive Survey"}},"/v2/surveys/{id}/duplicate":{"post":{"tags":["Surveys V2"],"operationId":"surveysv2.duplicateSurvey","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Survey ID"},"required":true,"description":"Survey ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","name","title","message","options","include_other_option","include_close_option","presentation_probability","assignment_key","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the survey"},"object":{"type":"string","enum":["survey"],"description":"Object type, always `survey`"},"application_id":{"type":"string","description":"ID of the application this survey belongs to"},"name":{"type":"string","description":"Display name of the survey"},"title":{"type":"string","description":"Title shown to the user"},"message":{"type":"string","description":"Message shown below the title"},"options":{"type":"array","items":{"type":"object","required":["id","title"],"properties":{"id":{"type":"string","description":"Unique identifier for the option"},"title":{"type":"string","description":"Display text for the option"}},"additionalProperties":false,"description":"A selectable option in a survey"},"description":"Selectable options for the survey"},"include_other_option":{"type":"boolean","description":"Whether to show an 'Other' free-text option"},"include_close_option":{"type":"boolean","description":"Whether to show a close button that dismisses without answering"},"presentation_probability":{"type":"number","description":"Probability (0-1) of showing the survey to a given user"},"assignment_key":{"type":"string","description":"Key used for tracking user assignments; changes when assignments are reset"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the survey was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the survey was last updated"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Creates a copy of an existing survey with new IDs and a '(Copy)' suffix. Requires surveys:write scope.","summary":"Duplicate Survey"}},"/v2/surveys/{id}/reset-assignments":{"post":{"tags":["Surveys V2"],"operationId":"surveysv2.resetAssignments","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Survey ID"},"required":true,"description":"Survey ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","application_id","name","title","message","options","include_other_option","include_close_option","presentation_probability","assignment_key","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the survey"},"object":{"type":"string","enum":["survey"],"description":"Object type, always `survey`"},"application_id":{"type":"string","description":"ID of the application this survey belongs to"},"name":{"type":"string","description":"Display name of the survey"},"title":{"type":"string","description":"Title shown to the user"},"message":{"type":"string","description":"Message shown below the title"},"options":{"type":"array","items":{"type":"object","required":["id","title"],"properties":{"id":{"type":"string","description":"Unique identifier for the option"},"title":{"type":"string","description":"Display text for the option"}},"additionalProperties":false,"description":"A selectable option in a survey"},"description":"Selectable options for the survey"},"include_other_option":{"type":"boolean","description":"Whether to show an 'Other' free-text option"},"include_close_option":{"type":"boolean","description":"Whether to show a close button that dismisses without answering"},"presentation_probability":{"type":"number","description":"Probability (0-1) of showing the survey to a given user"},"assignment_key":{"type":"string","description":"Key used for tracking user assignments; changes when assignments are reset"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the survey was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the survey was last updated"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Resets all user assignments for this survey, allowing previously-responded users to respond again. Requires surveys:write scope.","summary":"Reset Survey Assignments"}},"/v2/surveys/{id}/paywalls":{"get":{"tags":["Surveys V2"],"operationId":"surveysv2.listSurveyPaywalls","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Survey ID"},"required":true,"description":"Survey ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","data"],"properties":{"object":{"type":"string","enum":["list"],"description":"Object type, always `list`"},"data":{"type":"array","items":{"type":"object","required":["survey_id","survey_presentation_condition","paywall"],"properties":{"survey_id":{"type":"string","description":"Survey ID"},"survey_presentation_condition":{"anyOf":[{"type":"string","enum":["ON_MANUAL_CLOSE"],"description":"Show when the user manually closes the paywall"},{"type":"string","enum":["ON_PURCHASE"],"description":"Show after the user makes a purchase"}],"description":"When the survey is shown"},"paywall":{"type":"object","required":["id","name","v4","url","application_id"],"properties":{"id":{"type":"string","description":"Paywall ID"},"name":{"type":"string","description":"Paywall name"},"v4":{"type":"boolean","description":"Whether this is a v4 paywall"},"url":{"type":"string","description":"Paywall URL"},"application_id":{"type":"string","description":"Application ID"}},"additionalProperties":false,"description":"Associated paywall details"}},"additionalProperties":false},"description":"List of paywall associations"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns the paywalls associated with this survey and their presentation conditions. Requires surveys:read scope.","summary":"List Survey Paywalls"},"post":{"tags":["Surveys V2"],"operationId":"surveysv2.addSurveyPaywall","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Survey ID"},"required":true,"description":"Survey ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["survey_id","survey_presentation_condition","paywall"],"properties":{"survey_id":{"type":"string","description":"Survey ID"},"survey_presentation_condition":{"anyOf":[{"type":"string","enum":["ON_MANUAL_CLOSE"],"description":"Show when the user manually closes the paywall"},{"type":"string","enum":["ON_PURCHASE"],"description":"Show after the user makes a purchase"}],"description":"When the survey is shown"},"paywall":{"type":"object","required":["id","name","v4","url","application_id"],"properties":{"id":{"type":"string","description":"Paywall ID"},"name":{"type":"string","description":"Paywall name"},"v4":{"type":"boolean","description":"Whether this is a v4 paywall"},"url":{"type":"string","description":"Paywall URL"},"application_id":{"type":"string","description":"Application ID"}},"additionalProperties":false,"description":"Associated paywall details"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"409":{"description":"The resource already exists or conflicts with an existing resource","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"identifier":{"type":"string"},"field":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/Conflict"]}},"additionalProperties":false,"description":"The resource already exists or conflicts with an existing resource","title":"Conflict"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Associates a paywall with this survey at the specified presentation condition. Requires surveys:write scope.","summary":"Add Paywall to Survey","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["paywall_id","survey_presentation_condition"],"properties":{"paywall_id":{"type":"string","description":"ID of the paywall to associate"},"survey_presentation_condition":{"anyOf":[{"type":"string","enum":["ON_MANUAL_CLOSE"],"description":"Show when the user manually closes the paywall"},{"type":"string","enum":["ON_PURCHASE"],"description":"Show after the user makes a purchase"}],"description":"When to show the survey on this paywall"}},"additionalProperties":false}}},"required":true}},"delete":{"tags":["Surveys V2"],"operationId":"surveysv2.removeSurveyPaywall","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Survey ID"},"required":true,"description":"Survey ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["ok"]}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Removes a paywall association from this survey. Requires surveys:write scope.","summary":"Remove Paywall from Survey","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["paywall_id","survey_presentation_condition"],"properties":{"paywall_id":{"type":"string","description":"ID of the paywall to disassociate"},"survey_presentation_condition":{"anyOf":[{"type":"string","enum":["ON_MANUAL_CLOSE"],"description":"Show when the user manually closes the paywall"},{"type":"string","enum":["ON_PURCHASE"],"description":"Show after the user makes a purchase"}],"description":"The presentation condition to remove"}},"additionalProperties":false}}},"required":true}}},"/v2/surveys/{id}/statistics":{"get":{"tags":["Surveys V2"],"operationId":"surveysv2.getSurveyStatistics","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Survey ID"},"required":true,"description":"Survey ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","data"],"properties":{"object":{"type":"string","enum":["survey_response_counts"],"description":"Object type, always `survey_response_counts`"},"data":{"type":"array","items":{"type":"object","required":["paywall_id","paywall","results"],"properties":{"paywall_id":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"string","enum":["all"],"description":"Sentinel value identifying the cross-paywall aggregate group"}],"description":"Paywall ID, or 'all' for the aggregate group"},"paywall":{"anyOf":[{"type":"object","required":["id","name","v4","url","application_id"],"properties":{"id":{"type":"string","description":"Paywall ID"},"name":{"type":"string","description":"Paywall name"},"v4":{"type":"boolean","description":"Whether this is a v4 paywall"},"url":{"type":"string","description":"Paywall URL"},"application_id":{"type":"string","description":"Application ID"}},"additionalProperties":false},{"type":"null"}],"description":"Paywall details, or null for the 'all' aggregate"},"results":{"type":"array","items":{"type":"object","required":["title","count","is_custom_response","percentage"],"properties":{"title":{"type":"string","description":"Response option title"},"count":{"type":"number","description":"Number of responses"},"is_custom_response":{"type":"boolean","description":"Whether this is an 'Other' custom response"},"percentage":{"type":"number","description":"Percentage of total responses (0-100)"}},"additionalProperties":false},"description":"Response results for this paywall"}},"additionalProperties":false},"description":"Response counts grouped by paywall"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns survey response counts grouped by paywall with percentages. Requires surveys:read scope.","summary":"Get Survey Response Counts"}},"/v2/surveys/{id}/custom-responses":{"get":{"tags":["Surveys V2"],"operationId":"surveysv2.getSurveyCustomResponses","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Survey ID"},"required":true,"description":"Survey ID"},{"name":"paywall_id","in":"query","schema":{"type":"string","description":"Filter by paywall ID"},"required":false,"description":"Filter by paywall ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","data"],"properties":{"object":{"type":"string","enum":["survey_custom_responses"],"description":"Object type, always `survey_custom_responses`"},"data":{"type":"array","items":{"type":"object","required":["count","custom_response"],"properties":{"count":{"type":"number","description":"Number of times this response was given"},"custom_response":{"type":"string","description":"The custom response text"}},"additionalProperties":false},"description":"List of custom responses"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns custom 'Other' responses for this survey, optionally filtered by paywall. Requires surveys:read scope.","summary":"Get Survey Custom Responses"}},"/v2/organizations/{organization_id}/query":{"post":{"tags":["Query V2"],"operationId":"queryv2.queryClickhousePost","parameters":[{"name":"organization_id","in":"path","schema":{"type":"string","description":"a string to be decoded into a number"},"required":true,"description":"a string to be decoded into a number"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"a string","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"503":{"description":"A required service or security control could not be verified","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ServiceUnavailable"]}},"additionalProperties":false,"description":"A required service or security control could not be verified","title":"Service Unavailable"}}}}},"description":"Proxies a ClickHouse query via POST. Send SQL in the request body. Requires data:read scope.","summary":"Query ClickHouse (POST)"},"get":{"tags":["Query V2"],"operationId":"queryv2.queryClickhouseGet","parameters":[{"name":"organization_id","in":"path","schema":{"type":"string","description":"a string to be decoded into a number"},"required":true,"description":"a string to be decoded into a number"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"a string","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"503":{"description":"A required service or security control could not be verified","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ServiceUnavailable"]}},"additionalProperties":false,"description":"A required service or security control could not be verified","title":"Service Unavailable"}}}}},"description":"Proxies a ClickHouse query via GET. Send SQL in the `query` URL parameter. Requires data:read scope.","summary":"Query ClickHouse (GET)"}},"/v2/projects/{project_id}/web2app_integrations":{"get":{"tags":["Web2App Integrations V2"],"operationId":"web2appintegrationsv2.listWeb2AppIntegrations","parameters":[{"name":"project_id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","data"],"properties":{"object":{"type":"string","enum":["list"],"description":"Object type, always `list`"},"data":{"type":"array","items":{"type":"object","required":["id","object","name","integration_type","enabled","config","created_at","updated_at"],"properties":{"id":{"type":"integer","description":"Unique identifier","title":"int"},"object":{"type":"string","enum":["web2app_integration"],"description":"Object type, always `web2app_integration`"},"name":{"type":"string","description":"Display name"},"integration_type":{"type":"string","enum":["facebook-pixel","console-logger","google-tag-manager","custom-script"],"description":"Integration type"},"enabled":{"type":"boolean","description":"Whether the integration is active"},"config":{"$id":"/schemas/unknown","description":"Type-specific configuration","title":"unknown"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the integration was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the integration was last updated"}},"additionalProperties":false},"description":"List of web2app integrations"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns a list of web2app integrations for the project. Requires applications:read scope.","summary":"List Web2App Integrations"},"post":{"tags":["Web2App Integrations V2"],"operationId":"web2appintegrationsv2.createWeb2AppIntegration","parameters":[{"name":"project_id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","name","integration_type","enabled","config","created_at","updated_at"],"properties":{"id":{"type":"integer","description":"Unique identifier","title":"int"},"object":{"type":"string","enum":["web2app_integration"],"description":"Object type, always `web2app_integration`"},"name":{"type":"string","description":"Display name"},"integration_type":{"type":"string","enum":["facebook-pixel","console-logger","google-tag-manager","custom-script"],"description":"Integration type"},"enabled":{"type":"boolean","description":"Whether the integration is active"},"config":{"$id":"/schemas/unknown","description":"Type-specific configuration","title":"unknown"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the integration was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the integration was last updated"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Creates a new web2app integration for the project. Requires applications:write scope.","summary":"Create Web2App Integration","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["name","integration_type"],"properties":{"name":{"type":"string","description":"Display name for this integration","title":"nonEmptyString","minLength":1},"integration_type":{"type":"string","enum":["facebook-pixel","console-logger","google-tag-manager","custom-script"],"description":"Integration type: facebook-pixel, google-tag-manager, console-logger, or custom-script"},"enabled":{"type":"boolean","description":"Whether the integration is active (default: true)"},"config":{"$id":"/schemas/unknown","title":"unknown","description":"Type-specific configuration. facebook-pixel: { pixelId }, google-tag-manager: { containerId }, console-logger: { testMode }, custom-script: { script }"}},"additionalProperties":false}}},"required":true}}},"/v2/projects/{project_id}/web2app_integrations/{integration_id}":{"get":{"tags":["Web2App Integrations V2"],"operationId":"web2appintegrationsv2.retrieveWeb2AppIntegration","parameters":[{"name":"project_id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"integration_id","in":"path","schema":{"type":"string","description":"Web2App Integration ID"},"required":true,"description":"Web2App Integration ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","name","integration_type","enabled","config","created_at","updated_at"],"properties":{"id":{"type":"integer","description":"Unique identifier","title":"int"},"object":{"type":"string","enum":["web2app_integration"],"description":"Object type, always `web2app_integration`"},"name":{"type":"string","description":"Display name"},"integration_type":{"type":"string","enum":["facebook-pixel","console-logger","google-tag-manager","custom-script"],"description":"Integration type"},"enabled":{"type":"boolean","description":"Whether the integration is active"},"config":{"$id":"/schemas/unknown","description":"Type-specific configuration","title":"unknown"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the integration was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the integration was last updated"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Retrieves a web2app integration by ID. Requires applications:read scope.","summary":"Retrieve Web2App Integration"},"patch":{"tags":["Web2App Integrations V2"],"operationId":"web2appintegrationsv2.updateWeb2AppIntegration","parameters":[{"name":"project_id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"integration_id","in":"path","schema":{"type":"string","description":"Web2App Integration ID"},"required":true,"description":"Web2App Integration ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","name","integration_type","enabled","config","created_at","updated_at"],"properties":{"id":{"type":"integer","description":"Unique identifier","title":"int"},"object":{"type":"string","enum":["web2app_integration"],"description":"Object type, always `web2app_integration`"},"name":{"type":"string","description":"Display name"},"integration_type":{"type":"string","enum":["facebook-pixel","console-logger","google-tag-manager","custom-script"],"description":"Integration type"},"enabled":{"type":"boolean","description":"Whether the integration is active"},"config":{"$id":"/schemas/unknown","description":"Type-specific configuration","title":"unknown"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the integration was created"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of when the integration was last updated"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Updates a web2app integration. Requires applications:write scope.","summary":"Update Web2App Integration","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"Display name for this integration"},"integration_type":{"type":"string","enum":["facebook-pixel","console-logger","google-tag-manager","custom-script"],"description":"Integration type"},"enabled":{"type":"boolean","description":"Whether the integration is active"},"config":{"$id":"/schemas/unknown","title":"unknown","description":"Type-specific configuration"}},"additionalProperties":false}}},"required":true}},"delete":{"tags":["Web2App Integrations V2"],"operationId":"web2appintegrationsv2.deleteWeb2AppIntegration","parameters":[{"name":"project_id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"integration_id","in":"path","schema":{"type":"string","description":"Web2App Integration ID"},"required":true,"description":"Web2App Integration ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["id","object","deleted"],"properties":{"id":{"type":"integer","description":"ID of the deleted integration","title":"int"},"object":{"type":"string","enum":["web2app_integration"],"description":"Object type, always `web2app_integration`"},"deleted":{"type":"boolean","enum":[true],"description":"Always true for deletion responses"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Deletes a web2app integration. Requires applications:write scope.","summary":"Delete Web2App Integration"}},"/v2/audit-logs":{"get":{"tags":["Audit Logs V2"],"operationId":"auditlogsv2.listAuditLogs","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"AuditLogList","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditLogList"}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns a paginated list of audit log entries for the specified organization, newest first. Supports filtering by time range, endpoint, method, authorization outcome, and actor. Requires audit_logs:read scope.","summary":"List Audit Log Entries"}},"/v2/audit-logs/{id}":{"get":{"tags":["Audit Logs V2"],"operationId":"auditlogsv2.retrieveAuditLog","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"AuditLogEntryWithActor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditLogEntryWithActor"}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Retrieves a single audit log entry by id within the specified organization. Requires audit_logs:read scope.","summary":"Retrieve Audit Log Entry"}},"/v2/organizations/{organization_id}/workos/admin-portal-link":{"post":{"tags":["WorkOS Organization Admin"],"operationId":"workosv2.createAdminPortalLink","parameters":[{"name":"organization_id","in":"path","schema":{"type":"string","description":"a string to be decoded into a number"},"required":true,"description":"a string to be decoded into a number"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","url","intent","expires_at"],"properties":{"object":{"type":"string","enum":["portal_link"]},"url":{"type":"string"},"intent":{"type":"string","enum":["sso","dsync","audit_logs","log_streams","domain_verification"]},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}},"503":{"description":"The upstream WorkOS request failed","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"provider":{"type":"string"},"operation":{"type":"string"},"upstream_status":{"type":"number"},"upstream_code":{"type":"string"},"upstream_message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/WorkOSProviderError"]}},"additionalProperties":false,"description":"The upstream WorkOS request failed","title":"WorkOS Provider Error"}}}}},"description":"Generates a short-lived URL that an organization owner or admin can share with their IT administrator to configure SSO, Directory Sync, audit log streaming, log streams, or domain verification via the WorkOS-hosted Admin Portal. Requires OWNER or ADMIN membership in the organization.","summary":"Create WorkOS Admin Portal link","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["intent"],"properties":{"intent":{"type":"string","enum":["sso","dsync","audit_logs","log_streams","domain_verification"]},"return_url":{"type":"string"}},"additionalProperties":false}}},"required":true}}},"/v2/onboarding/context":{"get":{"tags":["Onboarding V2"],"operationId":"onboardingv2.getOnboardingContext","parameters":[{"name":"application_id","in":"query","schema":{"type":"string","description":"The application to compute onboarding milestones for"},"required":true,"description":"The application to compute onboarding milestones for"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","sdk_installed","paywall_presented","transaction_completed","production_transaction_completed","products_created","products_added_to_paywall","revenue_tracking_enabled","onboarding_completed","latest_sdk_version"],"properties":{"object":{"type":"string","enum":["onboarding_context"]},"sdk_installed":{"type":"boolean","description":"A `session_start` event has been received from the SDK"},"paywall_presented":{"type":"boolean","description":"A `paywall_open` event has been received"},"transaction_completed":{"type":"boolean","description":"A `transaction_complete` event has been received (sandbox or production)"},"production_transaction_completed":{"type":"boolean","description":"A non-sandbox `transaction_complete` event has been received"},"products_created":{"type":"boolean","description":"At least one product exists for the application"},"products_added_to_paywall":{"type":"boolean","description":"A paywall references a real (non-template) primary product"},"revenue_tracking_enabled":{"type":"boolean","description":"Revenue tracking is active for the application"},"onboarding_completed":{"type":"boolean","description":"Revenue tracking is enabled or a transaction has completed"},"latest_sdk_version":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Latest released SDK version tag for the application's platform (leading `v` stripped), or null if unknown/unavailable"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns onboarding milestone booleans for the application. Requires onboarding:read scope.","summary":"Get Onboarding Context"}},"/v2/organizations/{organization_id}/app-store-connect":{"get":{"tags":["App Store Connect Configurations V2"],"operationId":"appStoreConnectV2.listAscConfigurations","parameters":[{"name":"organization_id","in":"path","schema":{"type":"string","description":"a string to be decoded into a number"},"required":true,"description":"a string to be decoded into a number"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","url","data"],"properties":{"object":{"type":"string","enum":["list"]},"url":{"type":"string","enum":["/v2/organizations/:organization_id/app-store-connect"]},"data":{"type":"array","items":{"type":"object","required":["team_id","account_name","key_id","issuer_id","created_at","updated_at"],"properties":{"team_id":{"type":"string"},"account_name":{"type":"string"},"key_id":{"type":"string"},"issuer_id":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"summary":"List App Store Connect configurations"},"post":{"tags":["App Store Connect Configurations V2"],"operationId":"appStoreConnectV2.createAscConfiguration","parameters":[{"name":"organization_id","in":"path","schema":{"type":"string","description":"a string to be decoded into a number"},"required":true,"description":"a string to be decoded into a number"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["team_id","account_name","key_id","issuer_id","created_at","updated_at"],"properties":{"team_id":{"type":"string"},"account_name":{"type":"string"},"key_id":{"type":"string"},"issuer_id":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"409":{"description":"The resource already exists or conflicts with an existing resource","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"identifier":{"type":"string"},"field":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/Conflict"]}},"additionalProperties":false,"description":"The resource already exists or conflicts with an existing resource","title":"Conflict"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Submit a `key_id`, `issuer_id`, and `private_key` (P8 PEM). When `team_id` is omitted the handler resolves it by calling ASC (/v1/bundleIds → seedId; bootstraps a probe bundle ID if the team has none registered).","summary":"Create an App Store Connect configuration","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["account_name","key_id","issuer_id","private_key"],"properties":{"account_name":{"$ref":"#/components/schemas/NonEmptyString","description":"a string at most 256 character(s) long","title":"maxLength(256)","maxLength":256},"key_id":{"$ref":"#/components/schemas/NonEmptyString","description":"a string at most 256 character(s) long","title":"maxLength(256)","maxLength":256},"issuer_id":{"$ref":"#/components/schemas/NonEmptyString","description":"a string at most 256 character(s) long","title":"maxLength(256)","maxLength":256},"private_key":{"$ref":"#/components/schemas/NonEmptyString","description":"a string at most 8192 character(s) long","title":"maxLength(8192)","maxLength":8192},"team_id":{"$ref":"#/components/schemas/NonEmptyString","description":"a string at most 256 character(s) long","title":"maxLength(256)","maxLength":256}},"additionalProperties":false}}},"required":true}}},"/v2/organizations/{organization_id}/app-store-connect/{team_id}":{"get":{"tags":["App Store Connect Configurations V2"],"operationId":"appStoreConnectV2.getAscConfiguration","parameters":[{"name":"organization_id","in":"path","schema":{"type":"string","description":"a string to be decoded into a number"},"required":true,"description":"a string to be decoded into a number"},{"name":"team_id","in":"path","schema":{"$ref":"#/components/schemas/NonEmptyString"},"required":true}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["team_id","account_name","key_id","issuer_id","created_at","updated_at"],"properties":{"team_id":{"type":"string"},"account_name":{"type":"string"},"key_id":{"type":"string"},"issuer_id":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"summary":"Get an App Store Connect configuration"},"patch":{"tags":["App Store Connect Configurations V2"],"operationId":"appStoreConnectV2.updateAscConfiguration","parameters":[{"name":"organization_id","in":"path","schema":{"type":"string","description":"a string to be decoded into a number"},"required":true,"description":"a string to be decoded into a number"},{"name":"team_id","in":"path","schema":{"$ref":"#/components/schemas/NonEmptyString"},"required":true}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["team_id","account_name","key_id","issuer_id","created_at","updated_at"],"properties":{"team_id":{"type":"string"},"account_name":{"type":"string"},"key_id":{"type":"string"},"issuer_id":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"summary":"Update an App Store Connect configuration","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"account_name":{"$ref":"#/components/schemas/NonEmptyString","description":"a string at most 256 character(s) long","title":"maxLength(256)","maxLength":256},"key_id":{"$ref":"#/components/schemas/NonEmptyString","description":"a string at most 256 character(s) long","title":"maxLength(256)","maxLength":256},"issuer_id":{"$ref":"#/components/schemas/NonEmptyString","description":"a string at most 256 character(s) long","title":"maxLength(256)","maxLength":256},"private_key":{"$ref":"#/components/schemas/NonEmptyString","description":"a string at most 8192 character(s) long","title":"maxLength(8192)","maxLength":8192}},"additionalProperties":false}}},"required":true}},"delete":{"tags":["App Store Connect Configurations V2"],"operationId":"appStoreConnectV2.deleteAscConfiguration","parameters":[{"name":"organization_id","in":"path","schema":{"type":"string","description":"a string to be decoded into a number"},"required":true,"description":"a string to be decoded into a number"},{"name":"team_id","in":"path","schema":{"$ref":"#/components/schemas/NonEmptyString"},"required":true}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["success"],"properties":{"success":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"summary":"Delete an App Store Connect configuration"}},"/v2/projects/{id}/applications/{application_id}/integrations/google-play/configuration":{"get":{"tags":["Google Play V2"],"operationId":"googleplayv2.getGooglePlayConfiguration","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"application_id","in":"path","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","configured","package_name","has_service_account_key","service_account_email","project_id","pubsub_topic_name","pubsub_subscription_id","push_endpoint","created_at","updated_at"],"properties":{"object":{"type":"string","enum":["google_play_configuration"],"description":"Object type, always `google_play_configuration`"},"configured":{"type":"boolean","description":"Whether the application has a stored Google Play configuration at all"},"package_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Android package name (application ID) the credentials are scoped to"},"has_service_account_key":{"type":"boolean","description":"Whether a sealed service-account key is stored"},"service_account_email":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`client_email` from the stored key — the address to invite in the Play Console"},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Google Cloud project the service account belongs to"},"pubsub_topic_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fully qualified Pub/Sub topic receiving Real-Time Developer Notifications"},"pubsub_subscription_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fully qualified Pub/Sub push subscription delivering notifications to Superwall"},"push_endpoint":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Superwall ingestion URL for this application's notifications. Paste into the Play Console when configuring RTDNs manually"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 timestamp of when the configuration was first saved"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 timestamp of the last configuration change"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns the application's stored Google Play configuration. Never echoes key material — only safe descriptors such as the service-account email and Google Cloud project. An application with no configuration returns `configured: false` rather than a 404, so callers can distinguish 'not set up' from 'set up but broken'. Requires applications:read scope.","summary":"Get Google Play Configuration"},"put":{"tags":["Google Play V2"],"operationId":"googleplayv2.saveGooglePlayConfiguration","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"application_id","in":"path","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","valid","error","failed_check","checks","saved","configuration"],"properties":{"object":{"type":"string","enum":["google_play_configuration_save_result"],"description":"Object type, always `google_play_configuration_save_result`"},"valid":{"type":"boolean","description":"True when no check failed. Warnings do not make the result invalid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Message from the first failing check, for callers that only want one line"},"failed_check":{"anyOf":[{"type":"string","enum":["key_format","credentials","androidpublisher_api","package_access","pubsub_api","pubsub_topic","pubsub_subscription"]},{"type":"null"}],"description":"Which check failed first; `null` when valid"},"checks":{"type":"array","items":{"type":"object","required":["id","status","title","code","message","resolution_link"],"properties":{"id":{"type":"string","enum":["key_format","credentials","androidpublisher_api","package_access","pubsub_api","pubsub_topic","pubsub_subscription"],"description":"Which stage of the ladder this result is for"},"status":{"type":"string","enum":["passed","failed","warning","skipped"],"description":"Outcome of this check"},"title":{"type":"string","description":"Short human-readable label for the check, e.g. `Service account can read com.acme.app`"},"code":{"anyOf":[{"type":"string","enum":["key_invalid_json","key_not_service_account","key_missing_client_email","key_missing_private_key","key_missing_project_id","key_invalid_private_key_pem","credentials_revoked","credentials_rejected","token_exchange_failed","androidpublisher_api_disabled","service_account_not_invited","package_name_not_found","androidpublisher_request_failed","pubsub_api_disabled","pubsub_permission_denied","no_topics","no_topic_with_play_binding","topic_iam_unreadable","topic_iam_write_denied","topic_create_failed","subscription_topic_not_found","subscription_create_failed"]},{"type":"null"}],"description":"Machine-readable reason the check did not pass; `null` when it passed"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Human-readable remediation guidance; `null` when the check passed"},"resolution_link":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"URL that takes the operator straight to the page that fixes this failure (Google Cloud enable-API page, Play Console users page); `null` when there is no single such page"}},"additionalProperties":false},"description":"The full ladder, in order, including passed / warning / skipped rungs"},"saved":{"type":"boolean","description":"Whether the configuration was persisted. False whenever a check failed"},"configuration":{"anyOf":[{"type":"object","required":["object","configured","package_name","has_service_account_key","service_account_email","project_id","pubsub_topic_name","pubsub_subscription_id","push_endpoint","created_at","updated_at"],"properties":{"object":{"type":"string","enum":["google_play_configuration"],"description":"Object type, always `google_play_configuration`"},"configured":{"type":"boolean","description":"Whether the application has a stored Google Play configuration at all"},"package_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Android package name (application ID) the credentials are scoped to"},"has_service_account_key":{"type":"boolean","description":"Whether a sealed service-account key is stored"},"service_account_email":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`client_email` from the stored key — the address to invite in the Play Console"},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Google Cloud project the service account belongs to"},"pubsub_topic_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fully qualified Pub/Sub topic receiving Real-Time Developer Notifications"},"pubsub_subscription_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Fully qualified Pub/Sub push subscription delivering notifications to Superwall"},"push_endpoint":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Superwall ingestion URL for this application's notifications. Paste into the Play Console when configuring RTDNs manually"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 timestamp of when the configuration was first saved"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 timestamp of the last configuration change"}},"additionalProperties":false},{"type":"null"}],"description":"The stored configuration after a successful save; `null` when nothing was written"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Validates the service-account key and package name against Google and, only when every check passes, persists them with the key sealed at rest. When a check fails the response is `{ valid: false, saved: false, checks }` and the stored configuration is left untouched. Set `configure_pubsub` to also create the default notifications topic and the Superwall push subscription in the same call. Requires applications:write scope.","summary":"Save Google Play Configuration","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["package_name"],"properties":{"package_name":{"type":"string","description":"Android package name (application ID), e.g. `com.acme.app`","title":"maxLength(256)","minLength":1,"maxLength":256},"service_account_json":{"type":"string","description":"Key to validate and store. Omit to change only the package name, re-validating against the key already stored","title":"maxLength(65536)","minLength":1,"maxLength":65536},"configure_pubsub":{"type":"boolean","description":"When true, also create the default notifications topic (with the Google Play publisher binding) and the Superwall push subscription in the same call. Defaults to false so a stepped setup flow can drive those explicitly"}},"additionalProperties":false}}},"required":true}},"delete":{"tags":["Google Play V2"],"operationId":"googleplayv2.deleteGooglePlayConfiguration","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"application_id","in":"path","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","deleted"],"properties":{"object":{"type":"string","enum":["google_play_configuration"],"description":"Object type, always `google_play_configuration`"},"deleted":{"type":"boolean","enum":[true],"description":"Always true for deletion responses"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Removes the application's stored Google Play credentials and Pub/Sub binding. Does not delete the topic or subscription in the customer's Google Cloud project. Requires applications:write scope.","summary":"Delete Google Play Configuration"}},"/v2/projects/{id}/applications/{application_id}/integrations/google-play/configuration/validate":{"post":{"tags":["Google Play V2"],"operationId":"googleplayv2.validateGooglePlayConfiguration","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"application_id","in":"path","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","valid","error","failed_check","checks","service_account_email","project_id","package_name"],"properties":{"object":{"type":"string","enum":["google_play_validation_result"],"description":"Object type, always `google_play_validation_result`"},"valid":{"type":"boolean","description":"True when no check failed. Warnings do not make the result invalid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Message from the first failing check, for callers that only want one line"},"failed_check":{"anyOf":[{"type":"string","enum":["key_format","credentials","androidpublisher_api","package_access","pubsub_api","pubsub_topic","pubsub_subscription"]},{"type":"null"}],"description":"Which check failed first; `null` when valid"},"checks":{"type":"array","items":{"type":"object","required":["id","status","title","code","message","resolution_link"],"properties":{"id":{"type":"string","enum":["key_format","credentials","androidpublisher_api","package_access","pubsub_api","pubsub_topic","pubsub_subscription"],"description":"Which stage of the ladder this result is for"},"status":{"type":"string","enum":["passed","failed","warning","skipped"],"description":"Outcome of this check"},"title":{"type":"string","description":"Short human-readable label for the check, e.g. `Service account can read com.acme.app`"},"code":{"anyOf":[{"type":"string","enum":["key_invalid_json","key_not_service_account","key_missing_client_email","key_missing_private_key","key_missing_project_id","key_invalid_private_key_pem","credentials_revoked","credentials_rejected","token_exchange_failed","androidpublisher_api_disabled","service_account_not_invited","package_name_not_found","androidpublisher_request_failed","pubsub_api_disabled","pubsub_permission_denied","no_topics","no_topic_with_play_binding","topic_iam_unreadable","topic_iam_write_denied","topic_create_failed","subscription_topic_not_found","subscription_create_failed"]},{"type":"null"}],"description":"Machine-readable reason the check did not pass; `null` when it passed"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Human-readable remediation guidance; `null` when the check passed"},"resolution_link":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"URL that takes the operator straight to the page that fixes this failure (Google Cloud enable-API page, Play Console users page); `null` when there is no single such page"}},"additionalProperties":false},"description":"The full ladder, in order, including passed / warning / skipped rungs"},"service_account_email":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`client_email` parsed from the submitted key, when it parsed at all"},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`project_id` parsed from the submitted key, when it parsed at all"},"package_name":{"type":"string","description":"Package name that was validated"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Runs the full credential ladder against Google without persisting anything: key format, token exchange, Android Developer API enablement, package access, Pub/Sub API enablement, and topic publisher bindings. Use this to diagnose a key before committing it, or to re-check a key that is already stored (omit `service_account_json`). Failures are reported in `checks`, not as HTTP errors. Requires applications:write scope.","summary":"Validate Google Play Credentials","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["package_name"],"properties":{"package_name":{"type":"string","description":"Android package name (application ID), e.g. `com.acme.app`","title":"maxLength(256)","minLength":1,"maxLength":256},"service_account_json":{"type":"string","description":"Key to validate. Omit to re-validate the key already stored for the application","title":"maxLength(65536)","minLength":1,"maxLength":65536}},"additionalProperties":false}}},"required":true}}},"/v2/projects/{id}/applications/{application_id}/integrations/google-play/pubsub/topics":{"get":{"tags":["Google Play V2"],"operationId":"googleplayv2.listGooglePlayPubsubTopics","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"application_id","in":"path","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","data","iam_readable"],"properties":{"object":{"type":"string","enum":["list"],"description":"Object type, always `list`"},"data":{"type":"array","items":{"type":"object","required":["object","name","short_name","has_play_publisher_binding","is_superwall_default","is_selected"],"properties":{"object":{"type":"string","enum":["google_play_pubsub_topic"],"description":"Object type, always `google_play_pubsub_topic`"},"name":{"type":"string","description":"Fully qualified topic name, e.g. `projects/my-project/topics/Play-Store-Notifications`"},"short_name":{"type":"string","description":"Trailing topic id without the project prefix"},"has_play_publisher_binding":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether Google Play holds `roles/pubsub.publisher` on this topic. `null` when the service account could not read the topic's IAM policy"},"is_superwall_default":{"type":"boolean","description":"Whether this is the topic Superwall creates by default"},"is_selected":{"type":"boolean","description":"Whether this is the topic currently stored on the application"}},"additionalProperties":false},"description":"Topics in the service account's Google Cloud project"},"iam_readable":{"type":"boolean","description":"Whether topic IAM policies could be read. When false, every `has_play_publisher_binding` is `null` and the service account needs Pub/Sub Admin to answer the question"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Lists Pub/Sub topics in the service account's Google Cloud project, flagging which ones Google Play is allowed to publish to. `has_play_publisher_binding` is `null` when the service account cannot read a topic's IAM policy — an unanswered question, not a missing binding. Requires applications:read scope.","summary":"List Google Play Pub/Sub Topics"},"post":{"tags":["Google Play V2"],"operationId":"googleplayv2.createGooglePlayPubsubTopic","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"application_id","in":"path","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","name","short_name","has_play_publisher_binding","is_superwall_default","is_selected"],"properties":{"object":{"type":"string","enum":["google_play_pubsub_topic"],"description":"Object type, always `google_play_pubsub_topic`"},"name":{"type":"string","description":"Fully qualified topic name, e.g. `projects/my-project/topics/Play-Store-Notifications`"},"short_name":{"type":"string","description":"Trailing topic id without the project prefix"},"has_play_publisher_binding":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether Google Play holds `roles/pubsub.publisher` on this topic. `null` when the service account could not read the topic's IAM policy"},"is_superwall_default":{"type":"boolean","description":"Whether this is the topic Superwall creates by default"},"is_selected":{"type":"boolean","description":"Whether this is the topic currently stored on the application"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Creates a Pub/Sub topic (default `Play-Store-Notifications`) and grants Google Play's notification service account `roles/pubsub.publisher` on it. Requires the credentials to hold Pub/Sub Admin in their own project; an under-permissioned key fails with `topic_iam_write_denied`. Requires applications:write scope.","summary":"Create Google Play Pub/Sub Topic","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"Short topic id to create. Defaults to `Play-Store-Notifications`","title":"maxLength(255)","minLength":1,"maxLength":255}},"additionalProperties":false}}},"required":true}}},"/v2/projects/{id}/applications/{application_id}/integrations/google-play/pubsub/subscription":{"put":{"tags":["Google Play V2"],"operationId":"googleplayv2.setGooglePlayPubsubSubscription","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"application_id","in":"path","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","name","topic_name","push_endpoint"],"properties":{"object":{"type":"string","enum":["google_play_pubsub_subscription"],"description":"Object type, always `google_play_pubsub_subscription`"},"name":{"type":"string","description":"Fully qualified push subscription name"},"topic_name":{"type":"string","description":"Topic the subscription is attached to"},"push_endpoint":{"type":"string","description":"Superwall ingestion URL the subscription pushes to"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Creates or repoints the Superwall push subscription for the given topic and stores the binding on the application. Idempotent: an existing subscription has its push endpoint updated in place rather than being deleted and recreated, so in-flight notifications are not lost. Requires applications:write scope.","summary":"Set Google Play Pub/Sub Subscription","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["topic_name"],"properties":{"topic_name":{"type":"string","description":"Fully qualified topic to subscribe to, as returned by the topics list","title":"minLength(1)","minLength":1}},"additionalProperties":false}}},"required":true}}},"/v2/projects/{id}/applications/{application_id}/integrations/google-play/event-diagnostics":{"get":{"tags":["Google Play V2"],"operationId":"googleplayv2.getGooglePlayEventDiagnostics","parameters":[{"name":"id","in":"path","schema":{"type":"string","description":"Project ID"},"required":true,"description":"Project ID"},{"name":"application_id","in":"path","schema":{"type":"string","description":"Application ID"},"required":true,"description":"Application ID"}],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","webhook_received","revenue_ok","revenue_error","details_error","details_errors","total","has_any_events"],"properties":{"object":{"type":"string","enum":["google_play_event_diagnostics"],"description":"Object type, always `google_play_event_diagnostics`"},"webhook_received":{"type":"object","required":["count","latest"],"properties":{"count":{"type":"number","description":"Number of events in the window"},"latest":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 timestamp of the most recent event, or `null` when there were none"}},"additionalProperties":false,"description":"Notifications received from Google Play"},"revenue_ok":{"type":"object","required":["count","latest"],"properties":{"count":{"type":"number","description":"Number of events in the window"},"latest":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 timestamp of the most recent event, or `null` when there were none"}},"additionalProperties":false,"description":"Notifications successfully converted into revenue events"},"revenue_error":{"type":"object","required":["count","latest"],"properties":{"count":{"type":"number","description":"Number of events in the window"},"latest":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 timestamp of the most recent event, or `null` when there were none"}},"additionalProperties":false,"description":"Notifications that failed revenue conversion"},"details_error":{"type":"object","required":["count","latest"],"properties":{"count":{"type":"number","description":"Number of events in the window"},"latest":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 timestamp of the most recent event, or `null` when there were none"}},"additionalProperties":false,"description":"Notifications that failed while fetching purchase details from Google"},"details_errors":{"type":"array","items":{"type":"object","required":["count","latest","error_summary"],"properties":{"count":{"type":"number","description":"Occurrences of this error"},"latest":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 timestamp of the most recent occurrence"},"error_summary":{"type":"string","description":"Grouped error description"}},"additionalProperties":false},"description":"Detail-fetch failures grouped by cause, most frequent first"},"total":{"type":"number","description":"Total events across all buckets"},"has_any_events":{"type":"boolean","description":"False when nothing has ever arrived — the signal that delivery is not wired up"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"403":{"description":"The API key does not have permission to perform this action","content":{"application/json":{"schema":{"type":"object","required":["message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"required_scope":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/PermissionError"]}},"additionalProperties":false,"description":"The API key does not have permission to perform this action","title":"Permission Denied"}}}},"404":{"description":"The requested resource was not found","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"resource_type":{"type":"string"},"resource_id":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/ResourceNotFound"]}},"additionalProperties":false,"description":"The requested resource was not found","title":"Resource Not Found"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"description":"Returns recent Google Play notification counts split by outcome — received, converted to revenue, failed conversion, and failed detail lookups (grouped by cause). Answers whether a configuration that validates is actually receiving traffic. Requires applications:read scope.","summary":"Get Google Play Event Diagnostics"}},"/v2/cli-agent/status":{"get":{"tags":["CLI Agent V2"],"operationId":"cliAgent.getStatus","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["object","model","limit","usage","remaining","exhausted"],"properties":{"object":{"type":"string","enum":["cli_agent_status"]},"model":{"type":"string"},"limit":{"type":"number"},"usage":{"type":"number"},"remaining":{"type":"number"},"exhausted":{"type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"summary":"Get CLI AI Credit Status"}},"/v2/cli-agent/completions":{"post":{"tags":["CLI Agent V2"],"operationId":"cliAgent.createCompletion","parameters":[],"security":[{"bearer":[]},{"cookie":[]},{"oauth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$id":"/schemas/unknown","title":"unknown"}}}},"400":{"description":"The request did not match the expected schema","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HttpApiDecodeError"},{"type":"object","required":["code","message","_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"param":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/BadRequest"]}},"additionalProperties":false,"description":"The request was invalid or malformed","title":"Bad Request"}]}}}},"401":{"description":"No API key was provided in the request","content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/MissingApiKey"]}},"additionalProperties":false,"description":"No API key was provided in the request","title":"Missing API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKeyFormat"]}},"additionalProperties":false,"description":"The API key does not have a valid format","title":"Invalid API Key Format"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidApiKey"]}},"additionalProperties":false,"description":"The API key is invalid or has been revoked","title":"Invalid API Key"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"doc_url":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/AuthenticationFailed"]}},"additionalProperties":false,"description":"An error occurred while validating the API key","title":"Authentication Failed"},{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InvalidSession"]}},"additionalProperties":false,"description":"The session cookie is invalid or expired","title":"Invalid Session"}]}}}},"402":{"description":"The user's hosted CLI AI credit has been exhausted. Fall back to running the prompt in a local agent.","content":{"application/json":{"schema":{"type":"object","required":["limit","usage","_tag"],"properties":{"message":{"type":"string"},"limit":{"type":"number"},"usage":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/CliAgentQuotaExceeded"]}},"additionalProperties":false,"description":"The user's hosted CLI AI credit has been exhausted. Fall back to running the prompt in a local agent.","title":"CLI AI Credit Exhausted"}}}},"429":{"description":"Too many requests have been made in a short period","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"retry_after":{"type":"number"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/RateLimit"]}},"additionalProperties":false,"description":"Too many requests have been made in a short period","title":"Rate Limit Exceeded"}}}},"500":{"description":"An unexpected error occurred on the server","content":{"application/json":{"schema":{"type":"object","required":["_tag"],"properties":{"type":{"type":"string","enum":["api_error","authentication_error","invalid_request_error","rate_limit_error","permission_error"]},"code":{"type":"string","enum":["resource_missing","resource_already_exists","resource_archived","parameter_invalid","parameter_missing","parameter_unknown","invalid_reference","unsupported_operation","idempotency_key_in_use","rate_limit_exceeded","invalid_api_key","invalid_api_key_format","missing_api_key","authentication_failed","invalid_session","organization_required","insufficient_permissions","internal_error","upstream_service_error","side_effect_failed"]},"message":{"type":"string"},"cause":{"$ref":"#/components/schemas/Defect"},"_tag":{"type":"string","enum":["@superwall/api-schema/v2/errors/InternalError"]}},"additionalProperties":false,"description":"An unexpected error occurred on the server","title":"Internal Server Error"}}}}},"summary":"Run a CLI Agent Chat Completion","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["messages"],"properties":{"messages":{"type":"array","items":{"type":"object","required":["role"],"properties":{"role":{"type":"string"}},"additionalProperties":{"$id":"/schemas/unknown","title":"unknown"}},"description":"an array of at least 1 item(s)","title":"minItems(1)","minItems":1},"max_tokens":{"type":"number"},"temperature":{"type":"number"},"top_p":{"type":"number"},"stop":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"tools":{"type":"array","items":{"$id":"/schemas/unknown","title":"unknown"}},"tool_choice":{"$id":"/schemas/unknown","title":"unknown"},"response_format":{"$id":"/schemas/unknown","title":"unknown"}},"additionalProperties":false}}},"required":true}}}},"components":{"schemas":{"NumberFromString":{"type":"string","description":"a string to be decoded into a number"},"BooleanFromString":{"type":"string","enum":["true","false"],"description":"a string to be decoded into a boolean"},"HttpApiDecodeError":{"type":"object","required":["issues","message","_tag"],"properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/Issue"}},"message":{"type":"string"},"_tag":{"type":"string","enum":["HttpApiDecodeError"]}},"additionalProperties":false,"description":"The request did not match the expected schema"},"Issue":{"type":"object","required":["_tag","path","message"],"properties":{"_tag":{"type":"string","enum":["Pointer","Unexpected","Missing","Composite","Refinement","Transformation","Type","Forbidden"],"description":"The tag identifying the type of parse issue"},"path":{"type":"array","items":{"$ref":"#/components/schemas/PropertyKey"},"description":"The path to the property where the issue occurred"},"message":{"type":"string","description":"A descriptive message explaining the issue"}},"additionalProperties":false,"description":"Represents an error encountered while parsing a value to match the schema"},"PropertyKey":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","required":["_tag","key"],"properties":{"_tag":{"type":"string","enum":["symbol"]},"key":{"type":"string"}},"additionalProperties":false,"description":"an object to be decoded into a globally shared symbol"}]},"Defect":{"$id":"/schemas/unknown","title":"unknown"},"DoctorReport":{"type":"object","required":["object","project_id","generated_at","summary","checks","markdown"],"properties":{"object":{"type":"string","enum":["doctor_report"],"description":"Object type, always `doctor_report`."},"project_id":{"type":"string","description":"Project this report was generated for."},"generated_at":{"type":"string","description":"ISO 8601 timestamp of when the report was generated."},"summary":{"$ref":"#/components/schemas/DoctorReportSummary"},"checks":{"type":"array","items":{"$ref":"#/components/schemas/DoctorCheckResult"},"description":"Structured check results. Use this to react programmatically; use `markdown` for a ready-to-read report."},"markdown":{"type":"string","description":"Markdown-rendered version of the report, ready to present to a human or LLM agent."}},"additionalProperties":false},"DoctorReportSummary":{"type":"object","required":["errors","warnings","infos","passed"],"properties":{"errors":{"type":"number"},"warnings":{"type":"number"},"infos":{"type":"number"},"passed":{"type":"number"}},"additionalProperties":false},"DoctorCheckResult":{"type":"object","required":["id","title","application_id","platform","severity","priority","passed","message","remediation","docs_url","metadata"],"properties":{"id":{"type":"string","description":"Stable identifier for the check, e.g. `ios.asc_api_key`. Group checks by id to track them over time."},"title":{"type":"string","description":"Human-readable title for the check result."},"application_id":{"anyOf":[{"type":"string","description":"a string to be decoded into a number"},{"type":"null"}],"description":"The application this result applies to, or null for project-wide results."},"platform":{"anyOf":[{"anyOf":[{"type":"string","enum":["ios"],"description":"iOS (App Store)"},{"type":"string","enum":["android"],"description":"Android (Google Play)"},{"type":"string","enum":["flutter"],"description":"Flutter (legacy, read-only - cannot be created via API)"},{"type":"string","enum":["react_native"],"description":"React Native (legacy, read-only - cannot be created via API)"},{"type":"string","enum":["web"],"description":"Web (Stripe)"},{"type":"string","enum":["promotional"],"description":"Promotional offers application (read-only - cannot be created via API)"},{"type":"string","enum":["webapp"],"description":"Web App (Web SDK) (read-only - cannot be created via API)"}],"description":"Platform type for the application"},{"type":"null"}],"description":"Platform of the application this result applies to, if any."},"severity":{"type":"string","enum":["error","warning","info","ok"],"description":"Severity of the check result. `error` blocks a healthy configuration; `warning` is a soft issue you should look at; `info` is informational; `ok` means the check passed."},"priority":{"type":"string","enum":["p0","p1","p2","p3"],"description":"Priority used to sort/group checks in the report. `p0` is most urgent; `p3` is informational."},"passed":{"type":"boolean","description":"Whether the check considers the configuration healthy."},"message":{"type":"string","description":"Short description of the finding, suitable for inclusion in a markdown report."},"remediation":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Concrete steps the operator/agent can take to fix this."},"docs_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Link to Superwall documentation for the relevant topic."},"metadata":{"type":"object","required":[],"properties":{},"additionalProperties":{"$id":"/schemas/unknown","title":"unknown"},"description":"Free-form structured data about the finding (e.g. product identifier, ASC state)."}},"additionalProperties":false},"NonEmptyString":{"type":"string","description":"a non empty string","title":"nonEmptyString","minLength":1},"Int":{"type":"integer","description":"an integer","title":"int"},"RuleConditions":{"type":"object","required":["operator","conditions"],"properties":{"operator":{"type":"string","enum":["and","or"]},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/RuleCondition"}},"entitlements":{"type":"object","required":["type","rule"],"properties":{"type":{"type":"string","enum":["entitlement"]},"rule":{"anyOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["no_active_entitlements"]}},"additionalProperties":false},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["always_true"]}},"additionalProperties":false},{"type":"object","required":["type","conditions"],"properties":{"type":{"type":"string","enum":["entitlement_conditions"]},"conditions":{"type":"array","items":{"type":"object","required":["type","identifier","status"],"properties":{"type":{"type":"string","enum":["entitlement_condition"]},"identifier":{"type":"string"},"status":{"type":"string","enum":["active","inactive","will_not_renew","in_trial","expired","in_billing_retry"]}},"additionalProperties":false}}},"additionalProperties":false},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["any_will_not_renew"]}},"additionalProperties":false},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["any_in_trial"]}},"additionalProperties":false},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["any_expired_no_active"]}},"additionalProperties":false},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["any_active_subs_auto_renew_disabled"]}},"additionalProperties":false},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["any_in_billing_retry"]}},"additionalProperties":false}]}},"additionalProperties":false}},"additionalProperties":false,"description":"Structured audience targeting rule (the dashboard rule-editor AST). Compiled server-side into the runtime expression and `expression_cel`. Provide an empty `conditions` array to match all users.","title":"Rule Conditions","examples":[{"operator":"and","conditions":[{"type":"condition","lhs":{"type":"property","value":"device.appVersion"},"operator":"gte","rhs":{"type":"string","value":"1.2.3"}}]}]},"RuleCondition":{"anyOf":[{"type":"object","required":["type","lhs","operator","rhs"],"properties":{"type":{"type":"string","enum":["condition"]},"lhs":{"anyOf":[{"type":"object","required":["type","caller","name","args"],"properties":{"type":{"type":"string","enum":["computed_function"]},"caller":{"type":"string","enum":["device","user","params","computed"]},"name":{"type":"string","enum":["minutesSince","hoursSince","daysSince","placementsInHour","placementsInDay","placementsInWeek","placementsInMonth","placementsSinceInstall"]},"args":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false},{"type":"object","required":["type","value"],"properties":{"type":{"type":"string","enum":["property"]},"value":{"type":"string"}},"additionalProperties":false}]},"operator":{"type":"string","enum":["eq","neq","c","nc","gt","gte","lt","lte","t","f","null","nnull"]},"rhs":{"anyOf":[{"type":"object","required":["type","value"],"properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string"}},"additionalProperties":false},{"type":"object","required":["type","value"],"properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string"}},"additionalProperties":false},{"type":"object","required":["type","value"],"properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"string"}},"additionalProperties":false},{"type":"object","required":["type","caller","name","args"],"properties":{"type":{"type":"string","enum":["computed_function"]},"caller":{"type":"string","enum":["device","user","params","computed"]},"name":{"type":"string","enum":["minutesSince","hoursSince","daysSince","placementsInHour","placementsInDay","placementsInWeek","placementsInMonth","placementsSinceInstall"]},"args":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false},{"type":"object","required":["type","value"],"properties":{"type":{"type":"string","enum":["property"]},"value":{"type":"string"}},"additionalProperties":false}]}},"additionalProperties":false},{"type":"object","required":["type","operator","conditions"],"properties":{"type":{"type":"string","enum":["group"]},"operator":{"type":"string","enum":["and","or"]},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/RuleCondition"}}},"additionalProperties":false}]},"DateFromString":{"type":"string","description":"a string to be decoded into a Date"},"@superwall/api-schema/v2/JsonValue":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},{"type":"array","items":{"$ref":"#/components/schemas/@superwall~1api-schema~1v2~1JsonValue"}},{"$ref":"#/components/schemas/@superwall~1api-schema~1v2~1JsonObject"}]},"@superwall/api-schema/v2/JsonObject":{"type":"object","required":[],"properties":{},"additionalProperties":{"$ref":"#/components/schemas/@superwall~1api-schema~1v2~1JsonValue"}},"AuditLogListParams":{"type":"object","required":["organization_id"],"properties":{"limit":{"allOf":[{"$ref":"#/components/schemas/NumberFromString"}],"description":"Maximum number of items to return (1-100, default: 10)"},"starting_after":{"type":"string"},"ending_before":{"type":"string"},"organization_id":{"type":"string","description":"Filter by organization (required — authz boundary)"},"start_time":{"$ref":"#/components/schemas/DateFromString"},"end_time":{"$ref":"#/components/schemas/DateFromString"},"endpoint_id":{"type":"string"},"method":{"type":"string"},"route_family":{"type":"string","enum":["public_v2","internal_v2"],"description":"Which route family served the request"},"authorized":{"$ref":"#/components/schemas/BooleanFromString"},"failure_stage":{"type":"string","enum":["authn","authz"],"description":"Stage at which the request was rejected, if any"},"failure_code":{"type":"string"},"user_id":{"$ref":"#/components/schemas/NumberFromString"},"token_id":{"type":"string","description":"a string to be decoded into a number"},"mutation":{"$ref":"#/components/schemas/BooleanFromString"},"session_id":{"type":"string"}},"additionalProperties":false},"AuditLogList":{"type":"object","required":["object","url","has_more","data","actors"],"properties":{"object":{"type":"string","enum":["list"],"description":"Object type, always `list`"},"url":{"type":"string","enum":["/v2/audit-logs"],"description":"API endpoint URL for this list"},"has_more":{"type":"boolean","description":"Whether there are more results available beyond this page"},"data":{"type":"array","items":{"$ref":"#/components/schemas/AuditLogEntry"},"description":"List of results"},"actors":{"type":"object","required":["users"],"properties":{"users":{"type":"array","items":{"$ref":"#/components/schemas/AuditActorUser"},"description":"Users referenced by `user_id` on entries in this response"}},"additionalProperties":false,"description":"Resolved actor info for the entries on this page"}},"additionalProperties":false},"AuditLogEntry":{"type":"object","required":["id","object","timestamp","request_id","route_family","method","request_url","path","endpoint_id","auth_method","attempted_auth_method","user_id","token_id","token_name","service_principal_id","organization_id","authorized","status_code","failure_stage","failure_code","mutation","resource_type","resource_id","changes","ip_address","country","city","region","timezone","user_agent","session_id"],"properties":{"id":{"type":"string","description":"Unique audit log entry id (UUID)"},"object":{"type":"string","enum":["audit_log_entry"],"description":"Object type, always `audit_log_entry`"},"timestamp":{"type":"string","description":"ISO 8601 timestamp of when the request was served"},"request_id":{"type":"string","description":"Request identifier (x-request-id header, or auto-generated UUID)"},"route_family":{"type":"string","enum":["public_v2","internal_v2"],"description":"Which route family served the request"},"method":{"type":"string","description":"HTTP method"},"request_url":{"type":"string","description":"Full request URL with query string"},"path":{"type":"string","description":"URL path with query string"},"endpoint_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Resolved OpenAPI endpoint name (e.g. listPaywalls)"},"auth_method":{"anyOf":[{"type":"string","enum":["api_key","cookie","oauth","agent_token","service_token"],"description":"Authentication method used"},{"type":"null"}],"description":"Authentication method that succeeded, null if unauthenticated"},"attempted_auth_method":{"anyOf":[{"type":"string","enum":["api_key","cookie","oauth","agent_token","service_token"],"description":"Authentication method used"},{"type":"null"}],"description":"Authentication method the caller attempted to use"},"user_id":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"User id if authenticated via cookie/oauth"},"token_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"API token id if authenticated via api_key"},"token_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Credential label at time of request"},"service_principal_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Service principal id if authenticated via service_token"},"organization_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Organization the request was scoped to"},"authorized":{"type":"boolean","description":"Whether the request cleared authn + authz checks"},"status_code":{"type":"number","description":"HTTP response status code"},"failure_stage":{"anyOf":[{"type":"string","enum":["authn","authz"],"description":"Stage at which the request was rejected, if any"},{"type":"null"}],"description":"Stage at which the request was rejected, null on success"},"failure_code":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Machine-readable failure code (e.g. MissingApiKey, insufficient_scope)"},"mutation":{"type":"boolean","description":"Whether the endpoint mutates state (POST/PUT/PATCH/DELETE except read endpoints)"},"resource_type":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Resource type touched by the mutation (e.g. `paywall`, `product`), if known"},"resource_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Stringified id of the resource touched by the mutation, if known"},"changes":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/AuditChange"}},{"type":"null"}],"description":"Structured before/after diff for mutations. Null for reads, no-op patches, and entries from before this field was introduced."},"ip_address":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Client IP address the request originated from"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO-3166 country code resolved from the client IP"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"City resolved from the client IP, if available"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Region/state resolved from the client IP, if available"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"IANA timezone resolved from the client IP, if available"},"user_agent":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Raw User-Agent header of the request"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Identifier of the login session (OAuth `sid`/`jti` claim). Groups every entry from one session. Null for api_key and cookie auth."}},"additionalProperties":false},"AuditChange":{"type":"object","required":["op","path"],"properties":{"op":{"type":"string","enum":["add","remove","replace","truncated"],"description":"Diff operation type. `truncated` is a sentinel emitted when the serialized diff exceeded the storage cap; subsequent changes were dropped."},"path":{"type":"string","description":"Dot-joined path to the changed field (e.g. `metadata.foo`, `products.0.identifier`)"},"before":{"$id":"/schemas/unknown","title":"unknown","description":"Value before the change; absent on `add`"},"after":{"$id":"/schemas/unknown","title":"unknown","description":"Value after the change; absent on `remove`"}},"additionalProperties":false},"AuditActorUser":{"type":"object","required":["id","name","email","image"],"properties":{"id":{"type":"number"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Display name, if set"},"email":{"type":"string","description":"User email address"},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Avatar image URL, if set"}},"additionalProperties":false},"AuditLogPath":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"Audit log entry id (UUID)"}},"additionalProperties":false},"AuditLogRetrieveParams":{"type":"object","required":["organization_id"],"properties":{"organization_id":{"type":"string","description":"Organization the entry belongs to (required — authz boundary)"}},"additionalProperties":false},"AuditLogEntryWithActor":{"type":"object","required":["id","object","timestamp","request_id","route_family","method","request_url","path","endpoint_id","auth_method","attempted_auth_method","user_id","token_id","token_name","service_principal_id","organization_id","authorized","status_code","failure_stage","failure_code","mutation","resource_type","resource_id","changes","ip_address","country","city","region","timezone","user_agent","session_id","actor"],"properties":{"id":{"type":"string","description":"Unique audit log entry id (UUID)"},"object":{"type":"string","enum":["audit_log_entry"],"description":"Object type, always `audit_log_entry`"},"timestamp":{"type":"string","description":"ISO 8601 timestamp of when the request was served"},"request_id":{"type":"string","description":"Request identifier (x-request-id header, or auto-generated UUID)"},"route_family":{"type":"string","enum":["public_v2","internal_v2"],"description":"Which route family served the request"},"method":{"type":"string","description":"HTTP method"},"request_url":{"type":"string","description":"Full request URL with query string"},"path":{"type":"string","description":"URL path with query string"},"endpoint_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Resolved OpenAPI endpoint name (e.g. listPaywalls)"},"auth_method":{"anyOf":[{"type":"string","enum":["api_key","cookie","oauth","agent_token","service_token"],"description":"Authentication method used"},{"type":"null"}],"description":"Authentication method that succeeded, null if unauthenticated"},"attempted_auth_method":{"anyOf":[{"type":"string","enum":["api_key","cookie","oauth","agent_token","service_token"],"description":"Authentication method used"},{"type":"null"}],"description":"Authentication method the caller attempted to use"},"user_id":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"User id if authenticated via cookie/oauth"},"token_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"API token id if authenticated via api_key"},"token_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Credential label at time of request"},"service_principal_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Service principal id if authenticated via service_token"},"organization_id":{"anyOf":[{"type":"integer","description":"an integer","title":"int"},{"type":"null"}],"description":"Organization the request was scoped to"},"authorized":{"type":"boolean","description":"Whether the request cleared authn + authz checks"},"status_code":{"type":"number","description":"HTTP response status code"},"failure_stage":{"anyOf":[{"type":"string","enum":["authn","authz"],"description":"Stage at which the request was rejected, if any"},{"type":"null"}],"description":"Stage at which the request was rejected, null on success"},"failure_code":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Machine-readable failure code (e.g. MissingApiKey, insufficient_scope)"},"mutation":{"type":"boolean","description":"Whether the endpoint mutates state (POST/PUT/PATCH/DELETE except read endpoints)"},"resource_type":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Resource type touched by the mutation (e.g. `paywall`, `product`), if known"},"resource_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Stringified id of the resource touched by the mutation, if known"},"changes":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/AuditChange"}},{"type":"null"}],"description":"Structured before/after diff for mutations. Null for reads, no-op patches, and entries from before this field was introduced."},"ip_address":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Client IP address the request originated from"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO-3166 country code resolved from the client IP"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"City resolved from the client IP, if available"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Region/state resolved from the client IP, if available"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"IANA timezone resolved from the client IP, if available"},"user_agent":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Raw User-Agent header of the request"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Identifier of the login session (OAuth `sid`/`jti` claim). Groups every entry from one session. Null for api_key and cookie auth."},"actor":{"anyOf":[{"$ref":"#/components/schemas/AuditActorUser"},{"type":"null"}],"description":"Resolved acting user, if `user_id` is set"}},"additionalProperties":false}},"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"},"cookie":{"type":"apiKey","name":"accounts_superwall_token","in":"cookie"},"oauth":{"type":"http","scheme":"bearer"}}},"security":[],"tags":[{"name":"Projects V2","description":"Manage projects for cross-platform app grouping. A Project groups multiple Applications (one per platform) for unified management."},{"name":"Organization Access V2","description":"Manage dashboard member project access and organization API key project restrictions."},{"name":"Me V2","description":"User-centric endpoints. These endpoints only require user authentication and do not require organization context."},{"name":"Paywall Templates (Public)","description":"Browse the global paywall template catalog. This endpoint is public and returns only globally-available templates."},{"name":"Paywall Resolver (Public)","description":"Resolve a numeric paywall id to its identifier. Authenticated with a preview capability (sat_ or API-minted pvt_) from the debugger deep link, sent as Authorization: Bearer <token>."},{"name":"Integration Event Names (Service)","description":"Custom event names for one project/integration pair, read by integration-router on the webhook ingestion path. Authenticated with the internal service token as Authorization: Bearer <token>."},{"name":"Paywalls V2","description":"Manage paywalls and paywall templates. A Paywall is a monetization screen shown to users. Paywalls are scoped to a specific application (per-platform) since their design and behavior are platform-specific."},{"name":"Products V2","description":"Manage products (in-app purchases and subscriptions). A Product represents a purchasable item shown on paywalls. Products are scoped to a project (cross-platform) rather than a single application, so they can be shared across iOS, Android, and web."},{"name":"Application Webapp Origins V2","description":"Manage the browser-origin allowlist used to authorize WEBAPP checkout for an application."},{"name":"Campaigns V2","description":"Manage campaigns, placements, and audiences. A Campaign controls when and to whom paywalls are displayed. Campaigns are scoped to a specific application (per-platform) since triggers and audience rules are platform-specific."},{"name":"Entitlements V2","description":"Manage entitlements and manual grants. An Entitlement represents a feature or capability that can be unlocked for users through product purchases or manual grants. Entitlements are scoped to a project (cross-platform) rather than a single application, so they can be shared across iOS, Android, and web."},{"name":"Grants V2","description":"Query manual entitlement grants by device or user."},{"name":"Webhooks V2","description":"Manage webhook endpoints for receiving real-time event notifications. Delivery formats use dedicated Svix applications: `superwall` (default) and `superwall_v2`. Note: Webhook endpoints use iterator-based pagination (via the underlying Svix service)."},{"name":"RevenueCat V2 (compatible)","description":"RevenueCat v2 API-compatible, read-only customer views backed by the subscription source of truth: the customer object, their subscriptions, active entitlements, and identity-group aliases."},{"name":"RevenueCat V1 (compatible)","description":"RevenueCat v1 API-compatible, read-only subscriber view backed by the subscription source of truth: the subscriber object with its entitlements, subscriptions, non-subscriptions, and attributes."},{"name":"Events V2","description":"View event logs and retry failed event deliveries. Events represent messages sent to webhook endpoints."},{"name":"Charts V2","description":"Query chart data for analytics and reporting. Includes revenue metrics, subscription data, user analytics, and paywall performance. Charts are read-only; there is no charts:write scope since chart definitions are system-managed."},{"name":"Demand Score V2","description":"Demand Score analytics used by the dashboard. Requires charts:read scope."},{"name":"Users V2","description":"Manage users, user attributes, events, and diagnostics for an application."},{"name":"Users V3","description":"Alias-aware user subscriptions, aliases, and synced attributes sourced from the subscriptions store."},{"name":"Imports","description":"Bulk import of users, aliases, attributes and subscription history into the subscriptions source of truth."},{"name":"Retention Messages V2","description":"Manage retention messages for Apple subscription win-back. Messages are stored locally and uploaded to Apple for review."},{"name":"Retention Default Messages V2","description":"Manage Apple default message mappings by environment, product, and locale."},{"name":"Retention Configurations V2","description":"Manage retention configurations used by the realtime worker. Configurations are stored in Superwall and are not synced to Apple default-message APIs."},{"name":"Retention Messaging Onboarding V2","description":"Dashboard onboarding actions for Apple retention messaging setup."},{"name":"Assets V2","description":"Manage media assets (images and videos) for reuse across paywalls."},{"name":"Surveys V2","description":"Manage surveys shown to users after paywall interactions. Surveys collect user feedback such as why they chose not to subscribe. Surveys are scoped to a specific application."},{"name":"Query V2","description":"Proxy ClickHouse queries scoped to an organization. Compatible with the clickhouse-client CLI via --url flag."},{"name":"Web2App Integrations V2","description":"Manage head script integrations for web2app paywall pages. Supports Facebook Pixel, Google Tag Manager, Console Logger, and custom scripts."},{"name":"Audit Logs V2","description":"Query the V2 API audit log. Each entry records one served request: the caller, endpoint, outcome, and any auth/authz failure. Scoped to an organization."},{"name":"WorkOS Organization Admin","description":"Mint WorkOS Admin Portal links for organization administrators to self-configure SSO, Directory Sync, audit log streaming, and domain verification."},{"name":"Onboarding V2","description":"Onboarding milestone state for an application. Read-only; aggregates SDK events, product, and paywall signals for the dashboard quickstart guide."},{"name":"App Store Connect Configurations V2","description":"CRUD for organization-scoped App Store Connect API key configurations. Pairs with the transparent proxy at `/app-store-connect/proxy/:team_id/*`."},{"name":"Google Play V2","description":"Configure an application's Google Play service-account credentials and Real-Time Developer Notification delivery."},{"name":"CLI Agent V2","description":"Hosted, spend-capped AI inference for the Superwall CLI when no local coding agent is available."}],"servers":[{"url":"https://api.superwall.com","description":"Production"},{"url":"https://api.superwall.dev","description":"Staging"},{"url":"/","description":"Local"}]}