Disallow viewers from sharing a playlist URL with others (i.e. hotlink protection). This is done by binding the
viewer's IP address to the playlist URL.
To leave this to neutral, leave the disallow_hotlinking field empty. To explicitly allow hotlinking, set disallow_hotlinking to false.
A list of domains that are allowed to playback the video. An empty list implies all domains are valid.
This uses the HTTP referrer, which can be spoofed and as such is not a strong protection mechanism.
Note: this uses the HTTP referrer. As native apps do not send any HTTP referrer, any client that does not send a
referrer will be allowed.
To leave this to neutral, leave the allowed_domains field empty. To explicitly allow all domains, pass allow_all_domains as true.
Important: at most one of domains, allow_all_domains may be set per request.
Require viewers to be signed in. This requires the viewer to have a valid JWT, signed by the Motto identity service.
The JWT should be passed either via the Authorization header or as a Cookie.
To leave this to neutral, leave the require_authentication field empty. To explicitly allow unauthenticated access, set require_authentication to false.
Disables the ruleset. This is useful for ensuring the ruleset no longer shows up as an option in the UI.
It will continue to apply to any videos that already have this ruleseet applied (unlike a deleted ruleset).
Instruct the Motto content-delivery API to do an entitlement lookup for the user ID that the viewer is providing in
a JWT when trying to access the content.
This works in tandem with the Entitlement and Offer types in Motto's monetization section.
Note: This requires require_authentication to be set to true.
To leave this to neutral, leave the require_entitlement field empty. To explicitly not require entitlement, set require_entitlement to false.
If true, Motto's streaming platform will enforce concurrency limits for this video.
This only works in combination with require_authentication and require_entitlement being set to true.
To leave this to neutral, leave the enforce_concurrency_limits field empty.
To explicitly not enforce concurrency limits, set enforce_concurrency_limits to false.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Motto","colors":{"primary":"#a855f7","light":"#a855f7","dark":"#0D001D"},"logo":{"light":"https://mintcdn.com/motto/cBpRj-PyqIlSlCJu/logo/light.png?fit=max\u0026auto=format\u0026n=cBpRj-PyqIlSlCJu\u0026q=85\u0026s=d4bd8dad415fff9053d11f4b5985ad6f","dark":"https://mintcdn.com/motto/cBpRj-PyqIlSlCJu/logo/dark.png?fit=max\u0026auto=format\u0026n=cBpRj-PyqIlSlCJu\u0026q=85\u0026s=d16a9715252bd80539bc4bf89efd706a"},"favicon":"https://mintcdn.com/motto/cBpRj-PyqIlSlCJu/favicon.png?fit=max\u0026auto=format\u0026n=cBpRj-PyqIlSlCJu\u0026q=85\u0026s=a0054a4ad50f171682929414acb56fa5","api":{"openapi":"https://api-docs.mottostreaming.com/openapi.yaml","mdx":{"auth":{"method":"bearer"},"server":"https://api.mottostreaming.com"}},"background":{"color":{"dark":"#090014"}},"navbar":{"links":[{"href":"https://mottostreaming.com","label":"Home"},{"href":"https://mottostreaming.com/pricing","label":"Pricing"},{"href":"https://mottostreaming.com/#contact-us","label":"Support"}],"primary":{"type":"button","label":"Studio","href":"https://studio.mottostreaming.com"}},"footer":{"socials":{}},"integrations":{"ga4":{"measurementId":"G-QK6SPBBH9B"}},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/MottoStreaming"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"motto","hasAudioNarration":false,"actualSubdomain":"motto","customDomains":["docs.mottostreaming.com"],"gitSource":{"type":"github","owner":"mottostreaming","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{},"buildId":"6ad5f148a4240b47121a3bfe","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"API Reference","count":104},{"language":"default","tag":"Studio API","count":102},{"language":"default","tag":"Streaming","count":66},{"language":"default","tag":"Documentation","count":39},{"language":"default","tag":"CMS","count":36},{"language":"default","tag":"Assets","count":16},{"language":"default","tag":"IAM","count":14},{"language":"default","tag":"Live Streams","count":13},{"language":"default","tag":"Sports Standings","count":10},{"language":"default","tag":"Monetization","count":9}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"reference/studio-api/streaming/video-protection/v2/create-ruleset","slug":"/reference/studio-api/streaming/video-protection/v2/create-ruleset","pageMetadata":{"openapi":"post /streaming/video_protection/v2/rulesets","title":null,"description":"CreateVideoProtectionRuleset\n\n Creates new ruleset.","href":"/reference/studio-api/streaming/video-protection/v2/create-ruleset"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"CreateVideoProtectionRuleset\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Creates new ruleset.\"\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"openapi":"post /streaming/video_protection/v2/rulesets","title":null,"description":"CreateVideoProtectionRuleset\n\n Creates new ruleset.","href":"/reference/studio-api/streaming/video-protection/v2/create-ruleset"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["VideoProtectionService_v2"],"description":"CreateVideoProtectionRuleset\n\n Creates new ruleset.","operationId":"VideoProtectionService_v2_CreateVideoProtectionRuleset","requestBody":"aa5d919a-9413-4312-9db6-413b7cca1774","responses":{"200":"110eb4b3-96d1-40da-81c1-10ef711c077b","default":"9a15c5dd-e6d1-4b55-9a3a-27caa01e09d5"},"method":"post","type":"path","servers":["3d936636-60f5-4659-a50d-e16fb1741a96"],"security":["98781b50-5b14-4e89-a1c5-ce732bba9b80"],"path":"/streaming/video_protection/v2/rulesets","baseUrlOptions":["https://api.mottostreaming.com"],"title":"","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"required":["project_id","name"],"type":"object","properties":{"project_id":{"type":"string","description":"The ID of the project that the VideoProtectionRuleset belongs to.","isRequired":true,"uniqueKey":"project_id","typeLabel":"string"},"name":{"type":"string","description":"Name of the Ruleset","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"geo_restrictions_disallow":{"type":"object","description":"Viewers are disallowed to consume the video from these countries (and allowed from all others)\n\nImportant: at most one of `geo_restrictions_disallow`, `geo_restrictions_allow`, `allow_all_geographies` may be set per request.","properties":{"country_codes":{"type":"array","items":{"type":"string","uniqueKey":"geo_restrictions_disallow.country_codes.items.[INDEX]","typeLabel":"string"},"description":"A country code (ISO 3316-1 alpha-2: https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes)","uniqueKey":"geo_restrictions_disallow.country_codes","typeLabel":"string[]"}},"uniqueKey":"geo_restrictions_disallow","typeLabel":"object"},"geo_restrictions_allow":{"type":"object","description":"Viewers are allowed to consume the video from these countries (and disallowed from all others)\n\nImportant: at most one of `geo_restrictions_disallow`, `geo_restrictions_allow`, `allow_all_geographies` may be set per request.","properties":{"country_codes":{"type":"array","items":{"type":"string","uniqueKey":"geo_restrictions_allow.country_codes.items.[INDEX]","typeLabel":"string"},"description":"A country code (ISO 3316-1 alpha-2: https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes)","uniqueKey":"geo_restrictions_allow.country_codes","typeLabel":"string[]"}},"uniqueKey":"geo_restrictions_allow","typeLabel":"object"},"allow_all_geographies":{"type":"boolean","description":"Viewers from everywhere are allowed to watch. Set this to true explicitly (false will be treated as empty, i.e. neutral)\n\nImportant: at most one of `geo_restrictions_disallow`, `geo_restrictions_allow`, `allow_all_geographies` may be set per request.","uniqueKey":"allow_all_geographies","typeLabel":"boolean"},"disallow_vpn_usage":{"type":"boolean","description":"Disallow viewers from using a VPN to consume the video\n\n To leave this to neutral, leave the `disallow_vpn_usage` field empty. To explicitly allow VPN usage, set `disallow_vpn_usage` to `false`.","uniqueKey":"disallow_vpn_usage","typeLabel":"boolean"},"disallow_hotlinking":{"type":"boolean","description":"Disallow viewers from sharing a playlist URL with others (i.e. hotlink protection). This is done by binding the\n viewer's IP address to the playlist URL.\n\n To leave this to neutral, leave the `disallow_hotlinking` field empty. To explicitly allow hotlinking, set `disallow_hotlinking` to `false`.","uniqueKey":"disallow_hotlinking","typeLabel":"boolean"},"domains":{"type":"object","description":"A list of domains that are allowed to playback the video. An empty list implies all domains are valid.\n This uses the HTTP referrer, which can be spoofed and as such is not a strong protection mechanism.\n\n Note: this uses the HTTP referrer. As native apps do not send any HTTP referrer, any client that does not send a\n referrer will be allowed.\n\n To leave this to neutral, leave the `allowed_domains` field empty. To explicitly allow all domains, pass `allow_all_domains` as true.\n\nImportant: at most one of `domains`, `allow_all_domains` may be set per request.","properties":{"domains":{"type":"array","items":{"type":"string","uniqueKey":"domains.domains.items.[INDEX]","typeLabel":"string"},"description":"A list of domains","uniqueKey":"domains.domains","typeLabel":"string[]"}},"uniqueKey":"domains","typeLabel":"object"},"allow_all_domains":{"type":"boolean","description":"All domains are treated as allowed. Set this to true explicitly (false will be treated as empty, i.e. neutral)\n\nImportant: at most one of `domains`, `allow_all_domains` may be set per request.","uniqueKey":"allow_all_domains","typeLabel":"boolean"},"require_authentication":{"type":"boolean","description":"Require viewers to be signed in. This requires the viewer to have a valid JWT, signed by the Motto identity service.\n The JWT should be passed either via the Authorization header or as a Cookie.\n\n To leave this to neutral, leave the `require_authentication` field empty. To explicitly allow unauthenticated access, set `require_authentication` to `false`.","uniqueKey":"require_authentication","typeLabel":"boolean"},"disabled":{"type":"boolean","description":"Disables the ruleset. This is useful for ensuring the ruleset no longer shows up as an option in the UI.\n It will continue to apply to any videos that already have this ruleseet applied (unlike a deleted ruleset).","uniqueKey":"disabled","typeLabel":"boolean"},"require_entitlement":{"type":"boolean","description":"Instruct the Motto content-delivery API to do an entitlement lookup for the user ID that the viewer is providing in\n a JWT when trying to access the content.\n This works in tandem with the `Entitlement` and `Offer` types in Motto's `monetization` section.\n\n Note: This requires `require_authentication` to be set to `true`.\n\n To leave this to neutral, leave the `require_entitlement` field empty. To explicitly not require entitlement, set `require_entitlement` to `false`.","uniqueKey":"require_entitlement","typeLabel":"boolean"},"geo_applicability_exempt":{"type":"object","description":"Viewers from these countries will not have this ruleset applied.\n\nImportant: at most one of `geo_applicability_exempt`, `geo_applicability_apply` may be set per request.","properties":{"country_codes":{"type":"array","items":{"type":"string","uniqueKey":"geo_applicability_exempt.country_codes.items.[INDEX]","typeLabel":"string"},"description":"A country code (ISO 3316-1 alpha-2: https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes)","uniqueKey":"geo_applicability_exempt.country_codes","typeLabel":"string[]"}},"uniqueKey":"geo_applicability_exempt","typeLabel":"object"},"geo_applicability_apply":{"type":"object","description":"Viewers from these countries will have this ruleset applied.\n\nImportant: at most one of `geo_applicability_exempt`, `geo_applicability_apply` may be set per request.","properties":{"country_codes":{"type":"array","items":{"type":"string","uniqueKey":"geo_applicability_apply.country_codes.items.[INDEX]","typeLabel":"string"},"description":"A country code (ISO 3316-1 alpha-2: https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes)","uniqueKey":"geo_applicability_apply.country_codes","typeLabel":"string[]"}},"uniqueKey":"geo_applicability_apply","typeLabel":"object"},"applies_to_all":{"type":"boolean","description":"This ruleset applies to all videos in the project.\n\nImportant: at most one of `applies_to_all`, `target`, `filter` may be set per request.","uniqueKey":"applies_to_all","typeLabel":"boolean"},"target":{"type":"object","description":"This ruleset applies to a specific set of videos, as defined by the target.\n\nImportant: at most one of `applies_to_all`, `target`, `filter` may be set per request.","properties":{"entity_ids":{"type":"array","items":{"type":"string","uniqueKey":"target.entity_ids.items.[INDEX]","typeLabel":"string"},"description":"The entities with which this ruleset is associated. If provided, all videos that are associated with these entities will be included in the ruleset.","uniqueKey":"target.entity_ids","typeLabel":"string[]"},"event_ids":{"type":"array","items":{"type":"string","uniqueKey":"target.event_ids.items.[INDEX]","typeLabel":"string"},"description":"The events with which this ruleset is associated. If provided, all videos that are associated with these events will be included in the ruleset.","uniqueKey":"target.event_ids","typeLabel":"string[]"},"creative_work_ids":{"type":"array","items":{"type":"string","uniqueKey":"target.creative_work_ids.items.[INDEX]","typeLabel":"string"},"description":"The creative works with which this ruleset is associated. If provided, all videos that are associated with these creative works will be included in the ruleset.","uniqueKey":"target.creative_work_ids","typeLabel":"string[]"},"content_start_time":{"type":"string","description":"Any content defined by `entity_ids`, `event_ids` and `creative_work_ids` after `content_start_time` will be considered as part of the ruleset (as long as it is before `content_end_time`).\n If not provided, there is no lower time bound on the content.","format":"date-time","uniqueKey":"target.content_start_time","typeLabel":"string\u003cdate-time>"},"content_end_time":{"type":"string","description":"Any content defined by `entity_ids`, `event_ids` and `creative_work_ids` before `content_end_time` will be considered as part of the ruleset (as long as it is after `content_start_time`).\n If not provided, there is no upper time bound on the content.","format":"date-time","uniqueKey":"target.content_end_time","typeLabel":"string\u003cdate-time>"},"video_ids":{"type":"array","items":{"type":"string","uniqueKey":"target.video_ids.items.[INDEX]","typeLabel":"string"},"description":"The video IDs of the videos that are associated with this ruleset.\n It is recommended to only use this when the videos are not associated with an event/creative work, or the event/creative work it is associated with\n has other videos with deviating configurations.","uniqueKey":"target.video_ids","typeLabel":"string[]"}},"uniqueKey":"target","typeLabel":"object"},"filter":{"type":"object","description":"This ruleset applies to a complex set of events and creative works, as defined by the filter target.\n\nImportant: at most one of `applies_to_all`, `target`, `filter` may be set per request.","properties":{"filter_events":{"type":"string","description":"The filter to apply to the events that should be targeted. To test your filter, you can use the `ListEvents` API\n on the CMS to see which results it includes.\n\n Important: an empty string means NO events are included (unlike in `ListEvents` API, where it includes all events).\n To target all events, pass the string `true`.","uniqueKey":"filter.filter_events","typeLabel":"string"},"filter_creative_works":{"type":"string","description":"The filter to apply to the creative works that should be targeted. To test your filter, you can use the `ListCreativeWorks` API\n on the CMS to see which results it includes.\n\n Important: an empty string means NO creative works are included (unlike in `ListCreativeWorks` API, where it includes all events).\n To target all creative works, pass the string `true`.","uniqueKey":"filter.filter_creative_works","typeLabel":"string"}},"uniqueKey":"filter","typeLabel":"object"},"drm":{"type":"object","description":"The DRM settings for the video. If not provided, the video will not have any DRM applied.\n\n To leave this to neutral, leave the `drm` field empty. To explicitly not apply any DRM, set `drm.enabled` to `false`.","required":["enabled"],"properties":{"enabled":{"type":"boolean","description":"Whether to enable DRM for the video. This will not affect any content that has already been streamed or uploaded\n (for such content, the settings that were in place at the time of processing will still apply).","isRequired":true,"uniqueKey":"drm.enabled","typeLabel":"boolean"},"hws_minimum_quality":{"type":"integer","description":"Optional. If you want to enforce hardware secure (HWS) decryption for stream variant qualities, this value should\n be used to define the lower bound of the quality that should be protected with HWS.\n For example, if you set this to `720`, then all qualities >= 720p will require the Widevine L1 security level\n (which is the strictest level of security).\n Setting this to 0 will allow both HWS and SWS (decryption in software) for all qualities.\n Setting this to 1 will effectively disable SWS entirely, meaning that all qualities will require HWS decryption.\n\n Note: updating this will have no effect on content that has already been streamed or uploaded.","format":"int32","uniqueKey":"drm.hws_minimum_quality","typeLabel":"integer\u003cint32>"},"split_keys":{"type":"boolean","description":"Optional. When true, separate keys will be provisioned for video and audio tracks.\n If `false`, the audio track will be encrypted with the same key as the video track.\n If `false` in combination with `hws_minimum_quality` > 0, this will result in two keys: one for software secured video + audio, one for hardware-secured video.\n If `true` in combination with `hws_minimum_quality` > 0, this will result in three keys: one for software secured video, one for hardware-secured video, and one for audio.\n Defaults to false.","uniqueKey":"drm.split_keys","typeLabel":"boolean"}},"uniqueKey":"drm","typeLabel":"object"},"enforce_concurrency_limits":{"type":"boolean","description":"If true, Motto's streaming platform will enforce concurrency limits for this video.\n This only works in combination with `require_authentication` and `require_entitlement` being set to `true`.\n\n To leave this to neutral, leave the `enforce_concurrency_limits` field empty.\n To explicitly not enforce concurrency limits, set `enforce_concurrency_limits` to `false`.","uniqueKey":"enforce_concurrency_limits","typeLabel":"boolean"},"priority":{"type":"string","description":"The priority of the ruleset. If multiple rulesets apply to a video, the ruleset with the highest priority will be used.","uniqueKey":"priority","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"project_id":"\u003cstring>","name":"\u003cstring>","geo_restrictions_disallow":{"country_codes":["\u003cstring>"]},"geo_restrictions_allow":{"country_codes":["\u003cstring>"]},"allow_all_geographies":true,"disallow_vpn_usage":true,"disallow_hotlinking":true,"domains":{"domains":["\u003cstring>"]},"allow_all_domains":true,"require_authentication":true,"disabled":true,"require_entitlement":true,"geo_applicability_exempt":{"country_codes":["\u003cstring>"]},"geo_applicability_apply":{"country_codes":["\u003cstring>"]},"applies_to_all":true,"target":{"entity_ids":["\u003cstring>"],"event_ids":["\u003cstring>"],"creative_work_ids":["\u003cstring>"],"content_start_time":"2023-11-07T05:31:56Z","content_end_time":"2023-11-07T05:31:56Z","video_ids":["\u003cstring>"]},"filter":{"filter_events":"\u003cstring>","filter_creative_works":"\u003cstring>"},"enforce_concurrency_limits":true,"priority":"\u003cstring>"}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"110eb4b3-96d1-40da-81c1-10ef711c077b":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"video_protection_ruleset":{"required":["project_id","name"],"type":"object","properties":{"project_id":{"type":"string","description":"The ID of the project that the VideoProtectionRuleset belongs to.","isRequired":true,"uniqueKey":"video_protection_ruleset.project_id","typeLabel":"string"},"name":{"type":"string","description":"Name of the Ruleset","isRequired":true,"uniqueKey":"video_protection_ruleset.name","typeLabel":"string"},"id":{"readOnly":true,"type":"string","uniqueKey":"video_protection_ruleset.id","typeLabel":"string"},"geo_restrictions_disallow":{"type":"object","description":"Viewers are disallowed to consume the video from these countries (and allowed from all others)\n\nImportant: at most one of `geo_restrictions_disallow`, `geo_restrictions_allow`, `allow_all_geographies` may be set per request.","properties":{"country_codes":{"type":"array","items":{"type":"string","uniqueKey":"video_protection_ruleset.geo_restrictions_disallow.country_codes.items.[INDEX]","typeLabel":"string"},"description":"A country code (ISO 3316-1 alpha-2: https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes)","uniqueKey":"video_protection_ruleset.geo_restrictions_disallow.country_codes","typeLabel":"string[]"}},"uniqueKey":"video_protection_ruleset.geo_restrictions_disallow","typeLabel":"object"},"geo_restrictions_allow":{"type":"object","description":"Viewers are allowed to consume the video from these countries (and disallowed from all others)\n\nImportant: at most one of `geo_restrictions_disallow`, `geo_restrictions_allow`, `allow_all_geographies` may be set per request.","properties":{"country_codes":{"type":"array","items":{"type":"string","uniqueKey":"video_protection_ruleset.geo_restrictions_allow.country_codes.items.[INDEX]","typeLabel":"string"},"description":"A country code (ISO 3316-1 alpha-2: https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes)","uniqueKey":"video_protection_ruleset.geo_restrictions_allow.country_codes","typeLabel":"string[]"}},"uniqueKey":"video_protection_ruleset.geo_restrictions_allow","typeLabel":"object"},"allow_all_geographies":{"type":"boolean","description":"Viewers from everywhere are allowed to watch. Set this to true explicitly (false will be treated as empty, i.e. neutral)\n\nImportant: at most one of `geo_restrictions_disallow`, `geo_restrictions_allow`, `allow_all_geographies` may be set per request.","uniqueKey":"video_protection_ruleset.allow_all_geographies","typeLabel":"boolean"},"disallow_vpn_usage":{"type":"boolean","description":"Disallow viewers from using a VPN to consume the video\n\n To leave this to neutral, leave the `disallow_vpn_usage` field empty. To explicitly allow VPN usage, set `disallow_vpn_usage` to `false`.","uniqueKey":"video_protection_ruleset.disallow_vpn_usage","typeLabel":"boolean"},"disallow_hotlinking":{"type":"boolean","description":"Disallow viewers from sharing a playlist URL with others (i.e. hotlink protection). This is done by binding the\n viewer's IP address to the playlist URL.\n\n To leave this to neutral, leave the `disallow_hotlinking` field empty. To explicitly allow hotlinking, set `disallow_hotlinking` to `false`.","uniqueKey":"video_protection_ruleset.disallow_hotlinking","typeLabel":"boolean"},"domains":{"type":"object","description":"A list of domains that are allowed to playback the video. An empty list implies all domains are valid.\n This uses the HTTP referrer, which can be spoofed and as such is not a strong protection mechanism.\n\n Note: this uses the HTTP referrer. As native apps do not send any HTTP referrer, any client that does not send a\n referrer will be allowed.\n\n To leave this to neutral, leave the `allowed_domains` field empty. To explicitly allow all domains, pass `allow_all_domains` as true.\n\nImportant: at most one of `domains`, `allow_all_domains` may be set per request.","properties":{"domains":{"type":"array","items":{"type":"string","uniqueKey":"video_protection_ruleset.domains.domains.items.[INDEX]","typeLabel":"string"},"description":"A list of domains","uniqueKey":"video_protection_ruleset.domains.domains","typeLabel":"string[]"}},"uniqueKey":"video_protection_ruleset.domains","typeLabel":"object"},"allow_all_domains":{"type":"boolean","description":"All domains are treated as allowed. Set this to true explicitly (false will be treated as empty, i.e. neutral)\n\nImportant: at most one of `domains`, `allow_all_domains` may be set per request.","uniqueKey":"video_protection_ruleset.allow_all_domains","typeLabel":"boolean"},"require_authentication":{"type":"boolean","description":"Require viewers to be signed in. This requires the viewer to have a valid JWT, signed by the Motto identity service.\n The JWT should be passed either via the Authorization header or as a Cookie.\n\n To leave this to neutral, leave the `require_authentication` field empty. To explicitly allow unauthenticated access, set `require_authentication` to `false`.","uniqueKey":"video_protection_ruleset.require_authentication","typeLabel":"boolean"},"disabled":{"type":"boolean","description":"Disables the ruleset. This is useful for ensuring the ruleset no longer shows up as an option in the UI.\n It will continue to apply to any videos that already have this ruleseet applied (unlike a deleted ruleset).","uniqueKey":"video_protection_ruleset.disabled","typeLabel":"boolean"},"require_entitlement":{"type":"boolean","description":"Instruct the Motto content-delivery API to do an entitlement lookup for the user ID that the viewer is providing in\n a JWT when trying to access the content.\n This works in tandem with the `Entitlement` and `Offer` types in Motto's `monetization` section.\n\n Note: This requires `require_authentication` to be set to `true`.\n\n To leave this to neutral, leave the `require_entitlement` field empty. To explicitly not require entitlement, set `require_entitlement` to `false`.","uniqueKey":"video_protection_ruleset.require_entitlement","typeLabel":"boolean"},"geo_applicability_exempt":{"type":"object","description":"Viewers from these countries will not have this ruleset applied.\n\nImportant: at most one of `geo_applicability_exempt`, `geo_applicability_apply` may be set per request.","properties":{"country_codes":{"type":"array","items":{"type":"string","uniqueKey":"video_protection_ruleset.geo_applicability_exempt.country_codes.items.[INDEX]","typeLabel":"string"},"description":"A country code (ISO 3316-1 alpha-2: https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes)","uniqueKey":"video_protection_ruleset.geo_applicability_exempt.country_codes","typeLabel":"string[]"}},"uniqueKey":"video_protection_ruleset.geo_applicability_exempt","typeLabel":"object"},"geo_applicability_apply":{"type":"object","description":"Viewers from these countries will have this ruleset applied.\n\nImportant: at most one of `geo_applicability_exempt`, `geo_applicability_apply` may be set per request.","properties":{"country_codes":{"type":"array","items":{"type":"string","uniqueKey":"video_protection_ruleset.geo_applicability_apply.country_codes.items.[INDEX]","typeLabel":"string"},"description":"A country code (ISO 3316-1 alpha-2: https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes)","uniqueKey":"video_protection_ruleset.geo_applicability_apply.country_codes","typeLabel":"string[]"}},"uniqueKey":"video_protection_ruleset.geo_applicability_apply","typeLabel":"object"},"applies_to_all":{"type":"boolean","description":"This ruleset applies to all videos in the project.\n\nImportant: at most one of `applies_to_all`, `target`, `filter` may be set per request.","uniqueKey":"video_protection_ruleset.applies_to_all","typeLabel":"boolean"},"target":{"type":"object","description":"This ruleset applies to a specific set of videos, as defined by the target.\n\nImportant: at most one of `applies_to_all`, `target`, `filter` may be set per request.","properties":{"entity_ids":{"type":"array","items":{"type":"string","uniqueKey":"video_protection_ruleset.target.entity_ids.items.[INDEX]","typeLabel":"string"},"description":"The entities with which this ruleset is associated. If provided, all videos that are associated with these entities will be included in the ruleset.","uniqueKey":"video_protection_ruleset.target.entity_ids","typeLabel":"string[]"},"event_ids":{"type":"array","items":{"type":"string","uniqueKey":"video_protection_ruleset.target.event_ids.items.[INDEX]","typeLabel":"string"},"description":"The events with which this ruleset is associated. If provided, all videos that are associated with these events will be included in the ruleset.","uniqueKey":"video_protection_ruleset.target.event_ids","typeLabel":"string[]"},"creative_work_ids":{"type":"array","items":{"type":"string","uniqueKey":"video_protection_ruleset.target.creative_work_ids.items.[INDEX]","typeLabel":"string"},"description":"The creative works with which this ruleset is associated. If provided, all videos that are associated with these creative works will be included in the ruleset.","uniqueKey":"video_protection_ruleset.target.creative_work_ids","typeLabel":"string[]"},"content_start_time":{"type":"string","description":"Any content defined by `entity_ids`, `event_ids` and `creative_work_ids` after `content_start_time` will be considered as part of the ruleset (as long as it is before `content_end_time`).\n If not provided, there is no lower time bound on the content.","format":"date-time","uniqueKey":"video_protection_ruleset.target.content_start_time","typeLabel":"string\u003cdate-time>"},"content_end_time":{"type":"string","description":"Any content defined by `entity_ids`, `event_ids` and `creative_work_ids` before `content_end_time` will be considered as part of the ruleset (as long as it is after `content_start_time`).\n If not provided, there is no upper time bound on the content.","format":"date-time","uniqueKey":"video_protection_ruleset.target.content_end_time","typeLabel":"string\u003cdate-time>"},"video_ids":{"type":"array","items":{"type":"string","uniqueKey":"video_protection_ruleset.target.video_ids.items.[INDEX]","typeLabel":"string"},"description":"The video IDs of the videos that are associated with this ruleset.\n It is recommended to only use this when the videos are not associated with an event/creative work, or the event/creative work it is associated with\n has other videos with deviating configurations.","uniqueKey":"video_protection_ruleset.target.video_ids","typeLabel":"string[]"}},"uniqueKey":"video_protection_ruleset.target","typeLabel":"object"},"filter":{"type":"object","description":"This ruleset applies to a complex set of events and creative works, as defined by the filter target.\n\nImportant: at most one of `applies_to_all`, `target`, `filter` may be set per request.","properties":{"filter_events":{"type":"string","description":"The filter to apply to the events that should be targeted. To test your filter, you can use the `ListEvents` API\n on the CMS to see which results it includes.\n\n Important: an empty string means NO events are included (unlike in `ListEvents` API, where it includes all events).\n To target all events, pass the string `true`.","uniqueKey":"video_protection_ruleset.filter.filter_events","typeLabel":"string"},"filter_creative_works":{"type":"string","description":"The filter to apply to the creative works that should be targeted. To test your filter, you can use the `ListCreativeWorks` API\n on the CMS to see which results it includes.\n\n Important: an empty string means NO creative works are included (unlike in `ListCreativeWorks` API, where it includes all events).\n To target all creative works, pass the string `true`.","uniqueKey":"video_protection_ruleset.filter.filter_creative_works","typeLabel":"string"}},"uniqueKey":"video_protection_ruleset.filter","typeLabel":"object"},"drm":{"type":"object","description":"The DRM settings for the video. If not provided, the video will not have any DRM applied.\n\n To leave this to neutral, leave the `drm` field empty. To explicitly not apply any DRM, set `drm.enabled` to `false`.","required":["enabled"],"properties":{"enabled":{"type":"boolean","description":"Whether to enable DRM for the video. This will not affect any content that has already been streamed or uploaded\n (for such content, the settings that were in place at the time of processing will still apply).","isRequired":true,"uniqueKey":"video_protection_ruleset.drm.enabled","typeLabel":"boolean"},"hws_minimum_quality":{"type":"integer","description":"Optional. If you want to enforce hardware secure (HWS) decryption for stream variant qualities, this value should\n be used to define the lower bound of the quality that should be protected with HWS.\n For example, if you set this to `720`, then all qualities >= 720p will require the Widevine L1 security level\n (which is the strictest level of security).\n Setting this to 0 will allow both HWS and SWS (decryption in software) for all qualities.\n Setting this to 1 will effectively disable SWS entirely, meaning that all qualities will require HWS decryption.\n\n Note: updating this will have no effect on content that has already been streamed or uploaded.","format":"int32","uniqueKey":"video_protection_ruleset.drm.hws_minimum_quality","typeLabel":"integer\u003cint32>"},"split_keys":{"type":"boolean","description":"Optional. When true, separate keys will be provisioned for video and audio tracks.\n If `false`, the audio track will be encrypted with the same key as the video track.\n If `false` in combination with `hws_minimum_quality` > 0, this will result in two keys: one for software secured video + audio, one for hardware-secured video.\n If `true` in combination with `hws_minimum_quality` > 0, this will result in three keys: one for software secured video, one for hardware-secured video, and one for audio.\n Defaults to false.","uniqueKey":"video_protection_ruleset.drm.split_keys","typeLabel":"boolean"}},"uniqueKey":"video_protection_ruleset.drm","typeLabel":"object"},"enforce_concurrency_limits":{"type":"boolean","description":"If true, Motto's streaming platform will enforce concurrency limits for this video.\n This only works in combination with `require_authentication` and `require_entitlement` being set to `true`.\n\n To leave this to neutral, leave the `enforce_concurrency_limits` field empty.\n To explicitly not enforce concurrency limits, set `enforce_concurrency_limits` to `false`.","uniqueKey":"video_protection_ruleset.enforce_concurrency_limits","typeLabel":"boolean"},"priority":{"type":"string","description":"The priority of the ruleset. If multiple rulesets apply to a video, the ruleset with the highest priority will be used.","uniqueKey":"video_protection_ruleset.priority","typeLabel":"string"}},"uniqueKey":"video_protection_ruleset","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"video_protection_ruleset":{"project_id":"\u003cstring>","name":"\u003cstring>","id":"\u003cstring>","geo_restrictions_disallow":{"country_codes":["\u003cstring>"]},"geo_restrictions_allow":{"country_codes":["\u003cstring>"]},"allow_all_geographies":true,"disallow_vpn_usage":true,"disallow_hotlinking":true,"domains":{"domains":["\u003cstring>"]},"allow_all_domains":true,"require_authentication":true,"disabled":true,"require_entitlement":true,"geo_applicability_exempt":{"country_codes":["\u003cstring>"]},"geo_applicability_apply":{"country_codes":["\u003cstring>"]},"applies_to_all":true,"target":{"entity_ids":["\u003cstring>"],"event_ids":["\u003cstring>"],"creative_work_ids":["\u003cstring>"],"content_start_time":"2023-11-07T05:31:56Z","content_end_time":"2023-11-07T05:31:56Z","video_ids":["\u003cstring>"]},"filter":{"filter_events":"\u003cstring>","filter_creative_works":"\u003cstring>"},"drm":{"enabled":true,"hws_minimum_quality":123,"split_keys":true},"enforce_concurrency_limits":true,"priority":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"9a15c5dd-e6d1-4b55-9a3a-27caa01e09d5":{"description":"Default error response","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer","description":"The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].","format":"int32","uniqueKey":"code","typeLabel":"integer\u003cint32>"},"message":{"type":"string","description":"A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.","uniqueKey":"message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","properties":{"@type":{"type":"string","description":"The type of the serialized message.","uniqueKey":"details.items.[INDEX].@type","typeLabel":"string"}},"additionalProperties":true,"description":"Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.","uniqueKey":"details.items.[INDEX]","typeLabel":"object"},"description":"A list of messages that carry the error details. There is a common set of message types for APIs to use.","uniqueKey":"details","typeLabel":"object[]"}},"description":"The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":123,"message":"\u003cstring>","details":[{"@type":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"98781b50-5b14-4e89-a1c5-ce732bba9b80":{"BearerAuth":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"3d936636-60f5-4659-a50d-e16fb1741a96":{"url":"https://api.mottostreaming.com","description":"Production server"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"https://api-docs.mottostreaming.com/openapi.yaml"},"subdomain":"motto","siteName":"Motto","title":"Create ruleset - Motto","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-19T10:30:38.119Z","originalFileLocation":"reference/studio-api/streaming/video-protection/v2/create-ruleset.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"CreateVideoProtectionRuleset Creates new ruleset.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Motto\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/motto/jV0DsQq32_UALz8Z/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/motto/jV0DsQq32_UALz8Z/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/motto/jV0DsQq32_UALz8Z/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/motto/jV0DsQq32_UALz8Z/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/motto/jV0DsQq32_UALz8Z/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/motto/jV0DsQq32_UALz8Z/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/motto/jV0DsQq32_UALz8Z/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/motto/jV0DsQq32_UALz8Z/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/motto/jV0DsQq32_UALz8Z/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create ruleset - Motto\">\u003cmeta data-mint-head property=\"og:description\" content=\"CreateVideoProtectionRuleset Creates new ruleset.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Motto\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.mottostreaming.com/reference/studio-api/streaming/video-protection/v2/create-ruleset\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://motto.mintlify.site/_mintlify/api/og/v2?division=Video+Protection\u0026amp;title=Create+ruleset\u0026amp;description=CreateVideoProtectionRuleset%0A%0A+Creates+new+ruleset.\u0026amp;theme=fc161ab88cc1a6fe6bc74f6d\u0026amp;signature=62ad2fe2c40fb46b0754f412c6243d66b0739e05389e2aaafc4c2d5b4cf06b5c\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Create ruleset - Motto\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"CreateVideoProtectionRuleset Creates new ruleset.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://motto.mintlify.site/_mintlify/api/og/v2?division=Video+Protection\u0026amp;title=Create+ruleset\u0026amp;description=CreateVideoProtectionRuleset%0A%0A+Creates+new+ruleset.\u0026amp;theme=fc161ab88cc1a6fe6bc74f6d\u0026amp;signature=62ad2fe2c40fb46b0754f412c6243d66b0739e05389e2aaafc4c2d5b4cf06b5c\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/motto/jV0DsQq32_UALz8Z/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Motto\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#a855f7\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.mottostreaming.com/reference/studio-api/streaming/video-protection/v2/create-ruleset\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/reference/studio-api/streaming/video-protection/v2/create-ruleset.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.mottostreaming.com/#organization\",\"name\":\"Motto\",\"url\":\"https://docs.mottostreaming.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/motto/cBpRj-PyqIlSlCJu/logo/light.png?fit=max\u0026auto=format\u0026n=cBpRj-PyqIlSlCJu\u0026q=85\u0026s=d4bd8dad415fff9053d11f4b5985ad6f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.mottostreaming.com#website\",\"name\":\"Motto\",\"url\":\"https://docs.mottostreaming.com\",\"publisher\":{\"@id\":\"https://docs.mottostreaming.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.mottostreaming.com/reference/studio-api/streaming/video-protection/v2/create-ruleset#webpage\",\"url\":\"https://docs.mottostreaming.com/reference/studio-api/streaming/video-protection/v2/create-ruleset\",\"name\":\"Create ruleset\",\"description\":\"CreateVideoProtectionRuleset Creates new ruleset.\",\"dateModified\":\"2026-10-19T10:30:38.119Z\",\"isPartOf\":{\"@id\":\"https://docs.mottostreaming.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.mottostreaming.com/reference/studio-api/streaming/video-protection/v2/create-ruleset#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.mottostreaming.com/reference/studio-api/streaming/video-protection/v2/create-ruleset#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Studio API\",\"item\":\"https://docs.mottostreaming.com/reference/studio-api/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Streaming\",\"item\":\"https://docs.mottostreaming.com/reference/studio-api/streaming/live-streams/v2/get-live-stream\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Video Protection\",\"item\":\"https://docs.mottostreaming.com/reference/studio-api/streaming/video-protection/v2/get-ruleset\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Create ruleset\",\"item\":\"https://docs.mottostreaming.com/reference/studio-api/streaming/video-protection/v2/create-ruleset\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.mottostreaming.com/reference/studio-api/streaming/video-protection/v2/create-ruleset#apireference\",\"headline\":\"Create ruleset\",\"name\":\"Create ruleset\",\"description\":\"CreateVideoProtectionRuleset Creates new ruleset.\",\"url\":\"https://docs.mottostreaming.com/reference/studio-api/streaming/video-protection/v2/create-ruleset\",\"mainEntityOfPage\":{\"@id\":\"https://docs.mottostreaming.com/reference/studio-api/streaming/video-protection/v2/create-ruleset#webpage\"},\"dateModified\":\"2026-10-19T10:30:38.119Z\",\"publisher\":{\"@id\":\"https://docs.mottostreaming.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.mottostreaming.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Motto\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Motto","nav":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/MottoStreaming"}]},"tabs":[{"tab":"Documentation","groups":[{"group":"Get Started","pages":[{"title":"Your sports. Your streams. Your way.","sidebarTitle":"Overview","href":"/guides/introduction"}]},{"group":"Streaming","pages":[{"group":"Events","pages":[{"title":"Introduction","href":"/guides/streaming/events/introduction"},{"title":"Live streaming","href":"/guides/streaming/events/live-streaming"},{"title":"VOD","href":"/guides/streaming/events/vod"}]},{"group":"Video protection","pages":[{"title":"Video Protection","sidebarTitle":"Introduction","href":"/guides/streaming/video-protection/introduction"},{"title":"Geo-blocking","href":"/guides/streaming/video-protection/geo-blocking"},{"title":"DRM","href":"/guides/streaming/video-protection/drm"},{"title":"Hotlink prevention","href":"/guides/streaming/video-protection/hotlink-prevention"},{"title":"Domain pinning","href":"/guides/streaming/video-protection/domain-pinning"},{"title":"Registration walls","href":"/guides/streaming/video-protection/registration-walls"},{"title":"Concurrency control","href":"/guides/streaming/video-protection/concurrency-control"},{"title":"VPN blocking","href":"/guides/streaming/video-protection/vpn-blocking"},{"title":"Other","href":"/guides/streaming/video-protection/other"}]},{"group":"Configurations","pages":[{"title":"Introduction","href":"/guides/streaming/configurations/introduction"},{"title":"Transcoder settings","href":"/guides/streaming/configurations/transcoder-settings"}]},{"title":"Simulcasting","href":"/guides/streaming/simulcasting"},{"group":"Highlights","pages":[{"title":"Introduction","href":"/guides/streaming/highlights/introduction"},{"title":"Highlight clipping","sidebarTitle":"Clipping","href":"/guides/streaming/highlights/clipping"},{"title":"Stitching clips","sidebarTitle":"Stitching","href":"/guides/streaming/highlights/stitching"}]},{"title":"Channels","href":"/guides/streaming/channels"}]},{"group":"CMS","pages":[{"title":"Entities","href":"/guides/cms/entities"},{"title":"Sports standings","href":"/guides/cms/standings"},{"group":"Annotations","pages":[{"title":"Annotations","sidebarTitle":"Introduction","href":"/guides/annotations/annotations"},{"title":"Actions engine","href":"/guides/annotations/actions"}]},{"title":"AI agents","href":"/guides/annotations/ai-agent"}]},{"group":"OTT","pages":[{"title":"Introduction","href":"/guides/ott/introduction"},{"title":"Hero banners","href":"/guides/ott/hero-banners"},{"title":"Custom domain","href":"/guides/ott/custom-domain"},{"title":"Embed video player","href":"/guides/how-to/embed-our-player"}]},{"group":"Monetization","pages":[{"title":"Introduction","href":"/guides/monetization/introduction"},{"group":"PPV \u0026 Subscriptions","pages":[{"group":"Offers","pages":[{"title":"Offers","sidebarTitle":"Introduction","href":"/guides/monetization/offers/introduction"},{"title":"Stripe","href":"/guides/monetization/offers/stripe"}]},{"title":"Transactions","href":"/guides/monetization/transactions/introduction"}]},{"group":"Video advertising","pages":[{"title":"Video ads","href":"/guides/monetization/ads/video-ads"}]}]},{"group":"Assets","pages":[{"title":"Introduction","href":"/guides/assets/introduction"},{"title":"Video asset uploads","sidebarTitle":"Video uploads","href":"/guides/assets/video-upload"},{"title":"Video asset downloads","sidebarTitle":"Video downloads","href":"/guides/assets/video-download"},{"title":"Manage images","sidebarTitle":"Images","href":"/guides/assets/images"}]},{"group":"IAM","pages":[{"title":"Manage accounts","sidebarTitle":"Manage","href":"/guides/iam/manage"}]}]},{"tab":"API Reference","groups":[{"group":"Get Started","pages":[{"title":"API Reference","sidebarTitle":"Overview","href":"/reference/overview"}]},{"group":"Studio API","pages":[{"title":"Introduction","href":"/reference/studio-api/introduction"},{"group":"Streaming","expanded":true,"pages":[{"group":"Live Streams","pages":[{"openapi":"get /streaming/live_streams/v2/{live_stream_id}","title":null,"href":"/reference/studio-api/streaming/live-streams/v2/get-live-stream"},{"openapi":"get /streaming/live_streams/v2","title":null,"href":"/reference/studio-api/streaming/live-streams/v2/list-live-streams"},{"openapi":"post /streaming/live_streams/v2","title":null,"href":"/reference/studio-api/streaming/live-streams/v2/create-live-stream"},{"openapi":"patch /streaming/live_streams/v2/{live_stream_id}","title":null,"href":"/reference/studio-api/streaming/live-streams/v2/update-live-stream"},{"openapi":"delete /streaming/live_streams/v2/{live_stream_id}","title":null,"href":"/reference/studio-api/streaming/live-streams/v2/delete-live-stream"},{"group":"Ingests","pages":[{"openapi":"get /streaming/ingests/v2/{ingest_id}","title":null,"href":"/reference/studio-api/streaming/ingests/v2/get-ingest"},{"openapi":"get /streaming/ingests/v2","title":null,"href":"/reference/studio-api/streaming/ingests/v2/list-ingests"},{"openapi":"post /streaming/ingests/v2","title":null,"href":"/reference/studio-api/streaming/ingests/v2/create-ingest"},{"openapi":"patch /streaming/ingests/v2/{ingest_id}","title":null,"href":"/reference/studio-api/streaming/ingests/v2/update-ingest"},{"openapi":"delete /streaming/ingests/v2/{ingest_id}","title":null,"href":"/reference/studio-api/streaming/ingests/v2/delete-ingest"},{"openapi":"get /streaming/ingest_servers/v2","title":null,"href":"/reference/studio-api/streaming/ingest-servers/v2/list-ingest-servers"},{"openapi":"post /streaming/ingests/v2/{ingest_id}/pull","title":null,"href":"/reference/studio-api/streaming/ingests/v2/start-pull"},{"openapi":"post /streaming/ingests/v2/{ingest_id}/disconnect","title":null,"href":"/reference/studio-api/streaming/ingests/v2/disconnect"}]}]},{"group":"Clips","pages":[{"openapi":"get /streaming/clips/v1/{clip_id}","title":null,"href":"/reference/studio-api/streaming/clips/v1/get-clip"},{"openapi":"post /streaming/clips/v1","title":null,"href":"/reference/studio-api/streaming/clips/v1/create-clip"},{"openapi":"get /streaming/stitchers/v1/{stitcher_id}","title":null,"href":"/reference/studio-api/streaming/stitchers/v1/get-stitcher"},{"openapi":"post /streaming/stitchers/v1","title":null,"href":"/reference/studio-api/streaming/stitchers/v1/create-stitcher"}]},{"group":"Videos","pages":[{"openapi":"get /streaming/videos/v1/{video_id}","title":null,"href":"/reference/studio-api/streaming/videos/v1/get-video"},{"openapi":"get /streaming/videos/v1","title":null,"href":"/reference/studio-api/streaming/videos/v1/list-videos"},{"openapi":"patch /streaming/videos/v1/{video_id}","title":null,"href":"/reference/studio-api/streaming/videos/v1/update-video"},{"openapi":"delete /streaming/videos/v1/{video_id}","title":null,"href":"/reference/studio-api/streaming/videos/v1/delete-video"},{"group":"Playlists","pages":[{"openapi":"get /streaming/playlists/v1/{playlist_id}","title":null,"href":"/reference/studio-api/streaming/playlists/v1/get-playlist"},{"openapi":"patch /streaming/playlists/v1/{playlist_id}","title":null,"href":"/reference/studio-api/streaming/playlists/v1/update-playlist"}]}]},{"group":"Video Protection","pages":[{"openapi":"get /streaming/video_protection/v2/rulesets/{video_protection_ruleset_id}","title":null,"href":"/reference/studio-api/streaming/video-protection/v2/get-ruleset"},{"openapi":"get /streaming/video_protection/v2/rulesets","title":null,"description":"ListVideoProtectionRulesets\n\n Return list of video_protections.","href":"/reference/studio-api/streaming/video-protection/v2/list-rulesets"},{"openapi":"post /streaming/video_protection/v2/rulesets","title":null,"href":"/reference/studio-api/streaming/video-protection/v2/create-ruleset"},{"openapi":"patch /streaming/video_protection/v2/rulesets/{video_protection_ruleset_id}","title":null,"description":"UpdateVideoProtectionRuleset\n\n Updates a video_protection_ruleset. When updating a ruleset that is already attached to one or more videos, this\n change will apply to all of those videos (including past ones).\n\n These changes apply asynchronously and may take a bit of time to propagate.","href":"/reference/studio-api/streaming/video-protection/v2/update-ruleset"},{"openapi":"delete /streaming/video_protection/v2/rulesets/{video_protection_ruleset_id}","title":null,"href":"/reference/studio-api/streaming/video-protection/v2/delete-ruleset"}]},{"group":"Subtitles","pages":[{"openapi":"post /streaming/subtitle_tracks/v1","title":null,"href":"/reference/studio-api/streaming/subtitle-tracks/v1/create-subtitle-track"},{"openapi":"delete /streaming/subtitle_tracks/v1/{track_id}","title":null,"href":"/reference/studio-api/streaming/subtitle-tracks/v1/delete-subtitle-track"},{"openapi":"get /streaming/subtitle_tracks/v1","title":null,"href":"/reference/studio-api/streaming/subtitle-tracks/v1/list-subtitle-tracks"}]},{"group":"Assets","pages":[{"openapi":"get /streaming/assets/v1/{asset_id}","title":null,"href":"/reference/studio-api/streaming/assets/v1/get-asset"},{"openapi":"get /streaming/assets/v1/{asset_id}/url","title":null,"href":"/reference/studio-api/streaming/assets/v1/get-asset-url"},{"openapi":"get /streaming/assets/v1","title":null,"href":"/reference/studio-api/streaming/assets/v1/list-assets"},{"openapi":"post /streaming/uploads/v1","title":null,"href":"/reference/studio-api/streaming/uploads/v1/create-upload"},{"openapi":"post /streaming/assets/v1/{asset_id}/labels","title":null,"href":"/reference/studio-api/streaming/assets/v1/set-asset-labels"},{"openapi":"delete /streaming/assets/v1/{asset_id}","title":null,"href":"/reference/studio-api/streaming/assets/v1/delete-asset"},{"group":"VOD Uploads","pages":[{"openapi":"get /streaming/vods/v2/{vod_id}","title":null,"href":"/reference/studio-api/streaming/vods/v2/get-vod"},{"openapi":"get /streaming/vods/v2","title":null,"href":"/reference/studio-api/streaming/vods/v2/list-vods"},{"openapi":"post /streaming/vods/v2","title":null,"href":"/reference/studio-api/streaming/vods/v2/create-vod"},{"openapi":"post /streaming/vods/v2/{vod_id}/start_processing","title":null,"href":"/reference/studio-api/streaming/vods/v2/process-vod"},{"openapi":"patch /streaming/vods/v2/{vod_id}","title":null,"href":"/reference/studio-api/streaming/vods/v2/update-vod"},{"openapi":"delete /streaming/vods/v2/{vod_id}","title":null,"href":"/reference/studio-api/streaming/vods/v2/delete-vod"}]}]},{"group":"Spiideo (AI cameras)","pages":[{"openapi":"get /integration/spiideo/v1/entity_mappings","title":null,"href":"/reference/studio-api/integration/spiideo/v1/list-entity-mappings"},{"openapi":"post /integration/spiideo/v1/entity_mappings","title":null,"href":"/reference/studio-api/integration/spiideo/v1/create-entity-mapping"},{"openapi":"delete /integration/spiideo/v1/entity_mappings/{entity_id}","title":null,"href":"/reference/studio-api/integration/spiideo/v1/delete-entity-mapping"},{"openapi":"get /integration/spiideo/v1/event_mappings/batch","title":null,"href":"/reference/studio-api/integration/spiideo/v1/batch-get-event-mappings"}]}]},{"group":"CMS","pages":[{"group":"Events","pages":[{"openapi":"get /cms/events/v1/{event_id}","title":null,"href":"/reference/studio-api/cms/events/v1/get-event"},{"openapi":"get /cms/events/v1","title":null,"href":"/reference/studio-api/cms/events/v1/list-events"},{"openapi":"post /cms/events/v1","title":null,"href":"/reference/studio-api/cms/events/v1/create-event"},{"openapi":"post /cms/events/v1/{event_id}/duplicate","title":null,"href":"/reference/studio-api/cms/events/v1/duplicate-event"},{"openapi":"patch /cms/events/v1/{event_id}","title":null,"href":"/reference/studio-api/cms/events/v1/update-event"},{"openapi":"delete /cms/events/v1/{event_id}","title":null,"href":"/reference/studio-api/cms/events/v1/delete-event"}]},{"group":"Creative Works","pages":[{"openapi":"get /cms/creative_works/v1/{creative_work_id}","title":null,"href":"/reference/studio-api/cms/creative-works/v1/get-creative-work"},{"openapi":"get /cms/creative_works/v1","title":null,"href":"/reference/studio-api/cms/creative-works/v1/list-creative-works"},{"openapi":"post /cms/creative_works/v1","title":null,"href":"/reference/studio-api/cms/creative-works/v1/create-creative-work"},{"openapi":"patch /cms/creative_works/v1/{creative_work_id}","title":null,"href":"/reference/studio-api/cms/creative-works/v1/update-creative-work"},{"openapi":"delete /cms/creative_works/v1/{creative_work_id}","title":null,"href":"/reference/studio-api/cms/creative-works/v1/delete-creative-work"}]},{"group":"Entities","pages":[{"openapi":"get /cms/entities/v1/{entity_id}","title":null,"href":"/reference/studio-api/cms/entities/v1/get-entity"},{"openapi":"get /cms/entities/v1","title":null,"href":"/reference/studio-api/cms/entities/v1/list-entities"},{"openapi":"post /cms/entities/v1","title":null,"href":"/reference/studio-api/cms/entities/v1/create-entity"},{"openapi":"patch /cms/entities/v1/{entity_id}","title":null,"href":"/reference/studio-api/cms/entities/v1/update-entity"},{"openapi":"delete /cms/entities/v1/{entity_id}","title":null,"href":"/reference/studio-api/cms/entities/v1/delete-entity"}]},{"group":"Annotations","pages":[{"openapi":"get /annotations/annotations/v1/{annotation_id}","title":null,"href":"/reference/studio-api/annotations/annotations/v1/get-annotation"},{"openapi":"get /annotations/annotations/v1","title":null,"href":"/reference/studio-api/annotations/annotations/v1/list-annotations"},{"openapi":"post /annotations/annotations/v1","title":null,"href":"/reference/studio-api/annotations/annotations/v1/create-annotation"},{"openapi":"patch /annotations/annotations/v1/{annotation_id}","title":null,"href":"/reference/studio-api/annotations/annotations/v1/update-annotation"},{"openapi":"delete /annotations/annotations/v1/{annotation_id}","title":null,"href":"/reference/studio-api/annotations/annotations/v1/delete-annotation"}]},{"group":"Sports Standings","pages":[{"openapi":"get /cms/standings/v1/{standing_id}","title":null,"href":"/reference/studio-api/cms/standings/v1/get-standing"},{"openapi":"get /cms/standings/v1","title":null,"href":"/reference/studio-api/cms/standings/v1/list-standings"},{"openapi":"post /cms/standings/v1","title":null,"href":"/reference/studio-api/cms/standings/v1/create-standing"},{"openapi":"patch /cms/standings/v1/{standing_id}","title":null,"href":"/reference/studio-api/cms/standings/v1/update-standing"},{"openapi":"delete /cms/standings/v1/{standing_id}","title":null,"href":"/reference/studio-api/cms/standings/v1/delete-standing"},{"openapi":"get /cms/standing_phases/v1/{standing_phase_id}","title":null,"href":"/reference/studio-api/cms/standing-phases/v1/get-standing-phase"},{"openapi":"get /cms/standing_phases/v1/batch","title":null,"href":"/reference/studio-api/cms/standing-phases/v1/batch-get-standing-phases"},{"openapi":"post /cms/standing_phases/v1","title":null,"href":"/reference/studio-api/cms/standing-phases/v1/create-standing-phase"},{"openapi":"patch /cms/standing_phases/v1/{standing_phase_id}","title":null,"href":"/reference/studio-api/cms/standing-phases/v1/update-standing-phase"},{"openapi":"delete /cms/standing_phases/v1/{standing_phase_id}","title":null,"href":"/reference/studio-api/cms/standing-phases/v1/delete-standing-phase"}]}]},{"group":"Monetization","pages":[{"group":"Transactions","pages":[{"openapi":"get /monetization/transactions/v1/{transaction_id}","title":null,"href":"/reference/studio-api/monetization/transactions/v1/get-transaction"},{"openapi":"get /monetization/transactions/v1","title":null,"href":"/reference/studio-api/monetization/transactions/v1/list-transactions"}]},{"group":"Entitlements","pages":[{"openapi":"get /monetization/entitlements/v1","title":null,"href":"/reference/studio-api/monetization/entitlements/v1/list-entitlements"},{"openapi":"post /monetization/entitlements/v1","title":null,"href":"/reference/studio-api/monetization/entitlements/v1/upsert-entitlement"}]}]},{"group":"IAM","pages":[{"group":"Accounts","pages":[{"title":"Introduction","href":"/reference/studio-api/iam/accounts/introduction"},{"openapi":"post /iam/auth/v1/tokens","title":null,"href":"/reference/studio-api/iam/auth/v1/create-token"}]},{"group":"Users","pages":[{"title":"Introduction","href":"/reference/studio-api/iam/users/introduction"},{"openapi":"get /iam/users/v1/{user_id}","title":null,"href":"/reference/studio-api/iam/users/v1/get-user"},{"openapi":"get /iam/users/v1","title":null,"href":"/reference/studio-api/iam/users/v1/list-users"},{"openapi":"patch /iam/users/v1/{user_id}","title":null,"href":"/reference/studio-api/iam/users/v1/update-user"},{"openapi":"delete /iam/users/v1/{user_id}","title":null,"href":"/reference/studio-api/iam/users/v1/delete-user"},{"openapi":"post /iam/users/v1/{user_id}/token","title":null,"href":"/reference/studio-api/iam/users/v1/create-user-token"}]},{"group":"Organizations","pages":[{"openapi":"get /iam/organizations/v1/{org_id}","title":null,"href":"/reference/studio-api/iam/organizations/v1/get-organization"},{"openapi":"get /iam/organizations/v1","title":null,"href":"/reference/studio-api/iam/organizations/v1/list-organizations"}]},{"group":"Projects","pages":[{"openapi":"get /iam/projects/v1/{project_id}","title":null,"href":"/reference/studio-api/iam/projects/v1/get-project"},{"openapi":"get /iam/projects/v1","title":null,"href":"/reference/studio-api/iam/projects/v1/list-projects"},{"openapi":"patch /iam/projects/v1/{project_id}","title":null,"href":"/reference/studio-api/iam/projects/v1/update-project"}]}]},{"group":"Integration","pages":[{"group":"Callbacks","pages":[{"openapi":"get /integration/topics/v1","title":null,"href":"/reference/studio-api/integration/topics/v1/list-topics"},{"openapi":"post /integration/subscriptions/v1","title":null,"href":"/reference/studio-api/integration/subscriptions/v1/create-subscription"},{"openapi":"delete /integration/subscriptions/v1/{subscription_id}","title":null,"href":"/reference/studio-api/integration/subscriptions/v1/delete-subscription"},{"openapi":"get /integration/subscriptions/v1/{subscription_id}","title":null,"href":"/reference/studio-api/integration/subscriptions/v1/get-subscription"},{"openapi":"get /integration/subscriptions/v1","title":null,"href":"/reference/studio-api/integration/subscriptions/v1/list-subscriptions"},{"openapi":"patch /integration/subscriptions/v1/{subscription_id}","title":null,"href":"/reference/studio-api/integration/subscriptions/v1/update-subscription"}]}]}]},{"group":"Agentic SDK","pages":[{"title":"Agentic SDK","sidebarTitle":"Introduction","href":"/reference/agentic-sdk/introduction"}]}]}]},"basePath":"","title":"Create ruleset - Motto","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-5FCzAcfS.js","utils-SLtAG4EZ.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-2DZi8ZMu.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-D7J3nkzE.js","snippetPresets-D0Alv0AH.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BI4qNJ2c.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BD3uyr8j.js","shallow-D8iEBr5z.js","getApiPlaygroundDisplay-CgNP4lzR.js","CodeSnippet-CX-QHuMs.js","CodeSnippets-VlXE-ZUf.js","Page-D9ithiIZ.js","getPastedJson-DYNQkZ1M.js","icon-CzacdwOi.js","MethodPill-2JVqoYKi.js","DuplicateIcon-_xVXs-U8.js","createIcon-BRHrweLo.js","DynamicMarkdown-mQG_iQiE.js","SectionHeading-DMpJzv8f.js","axios-vUo_bRtp.js","Markdown-5FGIym-8.js","clsx-D-TRO5q5.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CdrJecqK.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CHlcWBLM.js"]}