Identical to POST /rt/redteam, except the system under test is a saved model named in the X-Enkrypt-Model / X-Enkrypt-Model-Version headers instead of an inline target. The gateway resolves the model and fills in target before the request reaches the Red Team service.
Saved models that reach their provider through a custom cURL command, custom headers/payload/response format, JWT auth, provider-specific auth_data or metadata, or an outbound proxy have no equivalent in the target shape and return 400. Use an inline target on POST /rt/redteam for those, or the Archived Red Team API.
Relay routing is the one exception to that metadata rule: a model saved with model_config.connect_via_relay: true and a model_config.metadata.relay block is projected onto target.connect_via_relay / target.metadata.relay and runs through your bridge exactly as an inline relay target would. A saved model carrying metadata.relayalongside other provider metadata still returns 400, and so does one that sets connect_via_relay without a metadata.relay block, or a metadata.relay block without the flag - a half-configured relay would otherwise be called directly at an address that only resolves inside your network.
Name of a saved Code of Conduct policy to test against. The gateway resolves it, renders its rules into context.policy_description (v1 free text, or the v2 Policy Wizard enabled rules joined in their stored order) and records the name on the run as policy_name. This OVERRIDES any context.policy_description sent in the body, so a run is never labelled with one policy but generated from another's text - omit the header to keep your own wording.
Per payload.md: model + (risk_categories | compliance_frameworks) + context
generation_config. attack_config lives nested under each risk_category.
Optional
sub_categories phrases (from /threat-modeling/categories) may also nest
under each risk_category to scope on-the-fly generation.
target is omitted: the saved model named in the X-Enkrypt-Model / X-Enkrypt-Model-Version headers supplies it.
How exhaustively to test. Standard runs the normal attack budget and Comprehensive widens it; Low, Medium and High are the equivalent sample-size settings surfaced in the dashboard. Omit to use the service default.
The accepted run. run_id is the value to carry into the run endpoints (GET /rt/runs/{run_id}, /records, /results, /stream).
Do not follow the *_url fields verbatim. They are relative and are not guaranteed to carry the /rt/ prefix this API is published under, so requesting one as given can return 400. Build the URL from run_id and the paths documented here instead - /rt/runs/{run_id}/records is the resource you want. The same applies to records_url on the results payload.
websocket_url is the Server-Sent Events progress stream (/rt/runs/{run_id}/stream) despite its name. The live log socket is logs_url - a relative path to join onto wss://api.enkryptai.com/wss/redteam/v1/logs/tasks/. See the Stream Run Logs (WebSocket) endpoint.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Enkrypt AI","colors":{"primary":"#ff6b6b","light":"#ff8a80","dark":"#ee5a24"},"logo":{"light":"https://mintcdn.com/enkryptai-42/7kWxrBaXsO0YvXjU/logo/light-logo.png?fit=max\u0026auto=format\u0026n=7kWxrBaXsO0YvXjU\u0026q=85\u0026s=3e4d5072cef08dc6b8885a03a7821b72","dark":"https://mintcdn.com/enkryptai-42/7kWxrBaXsO0YvXjU/logo/dark-logo.png?fit=max\u0026auto=format\u0026n=7kWxrBaXsO0YvXjU\u0026q=85\u0026s=2134a9f8208236db09c1727430559527"},"favicon":"https://mintcdn.com/enkryptai-42/rjcjkOmgLVUKmbck/favicon.svg?fit=max\u0026auto=format\u0026n=rjcjkOmgLVUKmbck\u0026q=85\u0026s=89efba126b5f4577a46794f171d766f0","appearance":{"default":"light","strict":false},"background":{"decoration":"gradient","color":{"light":"#fff5f5","dark":"#1a0f0f"}},"navbar":{"links":[{"href":"https://app.enkryptai.com/login","label":"Login"},{"href":"https://www.enkryptai.com/request-a-demo","label":"Schedule Demo"}],"primary":{"type":"button","label":"Learn More","href":"https://enkryptai.com"}},"footer":{"socials":{"x":"https://x.com/enkryptai","linkedin":"https://www.linkedin.com/company/enkryptai","website":"https://enkryptai.com"}},"styling":{"codeblocks":"system","latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"enkryptai-42","hasAudioNarration":false,"actualSubdomain":"enkryptai-42","customDomains":["docs.enkryptai.com"],"gitSource":{"type":"github","owner":"enkryptai","repo":"sentry","deployBranch":"docs-wip","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae1c016d6a250fd1db8d8b2","collectionId":"3601b564-9eab-40b7-823e-550bf1c8b396","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae1c016d6a250fd1db8d8b2"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae1c016d6a250fd1db8d8b2","clientVersion":"0.0.4067","searchFilterCounts":[{"language":"default","tag":"API Reference","count":340},{"language":"default","tag":"Get Started","count":65},{"language":"default","tag":"🗃️ Archived","count":48},{"language":"default","tag":"Get Started for Guardrails","count":39},{"language":"default","tag":"Examples","count":35},{"language":"default","tag":"🔴 Red Team API","count":30},{"language":"default","tag":"🛡️ Guardrails API Endpoints","count":24},{"language":"default","tag":"Red Team (Legacy)","count":22},{"language":"default","tag":"Guardrails Policy (Legacy)","count":11},{"language":"default","tag":"Get Started for Red Team","count":11}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"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":"vite-origin","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":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/redteam-v2-api-reference/endpoint/run-redteam-saved-model","slug":"/api-reference/redteam-v2-api-reference/endpoint/run-redteam-saved-model","pageMetadata":{"openapi":"POST /rt/model/redteam","title":"Run Redteam with saved model","description":"Identical to `POST /rt/redteam`, except the system under test is a **saved model** named in the `X-Enkrypt-Model` / `X-Enkrypt-Model-Version` headers instead of an inline `target`. The gateway resolves the model and fills in `target` before the request reaches the Red Team service.\n\nSaved models that reach their provider through a custom cURL command, custom headers/payload/response format, JWT auth, provider-specific `auth_data` or `metadata`, or an outbound proxy have no equivalent in the `target` shape and return `400`. Use an inline `target` on `POST /rt/redteam` for those, or the Archived Red Team API.\n\nRelay routing is the one exception to that `metadata` rule: a model saved with `model_config.connect_via_relay: true` and a `model_config.metadata.relay` block is projected onto `target.connect_via_relay` / `target.metadata.relay` and runs through your bridge exactly as an inline relay target would. A saved model carrying `metadata.relay` **alongside** other provider metadata still returns `400`, and so does one that sets `connect_via_relay` without a `metadata.relay` block, or a `metadata.relay` block without the flag - a half-configured relay would otherwise be called directly at an address that only resolves inside your network.","href":"/api-reference/redteam-v2-api-reference/endpoint/run-redteam-saved-model"},"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 code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Identical to \", _jsx(_components.code, {\n children: \"POST /rt/redteam\"\n }), \", except the system under test is a \", _jsx(_components.strong, {\n children: \"saved model\"\n }), \" named in the \", _jsx(_components.code, {\n children: \"X-Enkrypt-Model\"\n }), \" / \", _jsx(_components.code, {\n children: \"X-Enkrypt-Model-Version\"\n }), \" headers instead of an inline \", _jsx(_components.code, {\n children: \"target\"\n }), \". The gateway resolves the model and fills in \", _jsx(_components.code, {\n children: \"target\"\n }), \" before the request reaches the Red Team service.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Saved models that reach their provider through a custom cURL command, custom headers/payload/response format, JWT auth, provider-specific \", _jsx(_components.code, {\n children: \"auth_data\"\n }), \" or \", _jsx(_components.code, {\n children: \"metadata\"\n }), \", or an outbound proxy have no equivalent in the \", _jsx(_components.code, {\n children: \"target\"\n }), \" shape and return \", _jsx(_components.code, {\n children: \"400\"\n }), \". Use an inline \", _jsx(_components.code, {\n children: \"target\"\n }), \" on \", _jsx(_components.code, {\n children: \"POST /rt/redteam\"\n }), \" for those, or the Archived Red Team API.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Relay routing is the one exception to that \", _jsx(_components.code, {\n children: \"metadata\"\n }), \" rule: a model saved with \", _jsx(_components.code, {\n children: \"model_config.connect_via_relay: true\"\n }), \" and a \", _jsx(_components.code, {\n children: \"model_config.metadata.relay\"\n }), \" block is projected onto \", _jsx(_components.code, {\n children: \"target.connect_via_relay\"\n }), \" / \", _jsx(_components.code, {\n children: \"target.metadata.relay\"\n }), \" and runs through your bridge exactly as an inline relay target would. A saved model carrying \", _jsx(_components.code, {\n children: \"metadata.relay\"\n }), \" \", _jsx(_components.strong, {\n children: \"alongside\"\n }), \" other provider metadata still returns \", _jsx(_components.code, {\n children: \"400\"\n }), \", and so does one that sets \", _jsx(_components.code, {\n children: \"connect_via_relay\"\n }), \" without a \", _jsx(_components.code, {\n children: \"metadata.relay\"\n }), \" block, or a \", _jsx(_components.code, {\n children: \"metadata.relay\"\n }), \" block without the flag - a half-configured relay would otherwise be called directly at an address that only resolves inside your network.\"]\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":{"codeStyling":"system","config":{},"pageMetadata":{"openapi":"POST /rt/model/redteam","title":"Run Redteam with saved model","description":"Identical to `POST /rt/redteam`, except the system under test is a **saved model** named in the `X-Enkrypt-Model` / `X-Enkrypt-Model-Version` headers instead of an inline `target`. The gateway resolves the model and fills in `target` before the request reaches the Red Team service.\n\nSaved models that reach their provider through a custom cURL command, custom headers/payload/response format, JWT auth, provider-specific `auth_data` or `metadata`, or an outbound proxy have no equivalent in the `target` shape and return `400`. Use an inline `target` on `POST /rt/redteam` for those, or the Archived Red Team API.\n\nRelay routing is the one exception to that `metadata` rule: a model saved with `model_config.connect_via_relay: true` and a `model_config.metadata.relay` block is projected onto `target.connect_via_relay` / `target.metadata.relay` and runs through your bridge exactly as an inline relay target would. A saved model carrying `metadata.relay` **alongside** other provider metadata still returns `400`, and so does one that sets `connect_via_relay` without a `metadata.relay` block, or a `metadata.relay` block without the flag - a half-configured relay would otherwise be called directly at an address that only resolves inside your network.","href":"/api-reference/redteam-v2-api-reference/endpoint/run-redteam-saved-model"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Redteam"],"summary":"Run Redteam with saved model","description":"Identical to `POST /rt/redteam`, except the system under test is a **saved model** named in the `X-Enkrypt-Model` / `X-Enkrypt-Model-Version` headers instead of an inline `target`. The gateway resolves the model and fills in `target` before the request reaches the Red Team service.\n\nSaved models that reach their provider through a custom cURL command, custom headers/payload/response format, JWT auth, provider-specific `auth_data` or `metadata`, or an outbound proxy have no equivalent in the `target` shape and return `400`. Use an inline `target` on `POST /rt/redteam` for those, or the Archived Red Team API.\n\nRelay routing is the one exception to that `metadata` rule: a model saved with `model_config.connect_via_relay: true` and a `model_config.metadata.relay` block is projected onto `target.connect_via_relay` / `target.metadata.relay` and runs through your bridge exactly as an inline relay target would. A saved model carrying `metadata.relay` **alongside** other provider metadata still returns `400`, and so does one that sets `connect_via_relay` without a `metadata.relay` block, or a `metadata.relay` block without the flag - a half-configured relay would otherwise be called directly at an address that only resolves inside your network.","operationId":"rt_run_redteam_saved_model_post","parameters":["d09748b4-d2c3-477a-9c25-1ef0a32e438a","72fe5319-53ee-4612-b09e-4bf1bf757458","864b1a18-a3f5-4a66-9eac-aa880d89c567"],"requestBody":"00077674-d8cd-42b8-8439-02b9e7986df1","responses":{"202":"63fbcc5d-754f-4b76-a432-7f29305d0c68","422":"c5bfe590-4d3b-4a72-ad9e-8af3b3b501d7"},"method":"post","type":"path","servers":["46d259d2-9225-46ce-aca1-4e05427371e5"],"security":["8565320a-4e60-418d-8700-2d1d509f0638"],"path":"/rt/model/redteam","baseUrlOptions":["https://api.enkryptai.com"],"title":"Run Redteam with saved model","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"d09748b4-d2c3-477a-9c25-1ef0a32e438a":{"name":"X-Enkrypt-Policy","in":"header","required":false,"schema":{"title":"Code of Conduct Policy Name","type":"string","description":"Name of a saved Code of Conduct policy to test against. The gateway resolves it, renders its rules into `context.policy_description` (v1 free text, or the v2 Policy Wizard enabled rules joined in their stored order) and records the name on the run as `policy_name`. This OVERRIDES any `context.policy_description` sent in the body, so a run is never labelled with one policy but generated from another's text - omit the header to keep your own wording.","example":"customer-support-coc","isRequired":false,"uniqueKey":"","typeLabel":"string"}},"72fe5319-53ee-4612-b09e-4bf1bf757458":{"name":"X-Enkrypt-Model","in":"header","required":true,"schema":{"title":"Model Name","type":"string","description":"The model saved name. E.g. Test Model","example":"Test Model","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"864b1a18-a3f5-4a66-9eac-aa880d89c567":{"name":"X-Enkrypt-Model-Version","in":"header","required":true,"schema":{"title":"Model Version","type":"string","description":"The model version. Default is 'v1'","example":"v1","isRequired":true,"uniqueKey":"","typeLabel":"string"}}},"requestBody":{"content":{"application/json":{"schema":{"properties":{"risk_categories":{"oneOf":[{"additionalProperties":{"properties":{"attack_config":{"oneOf":[{"additionalProperties":{"additionalProperties":true,"type":"object","uniqueKey":"risk_categories.oneOf.0.additionalProperties.attack_config.oneOf.0.additionalProperties","typeLabel":"object"},"x-propertyNames":{"enum":["basic","encoding","deepinception","single_shot","graph","obfuscation","lang","tap","goat","rt_agent","rt_agent_v2","derail_yourself","figstep","camo","fc","deixis","word_masking","long_character","attack_in_the_middle","waveform","audio_goat","whisper_bandit"]},"type":"object","title":"Attack Config","uniqueKey":"risk_categories.oneOf.0.additionalProperties.attack_config.oneOf.0","typeLabel":"Attack Config · object"},{"additionalProperties":{"additionalProperties":true,"type":"object","uniqueKey":"risk_categories.oneOf.0.additionalProperties.attack_config.oneOf.1.additionalProperties","typeLabel":"object"},"x-propertyNames":{"enum":["basic","encoding","deepinception","single_shot","graph","obfuscation","lang","tap","goat","rt_agent","rt_agent_v2","derail_yourself","figstep","camo","fc","deixis","word_masking","long_character","attack_in_the_middle","waveform","audio_goat","whisper_bandit"]},"type":"null","title":"Attack Config","uniqueKey":"risk_categories.oneOf.0.additionalProperties.attack_config.oneOf.1","typeLabel":"null"}],"uniqueKey":"risk_categories.oneOf.0.additionalProperties.attack_config","typeLabel":"Attack Config · object | null"},"sub_categories":{"oneOf":[{"items":{"type":"string","uniqueKey":"risk_categories.oneOf.0.additionalProperties.sub_categories.oneOf.0.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Sub Categories","uniqueKey":"risk_categories.oneOf.0.additionalProperties.sub_categories.oneOf.0","typeLabel":"string[]"},{"items":{"type":"string"},"type":"null","title":"Sub Categories","uniqueKey":"risk_categories.oneOf.0.additionalProperties.sub_categories.oneOf.1","typeLabel":"null"}],"uniqueKey":"risk_categories.oneOf.0.additionalProperties.sub_categories","typeLabel":"string[] | null"}},"additionalProperties":false,"type":"object","title":"CategoryConfig","description":"Per-category config block. `{}` = include in scope, no attacks (TM mode).\n\nFor /redteam: `attacks` is required (list or dict). Optional `sub_categories`\nscopes generation to free-form phrases from `/threat-modeling/categories`\n(or a manual edit of that profile). Omitted → expand all taxonomy subs.\nFor /threat-modeling and /threat-modeling/categories: must be empty `{}`\n(`attacks` and `sub_categories` must not be set).","uniqueKey":"risk_categories.oneOf.0.additionalProperties","typeLabel":"CategoryConfig · object"},"x-propertyNames":{"enum":["safety_harm","privacy_data_protection","security_fraud","bias_fairness_ethical_harm","legal_ip_liability","brand_reputation_trust","product_misuse_abuse","performance_reliability_quality"]},"type":"object","title":"Risk Categories","uniqueKey":"risk_categories.oneOf.0","typeLabel":"Risk Categories · object"},{"additionalProperties":{"properties":{"attack_config":{"oneOf":[{"additionalProperties":{"additionalProperties":true,"type":"object","uniqueKey":"risk_categories.oneOf.1.additionalProperties.attack_config.oneOf.0.additionalProperties","typeLabel":"object"},"x-propertyNames":{"enum":["basic","encoding","deepinception","single_shot","graph","obfuscation","lang","tap","goat","rt_agent","rt_agent_v2","derail_yourself","figstep","camo","fc","deixis","word_masking","long_character","attack_in_the_middle","waveform","audio_goat","whisper_bandit"]},"type":"object","title":"Attack Config","uniqueKey":"risk_categories.oneOf.1.additionalProperties.attack_config.oneOf.0","typeLabel":"Attack Config · object"},{"additionalProperties":{"additionalProperties":true,"type":"object","uniqueKey":"risk_categories.oneOf.1.additionalProperties.attack_config.oneOf.1.additionalProperties","typeLabel":"object"},"x-propertyNames":{"enum":["basic","encoding","deepinception","single_shot","graph","obfuscation","lang","tap","goat","rt_agent","rt_agent_v2","derail_yourself","figstep","camo","fc","deixis","word_masking","long_character","attack_in_the_middle","waveform","audio_goat","whisper_bandit"]},"type":"null","title":"Attack Config","uniqueKey":"risk_categories.oneOf.1.additionalProperties.attack_config.oneOf.1","typeLabel":"null"}],"uniqueKey":"risk_categories.oneOf.1.additionalProperties.attack_config","typeLabel":"Attack Config · object | null"},"sub_categories":{"oneOf":[{"items":{"type":"string","uniqueKey":"risk_categories.oneOf.1.additionalProperties.sub_categories.oneOf.0.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Sub Categories","uniqueKey":"risk_categories.oneOf.1.additionalProperties.sub_categories.oneOf.0","typeLabel":"string[]"},{"items":{"type":"string"},"type":"null","title":"Sub Categories","uniqueKey":"risk_categories.oneOf.1.additionalProperties.sub_categories.oneOf.1","typeLabel":"null"}],"uniqueKey":"risk_categories.oneOf.1.additionalProperties.sub_categories","typeLabel":"string[] | null"}},"additionalProperties":false,"type":"object","title":"CategoryConfig","description":"Per-category config block. `{}` = include in scope, no attacks (TM mode).\n\nFor /redteam: `attacks` is required (list or dict). Optional `sub_categories`\nscopes generation to free-form phrases from `/threat-modeling/categories`\n(or a manual edit of that profile). Omitted → expand all taxonomy subs.\nFor /threat-modeling and /threat-modeling/categories: must be empty `{}`\n(`attacks` and `sub_categories` must not be set).","uniqueKey":"risk_categories.oneOf.1.additionalProperties","typeLabel":"CategoryConfig · object"},"x-propertyNames":{"enum":["safety_harm","privacy_data_protection","security_fraud","bias_fairness_ethical_harm","legal_ip_liability","brand_reputation_trust","product_misuse_abuse","performance_reliability_quality"]},"type":"null","title":"Risk Categories","uniqueKey":"risk_categories.oneOf.1","typeLabel":"null"}],"uniqueKey":"risk_categories","typeLabel":"Risk Categories · object | null"},"compliance_frameworks":{"oneOf":[{"items":{"type":"string","enum":["owasp_llm_top10","eu_ai_act","nist_ai_rmf","mitre_atlas","iso_42001","aiuc_1"],"uniqueKey":"compliance_frameworks.oneOf.0.items.[INDEX]","typeLabel":"enum\u003cstring>"},"type":"array","title":"Compliance Frameworks","uniqueKey":"compliance_frameworks.oneOf.0","typeLabel":"enum\u003cstring>[]"},{"items":{"type":"string","enum":["owasp_llm_top10","eu_ai_act","nist_ai_rmf","mitre_atlas","iso_42001","aiuc_1"]},"type":"null","title":"Compliance Frameworks","uniqueKey":"compliance_frameworks.oneOf.1","typeLabel":"null"}],"uniqueKey":"compliance_frameworks","typeLabel":"enum\u003cstring>[] | null"},"context":{"oneOf":[{"properties":{"system_description":{"oneOf":[{"type":"string","maxLength":2000,"title":"System Description","uniqueKey":"context.oneOf.0.system_description.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":2000,"title":"System Description","uniqueKey":"context.oneOf.0.system_description.oneOf.1","typeLabel":"null"}],"uniqueKey":"context.oneOf.0.system_description","typeLabel":"string | null"},"policy_description":{"oneOf":[{"type":"string","maxLength":5000,"title":"Policy Description","uniqueKey":"context.oneOf.0.policy_description.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":5000,"title":"Policy Description","uniqueKey":"context.oneOf.0.policy_description.oneOf.1","typeLabel":"null"}],"uniqueKey":"context.oneOf.0.policy_description","typeLabel":"string | null"},"policy_rules":{"oneOf":[{"type":"array","description":"The rules the system is supposed to follow, structured - one object per rule. Mutually exclusive with policy_description: send one or the other. Naming a saved Code of Conduct policy in the X-Enkrypt-Policy header fills this in for a Policy Wizard policy and clears policy_description.","items":{"type":"object","properties":{"id":{"type":"string","title":"Id","uniqueKey":"context.oneOf.0.policy_rules.oneOf.0.items.[INDEX].id","typeLabel":"string"},"text":{"type":"string","title":"Text","uniqueKey":"context.oneOf.0.policy_rules.oneOf.0.items.[INDEX].text","typeLabel":"string"},"risk_category":{"type":"string","title":"Risk Category","uniqueKey":"context.oneOf.0.policy_rules.oneOf.0.items.[INDEX].risk_category","typeLabel":"string"},"severity":{"type":"string","title":"Severity","uniqueKey":"context.oneOf.0.policy_rules.oneOf.0.items.[INDEX].severity","typeLabel":"string"},"frameworks":{"type":"array","items":{"type":"string","uniqueKey":"context.oneOf.0.policy_rules.oneOf.0.items.[INDEX].frameworks.items.[INDEX]","typeLabel":"string"},"title":"Frameworks","uniqueKey":"context.oneOf.0.policy_rules.oneOf.0.items.[INDEX].frameworks","typeLabel":"string[]"}},"additionalProperties":true,"uniqueKey":"context.oneOf.0.policy_rules.oneOf.0.items.[INDEX]","typeLabel":"object"},"title":"Policy Rules","uniqueKey":"context.oneOf.0.policy_rules.oneOf.0","typeLabel":"Policy Rules · object[]"},{"type":"null","description":"The rules the system is supposed to follow, structured - one object per rule. Mutually exclusive with policy_description: send one or the other. Naming a saved Code of Conduct policy in the X-Enkrypt-Policy header fills this in for a Policy Wizard policy and clears policy_description.","items":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"text":{"type":"string","title":"Text"},"risk_category":{"type":"string","title":"Risk Category"},"severity":{"type":"string","title":"Severity"},"frameworks":{"type":"array","items":{"type":"string"},"title":"Frameworks"}},"additionalProperties":true},"title":"Policy Rules","uniqueKey":"context.oneOf.0.policy_rules.oneOf.1","typeLabel":"null"}],"uniqueKey":"context.oneOf.0.policy_rules","typeLabel":"Policy Rules · object[] | null"}},"additionalProperties":false,"type":"object","title":"Context","uniqueKey":"context.oneOf.0","typeLabel":"Context · object"},{"properties":{"system_description":{"oneOf":[{"type":"string","maxLength":2000,"title":"System Description"},{"type":"null","maxLength":2000,"title":"System Description"}]},"policy_description":{"oneOf":[{"type":"string","maxLength":5000,"title":"Policy Description"},{"type":"null","maxLength":5000,"title":"Policy Description"}]},"policy_rules":{"oneOf":[{"type":"array","description":"The rules the system is supposed to follow, structured - one object per rule. Mutually exclusive with policy_description: send one or the other. Naming a saved Code of Conduct policy in the X-Enkrypt-Policy header fills this in for a Policy Wizard policy and clears policy_description.","items":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"text":{"type":"string","title":"Text"},"risk_category":{"type":"string","title":"Risk Category"},"severity":{"type":"string","title":"Severity"},"frameworks":{"type":"array","items":{"type":"string"},"title":"Frameworks"}},"additionalProperties":true},"title":"Policy Rules"},{"type":"null","description":"The rules the system is supposed to follow, structured - one object per rule. Mutually exclusive with policy_description: send one or the other. Naming a saved Code of Conduct policy in the X-Enkrypt-Policy header fills this in for a Policy Wizard policy and clears policy_description.","items":{"type":"object","properties":{"id":{"type":"string","title":"Id"},"text":{"type":"string","title":"Text"},"risk_category":{"type":"string","title":"Risk Category"},"severity":{"type":"string","title":"Severity"},"frameworks":{"type":"array","items":{"type":"string"},"title":"Frameworks"}},"additionalProperties":true},"title":"Policy Rules"}]}},"additionalProperties":false,"type":"null","title":"Context","uniqueKey":"context.oneOf.1","typeLabel":"null"}],"uniqueKey":"context","typeLabel":"Context · object | null"},"generation_config":{"oneOf":[{"properties":{"dataset_name":{"oneOf":[{"type":"string","maxLength":200,"minLength":1,"title":"Dataset Name","uniqueKey":"generation_config.oneOf.0.dataset_name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":200,"minLength":1,"title":"Dataset Name","uniqueKey":"generation_config.oneOf.0.dataset_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"generation_config.oneOf.0.dataset_name","typeLabel":"string | null"},"max_prompts":{"oneOf":[{"type":"integer","maximum":500,"minimum":1,"title":"Max Prompts","uniqueKey":"generation_config.oneOf.0.max_prompts.oneOf.0","typeLabel":"integer"},{"type":"null","maximum":500,"minimum":1,"title":"Max Prompts","uniqueKey":"generation_config.oneOf.0.max_prompts.oneOf.1","typeLabel":"null"}],"uniqueKey":"generation_config.oneOf.0.max_prompts","typeLabel":"integer | null"},"seed_prompts":{"oneOf":[{"items":{"properties":{"prompt":{"title":"Prompt","type":"string","isRequired":true,"uniqueKey":"generation_config.oneOf.0.seed_prompts.oneOf.0.items.[INDEX].prompt","typeLabel":"string"},"category":{"oneOf":[{"type":"string","enum":["safety_harm","privacy_data_protection","security_fraud","bias_fairness_ethical_harm","legal_ip_liability","brand_reputation_trust","product_misuse_abuse","performance_reliability_quality"],"title":"Category","uniqueKey":"generation_config.oneOf.0.seed_prompts.oneOf.0.items.[INDEX].category.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["safety_harm","privacy_data_protection","security_fraud","bias_fairness_ethical_harm","legal_ip_liability","brand_reputation_trust","product_misuse_abuse","performance_reliability_quality"],"title":"Category","uniqueKey":"generation_config.oneOf.0.seed_prompts.oneOf.0.items.[INDEX].category.oneOf.1","typeLabel":"null"}],"uniqueKey":"generation_config.oneOf.0.seed_prompts.oneOf.0.items.[INDEX].category","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"type":"object","required":["prompt"],"title":"SeedPrompt","uniqueKey":"generation_config.oneOf.0.seed_prompts.oneOf.0.items.[INDEX]","typeLabel":"SeedPrompt · object"},"type":"array","maxItems":50,"title":"Seed Prompts","uniqueKey":"generation_config.oneOf.0.seed_prompts.oneOf.0","typeLabel":"SeedPrompt · object[]"},{"items":{"properties":{"prompt":{"title":"Prompt","type":"string"},"category":{"oneOf":[{"type":"string","enum":["safety_harm","privacy_data_protection","security_fraud","bias_fairness_ethical_harm","legal_ip_liability","brand_reputation_trust","product_misuse_abuse","performance_reliability_quality"],"title":"Category"},{"type":"null","enum":["safety_harm","privacy_data_protection","security_fraud","bias_fairness_ethical_harm","legal_ip_liability","brand_reputation_trust","product_misuse_abuse","performance_reliability_quality"],"title":"Category"}]}},"additionalProperties":false,"type":"object","required":["prompt"],"title":"SeedPrompt"},"type":"null","maxItems":50,"title":"Seed Prompts","uniqueKey":"generation_config.oneOf.0.seed_prompts.oneOf.1","typeLabel":"null"}],"uniqueKey":"generation_config.oneOf.0.seed_prompts","typeLabel":"SeedPrompt · object[] | null"},"include_standard_library":{"type":"boolean","title":"Include Standard Library","default":true,"uniqueKey":"generation_config.oneOf.0.include_standard_library","typeLabel":"boolean"}},"additionalProperties":false,"type":"object","title":"GenerationConfig","description":"`generation_config` block per payload.md.\n\nTwo mutually-exclusive modes:\n - Pre-built dataset: `dataset_name`\n - On-the-fly generation: `max_prompts` and/or `seed_prompts`\n\nPlus an orthogonal `include_standard_library` toggle (default true).","uniqueKey":"generation_config.oneOf.0","typeLabel":"GenerationConfig · object"},{"properties":{"dataset_name":{"oneOf":[{"type":"string","maxLength":200,"minLength":1,"title":"Dataset Name"},{"type":"null","maxLength":200,"minLength":1,"title":"Dataset Name"}]},"max_prompts":{"oneOf":[{"type":"integer","maximum":500,"minimum":1,"title":"Max Prompts"},{"type":"null","maximum":500,"minimum":1,"title":"Max Prompts"}]},"seed_prompts":{"oneOf":[{"items":{"properties":{"prompt":{"title":"Prompt","type":"string"},"category":{"oneOf":[{"type":"string","enum":["safety_harm","privacy_data_protection","security_fraud","bias_fairness_ethical_harm","legal_ip_liability","brand_reputation_trust","product_misuse_abuse","performance_reliability_quality"],"title":"Category"},{"type":"null","enum":["safety_harm","privacy_data_protection","security_fraud","bias_fairness_ethical_harm","legal_ip_liability","brand_reputation_trust","product_misuse_abuse","performance_reliability_quality"],"title":"Category"}]}},"additionalProperties":false,"type":"object","required":["prompt"],"title":"SeedPrompt"},"type":"array","maxItems":50,"title":"Seed Prompts"},{"items":{"properties":{"prompt":{"title":"Prompt","type":"string"},"category":{"oneOf":[{"type":"string","enum":["safety_harm","privacy_data_protection","security_fraud","bias_fairness_ethical_harm","legal_ip_liability","brand_reputation_trust","product_misuse_abuse","performance_reliability_quality"],"title":"Category"},{"type":"null","enum":["safety_harm","privacy_data_protection","security_fraud","bias_fairness_ethical_harm","legal_ip_liability","brand_reputation_trust","product_misuse_abuse","performance_reliability_quality"],"title":"Category"}]}},"additionalProperties":false,"type":"object","required":["prompt"],"title":"SeedPrompt"},"type":"null","maxItems":50,"title":"Seed Prompts"}]},"include_standard_library":{"type":"boolean","title":"Include Standard Library","default":true}},"additionalProperties":false,"type":"null","title":"GenerationConfig","description":"`generation_config` block per payload.md.\n\nTwo mutually-exclusive modes:\n - Pre-built dataset: `dataset_name`\n - On-the-fly generation: `max_prompts` and/or `seed_prompts`\n\nPlus an orthogonal `include_standard_library` toggle (default true).","uniqueKey":"generation_config.oneOf.1","typeLabel":"null"}],"uniqueKey":"generation_config","typeLabel":"GenerationConfig · object | null"},"run_name":{"oneOf":[{"type":"string","maxLength":200,"minLength":1,"title":"Run Name","uniqueKey":"run_name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":200,"minLength":1,"title":"Run Name","uniqueKey":"run_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"run_name","typeLabel":"string | null"},"comprehensiveness":{"oneOf":[{"type":"string","enum":["Low","Medium","High","Standard","Comprehensive"],"title":"Comprehensiveness","description":"How exhaustively to test. `Standard` runs the normal attack budget and `Comprehensive` widens it; `Low`, `Medium` and `High` are the equivalent sample-size settings surfaced in the dashboard. Omit to use the service default.","example":"Standard","uniqueKey":"comprehensiveness.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["Low","Medium","High","Standard","Comprehensive"],"title":"Comprehensiveness","description":"How exhaustively to test. `Standard` runs the normal attack budget and `Comprehensive` widens it; `Low`, `Medium` and `High` are the equivalent sample-size settings surfaced in the dashboard. Omit to use the service default.","example":"Standard","uniqueKey":"comprehensiveness.oneOf.1","typeLabel":"null"}],"uniqueKey":"comprehensiveness","typeLabel":"enum\u003cstring> | null"},"user_metadata":{"oneOf":[{"additionalProperties":true,"type":"object","title":"User Metadata","uniqueKey":"user_metadata.oneOf.0","typeLabel":"User Metadata · object"},{"additionalProperties":true,"type":"null","title":"User Metadata","uniqueKey":"user_metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"user_metadata","typeLabel":"User Metadata · object | null"}},"additionalProperties":false,"type":"object","title":"RTv2RedteamRequestSavedModel","description":"`POST /v1/redteam` payload.\n\nPer payload.md: model + (risk_categories | compliance_frameworks) + context\n+ generation_config. `attack_config` lives nested under each risk_category.\nOptional\n`sub_categories` phrases (from `/threat-modeling/categories`) may also nest\nunder each risk_category to scope on-the-fly generation.\n\n`target` is omitted: the saved model named in the `X-Enkrypt-Model` / `X-Enkrypt-Model-Version` headers supplies it.","uniqueKey":"","typeLabel":"RTv2RedteamRequestSavedModel · object"},"examples":{"Example":{"title":"Example","value":{"risk_categories":{},"compliance_frameworks":[],"context":{"system_description":"\u003cstring>","policy_description":"\u003cstring>","policy_rules":[{"id":"\u003cstring>","text":"\u003cstring>","risk_category":"\u003cstring>","severity":"\u003cstring>","frameworks":["\u003cstring>"]}]},"generation_config":{"dataset_name":"\u003cstring>","max_prompts":250,"seed_prompts":[{"prompt":"\u003cstring>"}],"include_standard_library":true},"run_name":"\u003cstring>","comprehensiveness":"Standard","user_metadata":{}}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"63fbcc5d-754f-4b76-a432-7f29305d0c68":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"RunQueuedResponse","description":"The accepted run. `run_id` is the value to carry into the run endpoints (`GET /rt/runs/{run_id}`, `/records`, `/results`, `/stream`).\n\n**Do not follow the `*_url` fields verbatim.** They are relative and are not guaranteed to carry the `/rt/` prefix this API is published under, so requesting one as given can return `400`. Build the URL from `run_id` and the paths documented here instead - `/rt/runs/{run_id}/records` is the resource you want. The same applies to `records_url` on the results payload.\n\n`websocket_url` is the **Server-Sent Events** progress stream (`/rt/runs/{run_id}/stream`) despite its name. The live log socket is `logs_url` - a relative path to join onto `wss://api.enkryptai.com/wss/redteam/v1/logs/tasks/`. See the `Stream Run Logs (WebSocket)` endpoint.","uniqueKey":"","typeLabel":"RunQueuedResponse · object"},"examples":{"Example":{"title":"Example","value":{}}},"exampleType":"generated"}},"exampleType":"generated"},"c5bfe590-4d3b-4a72-ad9e-8af3b3b501d7":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"oneOf":[{"type":"string","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"integer","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.1","typeLabel":"integer"}],"uniqueKey":"detail.items.[INDEX].loc.items.[INDEX]","typeLabel":"string | integer"},"type":"array","title":"Location","isRequired":true,"uniqueKey":"detail.items.[INDEX].loc","typeLabel":"(string | integer)[]"},"msg":{"type":"string","title":"Message","isRequired":true,"uniqueKey":"detail.items.[INDEX].msg","typeLabel":"string"},"type":{"type":"string","title":"Error Type","isRequired":true,"uniqueKey":"detail.items.[INDEX].type","typeLabel":"string"},"input":{"oneOf":[{"title":"Input"}],"uniqueKey":"detail.items.[INDEX].input","typeLabel":"any"},"ctx":{"type":"object","title":"Context","uniqueKey":"detail.items.[INDEX].ctx","typeLabel":"Context · object"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError","uniqueKey":"detail.items.[INDEX]","typeLabel":"ValidationError · object"},"type":"array","title":"Detail","uniqueKey":"detail","typeLabel":"ValidationError · object[]"}},"type":"object","title":"HTTPValidationError","uniqueKey":"","typeLabel":"HTTPValidationError · object"},"examples":{"Example":{"title":"Example","value":{"detail":[{"loc":["\u003cstring>"],"msg":"\u003cstring>","type":"\u003cstring>","input":"\u003cunknown>","ctx":{}}]}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"8565320a-4e60-418d-8700-2d1d509f0638":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"apikey","scopes":[],"schemeName":"apiKeyAuth"}}},"servers":{"46d259d2-9225-46ce-aca1-4e05427371e5":{"url":"https://api.enkryptai.com"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"apikey","scopes":[],"schemeName":"apiKeyAuth"},"schema":{"title":"apikey","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"apiKeyAuth","name":"apikey"}],"title":"apiKeyAuth"}]},"originalFileLocation":"enkrypt-openapi.json"},"subdomain":"enkryptai-42","siteName":"Enkrypt AI","title":"Run Redteam with saved model - Enkrypt AI","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-01T11:41:33.197Z","originalFileLocation":"api-reference/redteam-v2-api-reference/endpoint/run-redteam-saved-model.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=\"light\"}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=\"Identical to POST /rt/redteam, except the system under test is a saved model named in the X-Enkrypt-Model / X-Enkrypt-Model-Version headers instead of an inline target. The gateway resolves the model and fills in target before the request reaches the Red Team service. Saved models that reach their provider through a custom cURL command, custom headers/payload/response format, JWT auth, provider-specific auth_data or metadata, or an outbound proxy have no equivalent in the target shape and return 400. Use an inline target on POST /rt/redteam for those, or the Archived Red Team API. Relay routing is the one exception to that metadata rule: a model saved with model_config.connect_via_relay: true and a model_config.metadata.relay block is projected onto target.connect_via_relay / target.metadata.relay and runs through your bridge exactly as an inline relay target would. A saved model carrying metadata.relay alongside other provider metadata still returns 400, and so does one that sets connect_via_relay without a metadata.relay block, or a metadata.relay block without the flag - a half-configured relay would otherwise be called directly at an address that only resolves inside your network.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Enkrypt AI\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/enkryptai-42/zTk8P2FqD4OFror7/_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/enkryptai-42/zTk8P2FqD4OFror7/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/enkryptai-42/zTk8P2FqD4OFror7/_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/enkryptai-42/zTk8P2FqD4OFror7/_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/enkryptai-42/zTk8P2FqD4OFror7/_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/enkryptai-42/zTk8P2FqD4OFror7/_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/enkryptai-42/zTk8P2FqD4OFror7/_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/enkryptai-42/zTk8P2FqD4OFror7/_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/enkryptai-42/zTk8P2FqD4OFror7/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Run Redteam with saved model - Enkrypt AI\">\u003cmeta data-mint-head property=\"og:description\" content=\"Identical to POST /rt/redteam, except the system under test is a saved model named in the X-Enkrypt-Model / X-Enkrypt-Model-Version headers instead of an inline target. The gateway resolves the model and fills in target before the request reaches the Red Team service. Saved models that reach their provider through a custom cURL command, custom headers/payload/response format, JWT auth, provider-specific auth_data or metadata, or an outbound proxy have no equivalent in the target shape and return 400. Use an inline target on POST /rt/redteam for those, or the Archived Red Team API. Relay routing is the one exception to that metadata rule: a model saved with model_config.connect_via_relay: true and a model_config.metadata.relay block is projected onto target.connect_via_relay / target.metadata.relay and runs through your bridge exactly as an inline relay target would. A saved model carrying metadata.relay alongside other provider metadata still returns 400, and so does one that sets connect_via_relay without a metadata.relay block, or a metadata.relay block without the flag - a half-configured relay would otherwise be called directly at an address that only resolves inside your network.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Enkrypt AI\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.enkryptai.com/api-reference/redteam-v2-api-reference/endpoint/run-redteam-saved-model\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://enkryptai-42.mintlify.app/_mintlify/api/og/v2?division=%F0%9F%94%B4+Red+Team+API\u0026amp;title=Run+Redteam+with+saved+model\u0026amp;description=Identical+to+%60POST+%2Frt%2Fredteam%60%2C+except+the+system+under+test+is+a+**saved+model**+named+in+the+%60X-Enkrypt-Model%60+%2F+%60X-Enkrypt-Model-Version%60+headers+instead+of\u0026amp;theme=3d60806929a37a29522c9c45\u0026amp;signature=ee74f28f5d18586962a7a404d45de4041b5a0c1f9603d2c5db3ac263aa8eea89\">\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=\"Run Redteam with saved model - Enkrypt AI\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Identical to POST /rt/redteam, except the system under test is a saved model named in the X-Enkrypt-Model / X-Enkrypt-Model-Version headers instead of an inline target. The gateway resolves the model and fills in target before the request reaches the Red Team service. Saved models that reach their provider through a custom cURL command, custom headers/payload/response format, JWT auth, provider-specific auth_data or metadata, or an outbound proxy have no equivalent in the target shape and return 400. Use an inline target on POST /rt/redteam for those, or the Archived Red Team API. Relay routing is the one exception to that metadata rule: a model saved with model_config.connect_via_relay: true and a model_config.metadata.relay block is projected onto target.connect_via_relay / target.metadata.relay and runs through your bridge exactly as an inline relay target would. A saved model carrying metadata.relay alongside other provider metadata still returns 400, and so does one that sets connect_via_relay without a metadata.relay block, or a metadata.relay block without the flag - a half-configured relay would otherwise be called directly at an address that only resolves inside your network.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://enkryptai-42.mintlify.app/_mintlify/api/og/v2?division=%F0%9F%94%B4+Red+Team+API\u0026amp;title=Run+Redteam+with+saved+model\u0026amp;description=Identical+to+%60POST+%2Frt%2Fredteam%60%2C+except+the+system+under+test+is+a+**saved+model**+named+in+the+%60X-Enkrypt-Model%60+%2F+%60X-Enkrypt-Model-Version%60+headers+instead+of\u0026amp;theme=3d60806929a37a29522c9c45\u0026amp;signature=ee74f28f5d18586962a7a404d45de4041b5a0c1f9603d2c5db3ac263aa8eea89\">\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/enkryptai-42/zTk8P2FqD4OFror7/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Enkrypt AI\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#ff6b6b\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.enkryptai.com/api-reference/redteam-v2-api-reference/endpoint/run-redteam-saved-model\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/redteam-v2-api-reference/endpoint/run-redteam-saved-model.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.enkryptai.com/#organization\",\"name\":\"Enkrypt AI\",\"url\":\"https://docs.enkryptai.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/enkryptai-42/7kWxrBaXsO0YvXjU/logo/light-logo.png?fit=max\u0026auto=format\u0026n=7kWxrBaXsO0YvXjU\u0026q=85\u0026s=3e4d5072cef08dc6b8885a03a7821b72\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.enkryptai.com#website\",\"name\":\"Enkrypt AI\",\"url\":\"https://docs.enkryptai.com\",\"publisher\":{\"@id\":\"https://docs.enkryptai.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.enkryptai.com/api-reference/redteam-v2-api-reference/endpoint/run-redteam-saved-model#webpage\",\"url\":\"https://docs.enkryptai.com/api-reference/redteam-v2-api-reference/endpoint/run-redteam-saved-model\",\"name\":\"Run Redteam with saved model\",\"description\":\"Identical to POST /rt/redteam, except the system under test is a saved model named in the X-Enkrypt-Model / X-Enkrypt-Model-Version headers instead of an inline target. The gateway resolves the model and fills in target before the request reaches the Red Team service. Saved models that reach their provider through a custom cURL command, custom headers/payload/response format, JWT auth, provider-specific auth_data or metadata, or an outbound proxy have no equivalent in the target shape and return 400. Use an inline target on POST /rt/redteam for those, or the Archived Red Team API. Relay routing is the one exception to that metadata rule: a model saved with model_config.connect_via_relay: true and a model_config.metadata.relay block is projected onto target.connect_via_relay / target.metadata.relay and runs through your bridge exactly as an inline relay target would. A saved model carrying metadata.relay alongside other provider metadata still returns 400, and so does one that sets connect_via_relay without a metadata.relay block, or a metadata.relay block without the flag - a half-configured relay would otherwise be called directly at an address that only resolves inside your network.\",\"dateModified\":\"2026-09-01T11:41:33.197Z\",\"isPartOf\":{\"@id\":\"https://docs.enkryptai.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.enkryptai.com/api-reference/redteam-v2-api-reference/endpoint/run-redteam-saved-model#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.enkryptai.com/api-reference/redteam-v2-api-reference/endpoint/run-redteam-saved-model#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://docs.enkryptai.com/api-reference/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"🔴 Red Team API\",\"item\":\"https://docs.enkryptai.com/api-reference/redteam-v2-api-reference/endpoint/run-redteam\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Run Redteam with saved model\",\"item\":\"https://docs.enkryptai.com/api-reference/redteam-v2-api-reference/endpoint/run-redteam-saved-model\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.enkryptai.com/api-reference/redteam-v2-api-reference/endpoint/run-redteam-saved-model#apireference\",\"headline\":\"Run Redteam with saved model\",\"name\":\"Run Redteam with saved model\",\"description\":\"Identical to POST /rt/redteam, except the system under test is a saved model named in the X-Enkrypt-Model / X-Enkrypt-Model-Version headers instead of an inline target. The gateway resolves the model and fills in target before the request reaches the Red Team service. Saved models that reach their provider through a custom cURL command, custom headers/payload/response format, JWT auth, provider-specific auth_data or metadata, or an outbound proxy have no equivalent in the target shape and return 400. Use an inline target on POST /rt/redteam for those, or the Archived Red Team API. Relay routing is the one exception to that metadata rule: a model saved with model_config.connect_via_relay: true and a model_config.metadata.relay block is projected onto target.connect_via_relay / target.metadata.relay and runs through your bridge exactly as an inline relay target would. A saved model carrying metadata.relay alongside other provider metadata still returns 400, and so does one that sets connect_via_relay without a metadata.relay block, or a metadata.relay block without the flag - a half-configured relay would otherwise be called directly at an address that only resolves inside your network.\",\"url\":\"https://docs.enkryptai.com/api-reference/redteam-v2-api-reference/endpoint/run-redteam-saved-model\",\"mainEntityOfPage\":{\"@id\":\"https://docs.enkryptai.com/api-reference/redteam-v2-api-reference/endpoint/run-redteam-saved-model#webpage\"},\"dateModified\":\"2026-09-01T11:41:33.197Z\",\"publisher\":{\"@id\":\"https://docs.enkryptai.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.enkryptai.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Enkrypt AI\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Enkrypt AI","nav":{"global":null,"tabs":[{"tab":"Home","pages":[{"title":"Home","href":"/home/introduction"}]},{"tab":"Get Started","pages":[{"title":"Get Started","href":"/get-started/introduction"}]},{"tab":"API Reference","groups":[{"group":"API Reference","pages":[{"title":"Overview","href":"/api-reference/introduction"},{"group":"📋 Code of Conduct API","pages":[{"title":"Infer Document","openapi":"POST /guardrails/policy-wizard/infer-document","href":"/api-reference/coc-api-reference/endpoint/infer-document"},{"title":"Generate Rules","openapi":"POST /guardrails/policy-wizard/generate-rules","href":"/api-reference/coc-api-reference/endpoint/generate-rules"},{"title":"Add Policy","openapi":"POST /code-of-conduct/add-policy","href":"/api-reference/coc-api-reference/endpoint/add-policy"},{"title":"Get Policy","openapi":"GET /code-of-conduct/get-policy","href":"/api-reference/coc-api-reference/endpoint/get-policy"},{"title":"Modify Policy","openapi":"PATCH /code-of-conduct/modify-policy","href":"/api-reference/coc-api-reference/endpoint/modify-policy"},{"title":"Delete Policy","openapi":"DELETE /code-of-conduct/delete-policy","href":"/api-reference/coc-api-reference/endpoint/delete-policy"},{"title":"List Policies","openapi":"GET /code-of-conduct/list-policies","href":"/api-reference/coc-api-reference/endpoint/list-policies"}]},{"group":"🛡️ Guardrails API Endpoints","pages":[{"openapi":"GET /guardrails/health","title":"Health Check","href":"/api-reference/guardrails-api-reference/endpoint/health-check"},{"openapi":"GET /guardrails/status","title":"Status Check","href":"/api-reference/guardrails-api-reference/endpoint/status"},{"openapi":"GET /guardrails/models","title":"Models Loaded","href":"/api-reference/guardrails-api-reference/endpoint/models"},{"openapi":"POST /guardrails/detect","title":"Guardrails Detect","href":"/api-reference/guardrails-api-reference/endpoint/detect"},{"openapi":"POST /guardrails/batch/detect","title":"Guardrails Batch Detect","href":"/api-reference/guardrails-api-reference/endpoint/batch-detect"},{"title":"Scan URL","openapi":"POST /guardrails/scan-url","href":"/api-reference/guardrails-api-reference/endpoint/scan-url"},{"title":"Scan PDF","openapi":"POST /guardrails/scan-pdf","href":"/api-reference/guardrails-api-reference/endpoint/scan-pdf"},{"title":"Detect Image","openapi":"POST /guardrails/detect-image","href":"/api-reference/guardrails-api-reference/endpoint/detect-image"},{"title":"Detect Audio","openapi":"POST /guardrails/detect-audio","href":"/api-reference/guardrails-api-reference/endpoint/detect-audio"},{"title":"Guardrail Detect Image","openapi":"POST /guardrails/guardrail/detect-image","href":"/api-reference/guardrails-api-reference/endpoint/guardrail-detect-image"},{"title":"Guardrail Detect Audio","openapi":"POST /guardrails/guardrail/detect-audio","href":"/api-reference/guardrails-api-reference/endpoint/guardrail-detect-audio"},{"openapi":"POST /guardrails/pii","title":"PII anonymization and de-anonymization","href":"/api-reference/guardrails-api-reference/endpoint/pii"},{"openapi":"POST /guardrails/hallucination","title":"Detect Hallucination","href":"/api-reference/guardrails-api-reference/endpoint/hallucination"},{"openapi":"POST /guardrails/adherence","title":"Guardrails Adherence","href":"/api-reference/guardrails-api-reference/endpoint/adherence"},{"openapi":"POST /guardrails/relevancy","title":"Guardrails Relevancy","href":"/api-reference/guardrails-api-reference/endpoint/relevancy"},{"title":"Add Guardrail","openapi":"POST /guardrails/add-guardrail","href":"/api-reference/guardrails-api-reference/endpoint/add-guardrail"},{"title":"Get Guardrail","openapi":"GET /guardrails/get-guardrail","href":"/api-reference/guardrails-api-reference/endpoint/get-guardrail"},{"title":"Modify Guardrail","openapi":"PATCH /guardrails/modify-guardrail","href":"/api-reference/guardrails-api-reference/endpoint/modify-guardrail"},{"title":"Delete Guardrail","openapi":"DELETE /guardrails/delete-guardrail","href":"/api-reference/guardrails-api-reference/endpoint/delete-guardrail"},{"title":"List Guardrails","openapi":"GET /guardrails/list-guardrails","href":"/api-reference/guardrails-api-reference/endpoint/list-guardrails"},{"title":"Detect with Guardrail","openapi":"POST /guardrails/guardrail/detect","href":"/api-reference/guardrails-api-reference/endpoint/detect-using-guardrail"},{"title":"Batch Detect with Guardrail","openapi":"POST /guardrails/guardrail/batch/detect","href":"/api-reference/guardrails-api-reference/endpoint/batch-detect-using-guardrail"},{"title":"Guardrail Scan URL","openapi":"POST /guardrails/guardrail/scan-url","href":"/api-reference/guardrails-api-reference/endpoint/guardrail-scan-url"},{"title":"Guardrail Scan PDF","openapi":"POST /guardrails/guardrail/scan-pdf","href":"/api-reference/guardrails-api-reference/endpoint/guardrail-scan-pdf"}]},{"group":"🤖 Models API (Endpoints)","pages":[{"openapi":"POST /models/add-model","title":"Create Model","href":"/api-reference/models-api-reference/endpoint/add-model"},{"openapi":"GET /models/get-model","title":"Get Model","href":"/api-reference/models-api-reference/endpoint/get-model"},{"openapi":"PATCH /models/modify-model","title":"Modify Model","href":"/api-reference/models-api-reference/endpoint/modify-model"},{"openapi":"DELETE /models/delete-model","title":"Delete Model","href":"/api-reference/models-api-reference/endpoint/delete-model"},{"title":"List Models","openapi":"GET /models/list-models","href":"/api-reference/models-api-reference/endpoint/list-models"},{"openapi":"GET /models/get-defaults","title":"Get Defaults","href":"/api-reference/models-api-reference/endpoint/get-defaults"}]},{"group":"🔴 Red Team API","pages":[{"openapi":"POST /rt/redteam","title":"Run Redteam","description":null,"href":"/api-reference/redteam-v2-api-reference/endpoint/run-redteam"},{"openapi":"POST /rt/model/redteam","title":"Run Redteam with saved model","href":"/api-reference/redteam-v2-api-reference/endpoint/run-redteam-saved-model"},{"openapi":"POST /rt/redteam/jailbreak","title":"Run Jailbreak Benchmark","description":"Run Enkrypt AI's fixed **jailbreak benchmark** against a target, as an ordinary Red Team run.\n\nThe recipe is **fixed server-side**: a 60-prompt jailbreak corpus (`jailbreak_bench`) attacked with a set mix of methods chosen from the target's modalities. The dataset, the attack parameters and the evaluation are not caller-configurable, so the body takes only `target`, `run_name` and `user_metadata` - sending `risk_categories`, `compliance_frameworks`, `attack_config`, `generation_config`, `context` or any other key returns `422`.\n\n| Target modalities | Attacks run |\n|---|---|\n| text in, text out | 10 encoding transforms - `upside_down`, `atbash`, `base32`, `caesar`, `pig_latin`, `zalgo`, `code_switching`, `base64`, `zero_width`, `homoglyph`, each applied once per prompt (600 encoding attempts) - plus ARTA (`rt_agent_v2`) and GOAT (`goat`) |\n| text + image in, text out | everything above, plus Deixis (`deixis`) and CAMO (`camo`) |\n\nAny other combination of `target.input_modalities` / `target.output_modalities` is rejected with `422`.\n\nThere is no `context` field, so a Code of Conduct policy cannot be passed in the body; name it in the `X-Enkrypt-Policy` header instead. You do **not** send a user id either - the gateway identifies the run owner from your API key.\n\nAs on `POST /rt/redteam`, the target is health-checked before the run is queued (`400` if it does not answer), and a submission your remaining Red Team credits cannot cover returns `402`. The price is flat per modality class - see [Credits and Usage](/resources/credits).\n\nEverything after submission is the ordinary Red Team v2 flow: a `202` carrying a `run_id` (prefixed `rt-`), then `GET /rt/runs/{run_id}`, `.../results`, `.../records` and `.../stream`, and `POST /rt/runs/{run_id}/resume`, as for any run.","href":"/api-reference/redteam-v2-api-reference/endpoint/run-jailbreak"},{"openapi":"POST /rt/model/redteam/jailbreak","title":"Run Jailbreak Benchmark with saved model","href":"/api-reference/redteam-v2-api-reference/endpoint/run-jailbreak-saved-model"},{"openapi":"POST /rt/threat-modeling","title":"Run Threat Modeling","href":"/api-reference/redteam-v2-api-reference/endpoint/run-threat-modeling"},{"openapi":"POST /rt/threat-modeling/categories","title":"Run Threat Modeling Categories","href":"/api-reference/redteam-v2-api-reference/endpoint/run-threat-modeling-categories"},{"openapi":"POST /rt/threat-modeling/data","title":"Run Threat Modeling Data","href":"/api-reference/redteam-v2-api-reference/endpoint/run-threat-modeling-data"},{"openapi":"POST /rt/playground","title":"Run Playground","href":"/api-reference/redteam-v2-api-reference/endpoint/run-playground"},{"openapi":"POST /rt/model/playground","title":"Run Playground with saved model","href":"/api-reference/redteam-v2-api-reference/endpoint/run-playground-saved-model"},{"openapi":"POST /rt/eval","title":"Submit Eval Batch","href":"/api-reference/redteam-v2-api-reference/endpoint/submit-eval"},{"openapi":"POST /rt/leaderboard","title":"Run Leaderboard","href":"/api-reference/redteam-v2-api-reference/endpoint/run-leaderboard"},{"openapi":"POST /rt/model/leaderboard","title":"Run Leaderboard with saved model","href":"/api-reference/redteam-v2-api-reference/endpoint/run-leaderboard-saved-model"},{"openapi":"GET /rt/runs/{run_id}","title":"Get Run Status","href":"/api-reference/redteam-v2-api-reference/endpoint/get-run-status"},{"openapi":"GET /rt/runs/{run_id}/records","title":"Get Run Records","href":"/api-reference/redteam-v2-api-reference/endpoint/get-run-records"},{"openapi":"GET /rt/runs/{run_id}/results","title":"Get Run Results","href":"/api-reference/redteam-v2-api-reference/endpoint/get-run-results"},{"openapi":"GET /rt/runs/{run_id}/compliance/{framework_id}","title":"Get Compliance Report","href":"/api-reference/redteam-v2-api-reference/endpoint/get-compliance-report"},{"openapi":"POST /rt/runs/{run_id}/signal/{name}","title":"Send Signal","href":"/api-reference/redteam-v2-api-reference/endpoint/send-signal"},{"openapi":"POST /rt/runs/{run_id}/resume","title":"Resume Run","href":"/api-reference/redteam-v2-api-reference/endpoint/resume-run"},{"openapi":"GET /rt/runs/{run_id}/stream","title":"Stream Run Events","href":"/api-reference/redteam-v2-api-reference/endpoint/stream-run-events"},{"openapi":"GET /wss/redteam/v1/logs/tasks/{owner_id}/{job_id}/{model_folder}/app.log","playground":"none","title":"Stream Run Logs (WebSocket)","href":"/api-reference/redteam-v2-api-reference/endpoint/stream-run-logs"},{"openapi":"GET /rt/datasets/{dataset_id}","title":"Get Dataset","href":"/api-reference/redteam-v2-api-reference/endpoint/get-dataset"},{"openapi":"POST /rt/model-health","title":"Model Health","href":"/api-reference/redteam-v2-api-reference/endpoint/model-health"},{"openapi":"POST /rt/model/model-health","title":"Model Health with saved model","href":"/api-reference/redteam-v2-api-reference/endpoint/model-health-saved"},{"openapi":"GET /redteam/relay/v1/relay/bridge","playground":"none","title":"Connect a relay bridge (WebSocket)","href":"/api-reference/redteam-v2-api-reference/endpoint/relay-bridge-connect"},{"openapi":"GET /redteam/relay/v1/relay/bridges/{bridge_id}/status","title":"Relay bridge status","href":"/api-reference/redteam-v2-api-reference/endpoint/relay-bridge-status"},{"openapi":"POST /rt/findings","title":"Get findings based on summary","href":"/api-reference/redteam-v2-api-reference/endpoint/get-findings"},{"openapi":"POST /rt/risk-mitigation/system-prompt","title":"Generate a system prompt for risk mitigation based on red teaming test results","href":"/api-reference/redteam-v2-api-reference/endpoint/risk-mitigation-system-prompt"},{"openapi":"POST /rt/risk-mitigation/guardrails-policy","title":"Generate a guardrail and policy for risk mitigation based on summary","href":"/api-reference/redteam-v2-api-reference/endpoint/risk-mitigation-guardrails-policy"},{"openapi":"GET /rt/health","title":"Red Team Health","href":"/api-reference/redteam-v2-api-reference/endpoint/health"},{"openapi":"GET /rt/status-check","title":"Red Team Status Check","href":"/api-reference/redteam-v2-api-reference/endpoint/status-check"}]},{"group":"🚀 Deployments API","pages":[{"openapi":"POST /deployments/add-deployment","title":"Create Deployment","href":"/api-reference/deployments-api-reference/endpoint/add-deployment"},{"openapi":"GET /deployments/get-deployment","title":"Get Deployment","href":"/api-reference/deployments-api-reference/endpoint/get-deployment"},{"openapi":"PATCH /deployments/modify-deployment","title":"Modify Deployment","href":"/api-reference/deployments-api-reference/endpoint/modify-deployment"},{"openapi":"DELETE /deployments/delete-deployment","title":"Delete Deployment","href":"/api-reference/deployments-api-reference/endpoint/delete-deployment"},{"title":"List Deployments","openapi":"GET /deployments/list-deployments","href":"/api-reference/deployments-api-reference/endpoint/list-deployments"},{"openapi":"GET /deployments/get-allowed-config","title":"Get Allowed Config","href":"/api-reference/deployments-api-reference/endpoint/get-allowed-config"}]},{"group":"🔌 AI Proxy API","pages":[{"openapi":"POST /ai-proxy/chat/completions","title":"AI Chat Completions Proxy Endpoint","href":"/api-reference/ai-proxy-api-reference/endpoint/chat-completions"},{"openapi":"POST /ai-proxy/completions","title":"AI Completions Proxy Endpoint","href":"/api-reference/ai-proxy-api-reference/endpoint/completions"}]},{"group":"🔒 MCP Hub API","pages":[{"openapi":"POST /mcp-hub/scan","title":"Start a New Vulnerability Scan","href":"/api-reference/mcp-hub-api-reference/endpoint/scan"},{"openapi":"POST /mcp-hub/scan/hosted","title":"Scan a Hosted MCP Server","href":"/api-reference/mcp-hub-api-reference/endpoint/hosted-scan"},{"openapi":"POST /mcp-hub/scan/hosted/config","title":"Scan MCP Servers from Config JSON","href":"/api-reference/mcp-hub-api-reference/endpoint/hosted-scan-from-config"},{"openapi":"GET /mcp-hub/scan/{job_id}/status","title":"Get Scan Job Status","href":"/api-reference/mcp-hub-api-reference/endpoint/get-status"},{"openapi":"GET /mcp-hub/scan/{job_id}/results","title":"Get Complete Scan Results","href":"/api-reference/mcp-hub-api-reference/endpoint/get-results"},{"openapi":"GET /mcp-hub/scans","title":"List Scans","href":"/api-reference/mcp-hub-api-reference/endpoint/list-scans"},{"openapi":"GET /mcp-hub/dashboard-stats","title":"Get MCP Hub Scan Statistics","href":"/api-reference/mcp-hub-api-reference/endpoint/dashboard-stats"},{"openapi":"GET /mcp-hub/usage","title":"Get MCP Hub API Usage Summary","href":"/api-reference/mcp-hub-api-reference/endpoint/usage"}]},{"group":"🗂️ MCP Registry Servers API","pages":[{"openapi":"POST /mcp-registry/add-server","title":"Create MCP Registry Server","href":"/api-reference/mcp-registry-servers-api-reference/endpoint/add-server"},{"openapi":"POST /mcp-registry/bulk-add-servers","title":"Bulk-create MCP Registry Servers (atomic)","href":"/api-reference/mcp-registry-servers-api-reference/endpoint/bulk-add-servers"},{"openapi":"GET /mcp-registry/get-server","title":"Get MCP Registry Server","href":"/api-reference/mcp-registry-servers-api-reference/endpoint/get-server"},{"openapi":"PATCH /mcp-registry/modify-server","title":"Update MCP Registry Server","href":"/api-reference/mcp-registry-servers-api-reference/endpoint/modify-server"},{"openapi":"DELETE /mcp-registry/delete-server","title":"Delete MCP Registry Server","href":"/api-reference/mcp-registry-servers-api-reference/endpoint/delete-server"},{"openapi":"GET /mcp-registry/list-servers","title":"List MCP Registry Servers","href":"/api-reference/mcp-registry-servers-api-reference/endpoint/list-servers"},{"openapi":"GET /mcp-registry/list-gateways-by-server","title":"List Gateways by Registry Server","href":"/api-reference/mcp-registry-servers-api-reference/endpoint/list-gateways-by-server"}]},{"group":"🚪 MCP Gateways API","pages":[{"openapi":"POST /mcp-gateway/add-gateway","title":"Create MCP Gateway","href":"/api-reference/mcp-gateways-api-reference/endpoint/add-gateway"},{"openapi":"GET /mcp-gateway/get-gateway","title":"Get MCP Gateway","href":"/api-reference/mcp-gateways-api-reference/endpoint/get-gateway"},{"openapi":"GET /mcp-gateway/get-gateway-config","title":"Get Expanded MCP Gateway Configuration","href":"/api-reference/mcp-gateways-api-reference/endpoint/get-gateway-config"},{"openapi":"PATCH /mcp-gateway/modify-gateway","title":"Update MCP Gateway","href":"/api-reference/mcp-gateways-api-reference/endpoint/modify-gateway"},{"openapi":"DELETE /mcp-gateway/delete-gateway","title":"Delete MCP Gateway","href":"/api-reference/mcp-gateways-api-reference/endpoint/delete-gateway"},{"openapi":"GET /mcp-gateway/list-gateways","title":"List MCP Gateways","href":"/api-reference/mcp-gateways-api-reference/endpoint/list-gateways"}]},{"group":"🧪 MCP Playground API","pages":[{"openapi":"POST /mcp-playground/test-server","title":"Test MCP Server Connectivity","href":"/api-reference/mcp-playground-api-reference/endpoint/test-server"},{"openapi":"GET /mcp-playground/get-tools","title":"Get MCP Server Tools","href":"/api-reference/mcp-playground-api-reference/endpoint/get-tools"},{"openapi":"POST /mcp-playground/call-tool","title":"Call MCP Server Tool","href":"/api-reference/mcp-playground-api-reference/endpoint/call-tool"}]},{"group":"📜 Skill Scanner API","pages":[{"openapi":"POST /skill-hub/scan","title":"Submit a Skill Scan","href":"/api-reference/skill-scanner-api-reference/endpoint/scan"},{"openapi":"GET /skill-hub/scans/{scan_id}","title":"Get Skill Scan","href":"/api-reference/skill-scanner-api-reference/endpoint/get-scan"},{"openapi":"GET /skill-hub/scans/{scan_id}/report","title":"Get Skill Scan Report","href":"/api-reference/skill-scanner-api-reference/endpoint/get-report"},{"openapi":"GET /skill-hub/scans","title":"List Skill Scans","href":"/api-reference/skill-scanner-api-reference/endpoint/list-scans"},{"openapi":"GET /skill-hub/healthz","title":"Skill Scanner Health","href":"/api-reference/skill-scanner-api-reference/endpoint/health"}]},{"group":"⚖️ Compliance API","pages":[{"openapi":"POST /compliance/test-connection","title":"Test Compliance Connection","href":"/api-reference/compliance-api-reference/endpoint/test-connection"},{"openapi":"POST /compliance/add-scan","title":"Add Compliance Scan","href":"/api-reference/compliance-api-reference/endpoint/add-scan"},{"openapi":"GET /compliance/get-scan","title":"Get Compliance Scan","href":"/api-reference/compliance-api-reference/endpoint/get-scan"},{"openapi":"PATCH /compliance/modify-scan","title":"Modify Compliance Scan","href":"/api-reference/compliance-api-reference/endpoint/modify-scan"},{"openapi":"DELETE /compliance/delete-scan","title":"Delete Compliance Scan","href":"/api-reference/compliance-api-reference/endpoint/delete-scan"},{"openapi":"GET /compliance/list-scans","title":"List Compliance Scans","href":"/api-reference/compliance-api-reference/endpoint/list-scans"},{"openapi":"POST /compliance/start-scan","title":"Start Compliance Scan","href":"/api-reference/compliance-api-reference/endpoint/start-scan"},{"openapi":"POST /compliance/pause-scan","title":"Pause Compliance Scan","href":"/api-reference/compliance-api-reference/endpoint/pause-scan"},{"openapi":"GET /compliance/list-log-files","title":"List Compliance Log Files","href":"/api-reference/compliance-api-reference/endpoint/list-log-files"},{"openapi":"GET /compliance/get-message","title":"Get Compliance Message","href":"/api-reference/compliance-api-reference/endpoint/get-message"}]},{"group":"🏆 Leaderboard API","pages":[{"openapi":"GET /leaderboard/v2/models-list","title":"v2 Models List","href":"/api-reference/leaderboard-api-reference/endpoint/v2/models/models-list"},{"openapi":"GET /leaderboard/v2/scores","title":"v2 Scores list","href":"/api-reference/leaderboard-api-reference/endpoint/v2/scores/scores-list"},{"openapi":"GET /leaderboard/v2/scores/{modelName}","title":"v2 Model Score","href":"/api-reference/leaderboard-api-reference/endpoint/v2/scores/model-score"},{"openapi":"GET /leaderboard/v2/details/{modelName}","title":"v2 Model Detail","href":"/api-reference/leaderboard-api-reference/endpoint/v2/details/model-detail"},{"openapi":"GET /leaderboard/v2/summary/{modelName}","title":"v2 Model Summary","href":"/api-reference/leaderboard-api-reference/endpoint/v2/summary/model-summary"},{"openapi":"GET /leaderboard/v2/rank/{modelName}","title":"v2 Model Rank","href":"/api-reference/leaderboard-api-reference/endpoint/v2/rank/model-rank"},{"openapi":"GET /leaderboard/v2/percentiles","title":"v2 Models Risk Percentiles","href":"/api-reference/leaderboard-api-reference/endpoint/v2/percentiles/models-risk-percentiles"}]},{"group":"🗃️ Archived","pages":[{"group":"Datasets (Legacy)","pages":[{"openapi":"POST /datasets/add-task","title":"Datasets Add Task","href":"/api-reference/datasets-api-reference/endpoint/add-task"},{"openapi":"GET /datasets/task-status","title":"Datasets Get Task Status","href":"/api-reference/datasets-api-reference/endpoint/task-status"},{"openapi":"GET /datasets/get-task","title":"Datasets Get Task","href":"/api-reference/datasets-api-reference/endpoint/get-task"},{"openapi":"GET /datasets/get-datacard","title":"Datasets Get Datacard","href":"/api-reference/datasets-api-reference/endpoint/get-datacard"},{"openapi":"GET /datasets/get-dataset","title":"Datasets Get Dataset","href":"/api-reference/datasets-api-reference/endpoint/get-dataset"},{"openapi":"GET /datasets/get-summary","title":"Datasets Get Summary","href":"/api-reference/datasets-api-reference/endpoint/get-summary"},{"title":"List Tasks","openapi":"GET /datasets/list-tasks","href":"/api-reference/datasets-api-reference/endpoint/list-tasks"}]},{"group":"Guardrails Policy (Legacy)","pages":[{"title":"Add Policy (Legacy)","openapi":"POST /guardrails/add-policy","href":"/api-reference/guardrails-api-reference/endpoint/add-policy"},{"title":"Get Policy (Legacy)","openapi":"GET /guardrails/get-policy","href":"/api-reference/guardrails-api-reference/endpoint/get-policy"},{"title":"Modify Policy (Legacy)","openapi":"PATCH /guardrails/modify-policy","href":"/api-reference/guardrails-api-reference/endpoint/modify-policy"},{"title":"Delete Policy (Legacy)","openapi":"DELETE /guardrails/delete-policy","href":"/api-reference/guardrails-api-reference/endpoint/delete-policy"},{"title":"List Policies (Legacy)","openapi":"GET /guardrails/list-policies","href":"/api-reference/guardrails-api-reference/endpoint/list-policies"},{"title":"Detect with Policy (Legacy)","openapi":"POST /guardrails/policy/detect","href":"/api-reference/guardrails-api-reference/endpoint/detect-using-policy"},{"title":"Detect Image with Policy (Legacy)","openapi":"POST /guardrails/policy/detect-image","href":"/api-reference/guardrails-api-reference/endpoint/detect-image-using-policy"},{"title":"Detect Audio with Policy (Legacy)","openapi":"POST /guardrails/policy/detect-audio","href":"/api-reference/guardrails-api-reference/endpoint/detect-audio-using-policy"},{"title":"Policy Batch Detect (Legacy)","openapi":"POST /guardrails/policy/batch/detect","href":"/api-reference/guardrails-api-reference/endpoint/batch-detect-using-policy"},{"title":"Policy Scan URL (Legacy)","openapi":"POST /guardrails/policy/scan-url","href":"/api-reference/guardrails-api-reference/endpoint/policy-scan-url"},{"title":"Policy Scan PDF (Legacy)","openapi":"POST /guardrails/policy/scan-pdf","href":"/api-reference/guardrails-api-reference/endpoint/policy-scan-pdf"}]},{"group":"Red Team (Legacy)","pages":[{"openapi":"GET /redteam/health","title":"Redteam Health","href":"/api-reference/redteam-api-reference/endpoint/health"},{"openapi":"POST /redteam/v3/model-health","title":"Model Health (V3)","href":"/api-reference/redteam-api-reference/endpoint/v3-model-health"},{"openapi":"POST /redteam/model/model-health","title":"Model Health of saved model","href":"/api-reference/redteam-api-reference/endpoint/model-health-saved"},{"openapi":"POST /redteam/v3/add-custom-task","title":"Add Custom Task (V3)","href":"/api-reference/redteam-api-reference/endpoint/v3-add-custom-task"},{"openapi":"POST /redteam/v3/model/add-custom-task","title":"Add Custom Task with saved model (V3)","href":"/api-reference/redteam-api-reference/endpoint/v3-model-add-custom-task"},{"openapi":"PATCH /redteam/cancel-task","title":"Cancel Task","href":"/api-reference/redteam-api-reference/endpoint/cancel-task"},{"openapi":"GET /redteam/get-task","title":"Get Task","href":"/api-reference/redteam-api-reference/endpoint/get-task"},{"openapi":"GET /redteam/task-status","title":"Get Task Status","href":"/api-reference/redteam-api-reference/endpoint/get-task-status"},{"openapi":"GET /redteam/download-link","title":"Get Download Link","href":"/api-reference/redteam-api-reference/endpoint/get-download-link"},{"openapi":"GET /redteam/v3/results/summary","title":"Get Task Results Summary","href":"/api-reference/redteam-api-reference/endpoint/get-results-summary"},{"openapi":"GET /redteam/v3/results/summary/{test_type}","title":"Get Task Results Summary of a specific test type","href":"/api-reference/redteam-api-reference/endpoint/get-summary-test-type"},{"openapi":"GET /redteam/v3/results/details","title":"Get Task Results Details","href":"/api-reference/redteam-api-reference/endpoint/get-all-details"},{"openapi":"GET /redteam/v3/results/details/{test_type}","title":"Get Task Results Details of a specific test type","href":"/api-reference/redteam-api-reference/endpoint/get-details-test-type"},{"openapi":"POST /redteam/findings","title":"Get findings based on summary","href":"/api-reference/redteam-api-reference/endpoint/get-findings"},{"openapi":"POST /redteam/risk-mitigation/system-prompt","title":"Generate a system prompt for risk mitigation based on red teaming test results","href":"/api-reference/redteam-api-reference/endpoint/risk-mitigation-system-prompt"},{"openapi":"POST /redteam/risk-mitigation/guardrails-policy","title":"Generate a guardrail and policy for risk mitigation based on summary","href":"/api-reference/redteam-api-reference/endpoint/risk-mitigation-guardrails-policy"},{"title":"List All Tasks","openapi":"GET /redteam/list-tasks","href":"/api-reference/redteam-api-reference/endpoint/list-all-tasks"},{"openapi":"POST /redteam/model-health","title":"Model Health","href":"/api-reference/redteam-api-reference/endpoint/model-health"},{"openapi":"POST /redteam/v2/add-task","title":"Add Task","href":"/api-reference/redteam-api-reference/endpoint/add-task"},{"openapi":"POST /redteam/v2/model/add-task","title":"Add Task with saved model","href":"/api-reference/redteam-api-reference/endpoint/model-add-task"},{"openapi":"POST /redteam/v2/add-custom-task","title":"Add Custom Task","href":"/api-reference/redteam-api-reference/endpoint/add-custom-task"},{"openapi":"POST /redteam/v2/model/add-custom-task","title":"Add Custom Task with saved model","href":"/api-reference/redteam-api-reference/endpoint/model-add-custom-task"}]},{"group":"Leaderboard","pages":[{"openapi":"GET /leaderboard/models-list","title":"v1 Models List","href":"/api-reference/leaderboard-api-reference/endpoint/v1/models/models-list"},{"openapi":"GET /leaderboard/scores","title":"v1 Scores list","href":"/api-reference/leaderboard-api-reference/endpoint/v1/scores/scores-list"},{"openapi":"GET /leaderboard/scores/{modelName}","title":"v1 Model Score","href":"/api-reference/leaderboard-api-reference/endpoint/v1/scores/model-score"},{"openapi":"GET /leaderboard/details/{modelName}","title":"v1 Model Detail","href":"/api-reference/leaderboard-api-reference/endpoint/v1/details/model-detail"},{"openapi":"GET /leaderboard/summary/{modelName}","title":"v1 Model Summary","href":"/api-reference/leaderboard-api-reference/endpoint/v1/summary/model-summary"},{"openapi":"GET /leaderboard/rank/{modelName}","title":"v1 Model Rank","href":"/api-reference/leaderboard-api-reference/endpoint/v1/rank/model-rank"},{"openapi":"GET /leaderboard/percentiles","title":"v1 Models Risk Percentiles","href":"/api-reference/leaderboard-api-reference/endpoint/v1/percentiles/models-risk-percentiles"}]},{"group":"Policy Atomizer (Legacy)","pages":[{"title":"Policy Atomizer","openapi":"POST /guardrails/policy-atomizer","href":"/api-reference/coc-api-reference/endpoint/policy-atomizer"}]}]}]}]},{"tab":"SDK Reference","pages":[{"title":"SDK Reference","href":"/sdk-reference/python/introduction"}]},{"tab":"Schema and Postman","pages":[{"title":"Schema and Postman","href":"/schema-and-postman/introduction"}]},{"tab":"Resources","pages":[{"title":"Resources","href":"/resources/introduction"}]}]},"basePath":"","title":"Run Redteam with saved model - Enkrypt AI","buildId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","deploymentId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DX1Meug0.js","utils-B_OMIQVC.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-ChxhRPMa.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CuKvD8Iv.js","snippetPresets-C5d7p2hp.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CfHcE8m4.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C1zZV314.js","shallow-CmQhqCJn.js","getApiPlaygroundDisplay-YRo9s1O7.js","CodeSnippet-RN1MTdfk.js","CodeSnippets-DKLPHxJA.js","Page-BAvA99GL.js","getPastedJson-bz0M41mU.js","icon-CsmhpPrv.js","MethodPill-CNGsVE77.js","DuplicateIcon-DilfU_Z2.js","createIcon-BdsYzQck.js","DynamicMarkdown-CbqEDjbV.js","SectionHeading-O6hXpFCN.js","axios-vUo_bRtp.js","Markdown-nKm-uidQ.js","clsx-ClVdStUn.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CIQkMg3R.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-ImrFS4Fy.js"]}