openapi: 3.2.0 info: title: LiteLLM Policy Resolve API description: "Enterprise Edition \n\nProxy Server to call 100+ LLMs in the OpenAI format. [**Customize Swagger Docs**](https://docs.litellm.ai/docs/proxy/enterprise#swagger-docs---custom-routes--branding)\n\n\U0001F449 [```LiteLLM Admin Panel on /ui```](/ui). Create, Edit Keys with SSO. Having issues? Try [```Fallback Login```](/fallback/login)\n\n\U0001F4B8 [```LiteLLM Model Cost Map```](https://models.litellm.ai/).\n\n\U0001F50E [```LiteLLM Model Hub```](/ui/model_hub_table). See available models on the proxy. [**Docs**](https://docs.litellm.ai/docs/proxy/ai_hub)" version: 1.95.0 x-operator: institution x-provenance: method: probed source: https://llmproxy.uva.nl/openapi.json retrieved: '2026-08-19' note: Document is generated by the LiteLLM proxy software the University of Amsterdam self-hosts; the deployment, the key issuance and the host (llmproxy.uva.nl, UvA Azure) are the institution's. servers[] added by API Evangelist because the served document omits it; nothing else altered. servers: - url: https://llmproxy.uva.nl description: University of Amsterdam / Amsterdam University of Applied Sciences shared AI gateway tags: - name: policy_resolve paths: /policies/attachments/estimate-impact: post: description: "Estimate how many keys and teams would be affected by a policy attachment.\n\nUse this before creating an attachment to preview the blast radius.\n\nExample Request:\n```bash\ncurl -X POST \"http://localhost:4000/policies/attachments/estimate-impact\" \\\n -H \"Authorization: Bearer \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"policy_name\": \"hipaa-compliance\",\n \"tags\": [\"healthcare\", \"health-*\"]\n }'\n```" operationId: estimate_attachment_impact_policies_attachments_estimate_impact_post_2 requestBody: content: application/json: schema: $ref: '#/components/schemas/PolicyAttachmentCreateRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AttachmentImpactResponse' description: Successful Response '422': content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' description: Validation Error security: - APIKeyHeader: [] summary: Estimate Attachment Impact tags: - policy_resolve /policies/resolve: post: description: "Resolve which policies and guardrails apply for a given context.\n\nUse this endpoint to debug \"what guardrails would apply to a request\nwith this team/key/model/tags combination?\"\n\nExample Request:\n```bash\ncurl -X POST \"http://localhost:4000/policies/resolve\" \\\n -H \"Authorization: Bearer \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"tags\": [\"healthcare\"],\n \"model\": \"gpt-4\"\n }'\n```" operationId: resolve_policies_for_context_policies_resolve_post_2 parameters: - description: Force a DB sync before resolving. Default uses in-memory cache. in: query name: force_sync required: false schema: default: false description: Force a DB sync before resolving. Default uses in-memory cache. title: Force Sync type: boolean requestBody: content: application/json: schema: $ref: '#/components/schemas/PolicyResolveRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/PolicyResolveResponse' description: Successful Response '422': content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' description: Validation Error security: - APIKeyHeader: [] summary: Resolve Policies For Context tags: - policy_resolve components: schemas: ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type input: title: Input ctx: type: object title: Context type: object required: - loc - msg - type title: ValidationError PolicyAttachmentCreateRequest: properties: policy_name: type: string title: Policy Name description: Name of the policy to attach. scope: anyOf: - type: string - type: 'null' title: Scope description: Use '*' for global scope (applies to all requests). teams: anyOf: - items: type: string type: array - type: 'null' title: Teams description: Team aliases or patterns this attachment applies to. keys: anyOf: - items: type: string type: array - type: 'null' title: Keys description: Key aliases or patterns this attachment applies to. models: anyOf: - items: type: string type: array - type: 'null' title: Models description: Model names or patterns this attachment applies to. tags: anyOf: - items: type: string type: array - type: 'null' title: Tags description: Tag patterns this attachment applies to. Supports wildcards (e.g., health-*). type: object required: - policy_name title: PolicyAttachmentCreateRequest description: Request body for creating a policy attachment. PolicyResolveResponse: description: Response for resolving effective policies/guardrails for a context. properties: effective_guardrails: description: Final list of guardrails that would be applied. items: type: string title: Effective Guardrails type: array matched_policies: description: Details about each matched policy and why it matched. items: $ref: '#/components/schemas/PolicyMatchDetail' title: Matched Policies type: array title: PolicyResolveResponse type: object PolicyMatchDetail: description: Details about why a specific policy matched. properties: guardrails_added: description: Guardrails this policy contributes. items: type: string title: Guardrails Added type: array matched_via: description: How the policy was matched (e.g., 'tag:healthcare', 'team:health-team', 'scope:*'). title: Matched Via type: string policy_name: description: Name of the matched policy. title: Policy Name type: string required: - policy_name - matched_via title: PolicyMatchDetail type: object AttachmentImpactResponse: description: Response for estimating the impact of a policy attachment. properties: affected_keys_count: default: 0 description: Number of keys that would be affected (named + unnamed). title: Affected Keys Count type: integer affected_teams_count: default: 0 description: Number of teams that would be affected (named + unnamed). title: Affected Teams Count type: integer sample_keys: description: Sample of affected key aliases (up to 10). items: type: string title: Sample Keys type: array sample_teams: description: Sample of affected team aliases (up to 10). items: type: string title: Sample Teams type: array unnamed_keys_count: default: 0 description: Number of affected keys without an alias. title: Unnamed Keys Count type: integer unnamed_teams_count: default: 0 description: Number of affected teams without an alias. title: Unnamed Teams Count type: integer title: AttachmentImpactResponse type: object HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError PolicyResolveRequest: description: Request body for resolving effective policies/guardrails for a context. properties: key_alias: anyOf: - type: string - type: 'null' description: Key alias to resolve for. title: Key Alias model: anyOf: - type: string - type: 'null' description: Model name to resolve for. title: Model tags: anyOf: - items: type: string type: array - type: 'null' description: Tags to resolve for. title: Tags team_alias: anyOf: - type: string - type: 'null' description: Team alias to resolve for. title: Team Alias title: PolicyResolveRequest type: object securitySchemes: APIKeyHeader: type: apiKey description: Bearer token in: header name: x-litellm-api-key