University of Amsterdam Policies API

The Policies API from University of Amsterdam — 23 operation(s) for policies.

Operations 27

GET /policies/list List Policies #
POST /policies Create Policy #
GET /policies/name/{policy_name}/versions List Policy Versions #
POST /policies/name/{policy_name}/versions Create Policy Version #
PUT /policies/{policy_id}/status Update Policy Version Status #
GET /policies/compare Compare Policy Versions #
DELETE /policies/name/{policy_name}/all-versions Delete All Policy Versions #
GET /policies/{policy_id} Get Policy #
PUT /policies/{policy_id} Update Policy #
DELETE /policies/{policy_id} Delete Policy #
GET /policies/{policy_id}/resolved-guardrails Get Resolved Guardrails #
POST /policies/test-pipeline Test Pipeline #
GET /policies/attachments/list List Policy Attachments #
POST /policies/attachments Create Policy Attachment #
GET /policies/attachments/{attachment_id} Get Policy Attachment #
DELETE /policies/attachments/{attachment_id} Delete Policy Attachment #
GET /policies/usage/overview Policies Usage Overview #
GET /policy/info/{policy_name} Get Policy Info #
GET /policy/list List Policies #
GET /policy/templates Get Policy Templates #
POST /policy/templates/enrich Enrich Policy Template #
POST /policy/templates/enrich/stream Enrich Policy Template Stream #
POST /policy/templates/suggest Suggest Policy Templates #
POST /policy/templates/test Test Policy Template #
POST /policy/test Test Policy Matching #
POST /policy/validate Validate Policy #
POST /utils/test_policies_and_guardrails Test Policies And Guardrails #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/university-of-amsterdam-policies-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

university-of-amsterdam-policies-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: LiteLLM Policies 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: Policies
paths:
  /policies/list:
    get:
      tags:
      - Policies
      summary: List Policies
      description: "List all policies from the database. Optionally filter by version_status.\n\nQuery params:\n- version_status: Optional. One of \"draft\", \"published\", \"production\".\n  If omitted, all versions are returned.\n\nExample Request:\n```bash\ncurl -X GET \"http://localhost:4000/policies/list\" \\\n    -H \"Authorization: Bearer <your_api_key>\"\ncurl -X GET \"http://localhost:4000/policies/list?version_status=production\" \\\n    -H \"Authorization: Bearer <your_api_key>\"\n```\n\nExample Response:\n```json\n{\n    \"policies\": [\n        {\n            \"policy_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n            \"policy_name\": \"global-baseline\",\n            \"version_number\": 1,\n            \"version_status\": \"production\",\n            \"inherit\": null,\n            \"description\": \"Base guardrails for all requests\",\n            \"guardrails_add\": [\"pii_masking\"],\n            \"guardrails_remove\": [],\n            \"condition\": null,\n            \"created_at\": \"2024-01-01T00:00:00Z\",\n            \"updated_at\": \"2024-01-01T00:00:00Z\"\n        }\n    ],\n    \"total_count\": 1\n}\n```"
      operationId: list_policies_policies_list_get
      security:
      - APIKeyHeader: []
      parameters:
      - name: version_status
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Version Status
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyListDBResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /policies:
    post:
      tags:
      - Policies
      summary: Create Policy
      description: "Create a new policy.\n\nExample Request:\n```bash\ncurl -X POST \"http://localhost:4000/policies\" \\\n    -H \"Authorization: Bearer <your_api_key>\" \\\n    -H \"Content-Type: application/json\" \\\n    -d '{\n        \"policy_name\": \"global-baseline\",\n        \"description\": \"Base guardrails for all requests\",\n        \"guardrails_add\": [\"pii_masking\", \"prompt_injection\"],\n        \"guardrails_remove\": []\n    }'\n```\n\nExample Response:\n```json\n{\n    \"policy_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n    \"policy_name\": \"global-baseline\",\n    \"inherit\": null,\n    \"description\": \"Base guardrails for all requests\",\n    \"guardrails_add\": [\"pii_masking\", \"prompt_injection\"],\n    \"guardrails_remove\": [],\n    \"condition\": null,\n    \"created_at\": \"2024-01-01T00:00:00Z\",\n    \"updated_at\": \"2024-01-01T00:00:00Z\"\n}\n```"
      operationId: create_policy_policies_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PolicyCreateRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyDBResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - APIKeyHeader: []
  /policies/name/{policy_name}/versions:
    get:
      tags:
      - Policies
      summary: List Policy Versions
      description: List all versions of a policy by name, ordered by version_number descending.
      operationId: list_policy_versions_policies_name__policy_name__versions_get
      security:
      - APIKeyHeader: []
      parameters:
      - name: policy_name
        in: path
        required: true
        schema:
          type: string
          title: Policy Name
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyVersionListResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      tags:
      - Policies
      summary: Create Policy Version
      description: 'Create a new draft version of a policy. Copies all fields from the source.

        Source is current production if source_policy_id is not provided.'
      operationId: create_policy_version_policies_name__policy_name__versions_post
      security:
      - APIKeyHeader: []
      parameters:
      - name: policy_name
        in: path
        required: true
        schema:
          type: string
          title: Policy Name
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PolicyVersionCreateRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyDBResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /policies/{policy_id}/status:
    put:
      tags:
      - Policies
      summary: Update Policy Version Status
      description: 'Update a policy version''s status. Valid transitions:

        - draft -> published

        - published -> production (demotes current production to published)

        - production -> published (demotes, policy becomes inactive)'
      operationId: update_policy_version_status_policies__policy_id__status_put
      security:
      - APIKeyHeader: []
      parameters:
      - name: policy_id
        in: path
        required: true
        schema:
          type: string
          title: Policy Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PolicyVersionStatusUpdateRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyDBResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /policies/compare:
    get:
      tags:
      - Policies
      summary: Compare Policy Versions
      description: 'Compare two policy versions. Query params: version_a, version_b (policy version IDs).'
      operationId: compare_policy_versions_policies_compare_get
      security:
      - APIKeyHeader: []
      parameters:
      - name: version_a
        in: query
        required: true
        schema:
          type: string
          title: Version A
      - name: version_b
        in: query
        required: true
        schema:
          type: string
          title: Version B
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyVersionCompareResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /policies/name/{policy_name}/all-versions:
    delete:
      tags:
      - Policies
      summary: Delete All Policy Versions
      description: Delete all versions of a policy. Also removes from in-memory registry.
      operationId: delete_all_policy_versions_policies_name__policy_name__all_versions_delete
      security:
      - APIKeyHeader: []
      parameters:
      - name: policy_name
        in: path
        required: true
        schema:
          type: string
          title: Policy Name
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /policies/{policy_id}:
    get:
      tags:
      - Policies
      summary: Get Policy
      description: "Get a policy by ID.\n\nExample Request:\n```bash\ncurl -X GET \"http://localhost:4000/policies/123e4567-e89b-12d3-a456-426614174000\" \\\n    -H \"Authorization: Bearer <your_api_key>\"\n```"
      operationId: get_policy_policies__policy_id__get
      security:
      - APIKeyHeader: []
      parameters:
      - name: policy_id
        in: path
        required: true
        schema:
          type: string
          title: Policy Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyDBResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    put:
      tags:
      - Policies
      summary: Update Policy
      description: "Update an existing policy.\n\nExample Request:\n```bash\ncurl -X PUT \"http://localhost:4000/policies/123e4567-e89b-12d3-a456-426614174000\" \\\n    -H \"Authorization: Bearer <your_api_key>\" \\\n    -H \"Content-Type: application/json\" \\\n    -d '{\n        \"description\": \"Updated description\",\n        \"guardrails_add\": [\"pii_masking\", \"toxicity_filter\"]\n    }'\n```"
      operationId: update_policy_policies__policy_id__put
      security:
      - APIKeyHeader: []
      parameters:
      - name: policy_id
        in: path
        required: true
        schema:
          type: string
          title: Policy Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PolicyUpdateRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyDBResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - Policies
      summary: Delete Policy
      description: "Delete a policy.\n\nExample Request:\n```bash\ncurl -X DELETE \"http://localhost:4000/policies/123e4567-e89b-12d3-a456-426614174000\" \\\n    -H \"Authorization: Bearer <your_api_key>\"\n```\n\nExample Response:\n```json\n{\n    \"message\": \"Policy 123e4567-e89b-12d3-a456-426614174000 deleted successfully\"\n}\n```"
      operationId: delete_policy_policies__policy_id__delete
      security:
      - APIKeyHeader: []
      parameters:
      - name: policy_id
        in: path
        required: true
        schema:
          type: string
          title: Policy Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /policies/{policy_id}/resolved-guardrails:
    get:
      tags:
      - Policies
      summary: Get Resolved Guardrails
      description: "Get the resolved guardrails for a policy (including inherited guardrails).\n\nThis endpoint resolves the full inheritance chain and returns the final\nset of guardrails that would be applied for this policy.\n\nExample Request:\n```bash\ncurl -X GET \"http://localhost:4000/policies/123e4567-e89b-12d3-a456-426614174000/resolved-guardrails\" \\\n    -H \"Authorization: Bearer <your_api_key>\"\n```\n\nExample Response:\n```json\n{\n    \"policy_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n    \"policy_name\": \"healthcare-compliance\",\n    \"resolved_guardrails\": [\"pii_masking\", \"prompt_injection\", \"toxicity_filter\"]\n}\n```"
      operationId: get_resolved_guardrails_policies__policy_id__resolved_guardrails_get
      security:
      - APIKeyHeader: []
      parameters:
      - name: policy_id
        in: path
        required: true
        schema:
          type: string
          title: Policy Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /policies/test-pipeline:
    post:
      tags:
      - Policies
      summary: Test Pipeline
      description: "Test a guardrail pipeline with sample messages.\n\nExecutes the pipeline steps against the provided test messages and returns\nstep-by-step results showing which guardrails passed/failed, actions taken,\nand timing information.\n\nExample Request:\n```bash\ncurl -X POST \"http://localhost:4000/policies/test-pipeline\" \\\n    -H \"Authorization: Bearer <your_api_key>\" \\\n    -H \"Content-Type: application/json\" \\\n    -d '{\n        \"pipeline\": {\n            \"mode\": \"pre_call\",\n            \"steps\": [\n                {\"guardrail\": \"pii-guard\", \"on_pass\": \"next\", \"on_fail\": \"block\"}\n            ]\n        },\n        \"test_messages\": [{\"role\": \"user\", \"content\": \"My SSN is 123-45-6789\"}]\n    }'\n```"
      operationId: test_pipeline_policies_test_pipeline_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PipelineTestRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - APIKeyHeader: []
  /policies/attachments/list:
    get:
      tags:
      - Policies
      summary: List Policy Attachments
      description: "List all policy attachments from the database.\n\nExample Request:\n```bash\ncurl -X GET \"http://localhost:4000/policies/attachments/list\" \\\n    -H \"Authorization: Bearer <your_api_key>\"\n```\n\nExample Response:\n```json\n{\n    \"attachments\": [\n        {\n            \"attachment_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n            \"policy_name\": \"global-baseline\",\n            \"scope\": \"*\",\n            \"teams\": [],\n            \"keys\": [],\n            \"models\": [],\n            \"created_at\": \"2024-01-01T00:00:00Z\",\n            \"updated_at\": \"2024-01-01T00:00:00Z\"\n        }\n    ],\n    \"total_count\": 1\n}\n```"
      operationId: list_policy_attachments_policies_attachments_list_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyAttachmentListResponse'
      security:
      - APIKeyHeader: []
  /policies/attachments:
    post:
      tags:
      - Policies
      summary: Create Policy Attachment
      description: "Create a new policy attachment.\n\nExample Request:\n```bash\ncurl -X POST \"http://localhost:4000/policies/attachments\" \\\n    -H \"Authorization: Bearer <your_api_key>\" \\\n    -H \"Content-Type: application/json\" \\\n    -d '{\n        \"policy_name\": \"global-baseline\",\n        \"scope\": \"*\"\n    }'\n```\n\nExample with team-specific attachment:\n```bash\ncurl -X POST \"http://localhost:4000/policies/attachments\" \\\n    -H \"Authorization: Bearer <your_api_key>\" \\\n    -H \"Content-Type: application/json\" \\\n    -d '{\n        \"policy_name\": \"healthcare-compliance\",\n        \"teams\": [\"healthcare-team\", \"medical-research\"]\n    }'\n```\n\nExample Response:\n```json\n{\n    \"attachment_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n    \"policy_name\": \"global-baseline\",\n    \"scope\": \"*\",\n    \"teams\": [],\n    \"keys\": [],\n    \"models\": [],\n    \"created_at\": \"2024-01-01T00:00:00Z\",\n    \"updated_at\": \"2024-01-01T00:00:00Z\"\n}\n```"
      operationId: create_policy_attachment_policies_attachments_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PolicyAttachmentCreateRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyAttachmentDBResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - APIKeyHeader: []
  /policies/attachments/{attachment_id}:
    get:
      tags:
      - Policies
      summary: Get Policy Attachment
      description: "Get a policy attachment by ID.\n\nExample Request:\n```bash\ncurl -X GET \"http://localhost:4000/policies/attachments/123e4567-e89b-12d3-a456-426614174000\" \\\n    -H \"Authorization: Bearer <your_api_key>\"\n```"
      operationId: get_policy_attachment_policies_attachments__attachment_id__get
      security:
      - APIKeyHeader: []
      parameters:
      - name: attachment_id
        in: path
        required: true
        schema:
          type: string
          title: Attachment Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyAttachmentDBResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - Policies
      summary: Delete Policy Attachment
      description: "Delete a policy attachment.\n\nExample Request:\n```bash\ncurl -X DELETE \"http://localhost:4000/policies/attachments/123e4567-e89b-12d3-a456-426614174000\" \\\n    -H \"Authorization: Bearer <your_api_key>\"\n```\n\nExample Response:\n```json\n{\n    \"message\": \"Attachment 123e4567-e89b-12d3-a456-426614174000 deleted successfully\"\n}\n```"
      operationId: delete_policy_attachment_policies_attachments__attachment_id__delete
      security:
      - APIKeyHeader: []
      parameters:
      - name: attachment_id
        in: path
        required: true
        schema:
          type: string
          title: Attachment Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /policies/usage/overview:
    get:
      tags:
      - Policies
      summary: Policies Usage Overview
      description: Return policy performance overview for the dashboard.
      operationId: policies_usage_overview_policies_usage_overview_get
      security:
      - APIKeyHeader: []
      parameters:
      - name: start_date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: YYYY-MM-DD
          title: Start Date
        description: YYYY-MM-DD
      - name: end_date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: YYYY-MM-DD
          title: End Date
        description: YYYY-MM-DD
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UsageOverviewResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /policy/info/{policy_name}:
    get:
      description: 'Get detailed information about a specific policy.


        Returns:

        - Policy configuration

        - Resolved guardrails (after inheritance)

        - Inheritance chain'
      operationId: get_policy_info_policy_info__policy_name__get
      parameters:
      - in: path
        name: policy_name
        required: true
        schema:
          title: Policy Name
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyInfoResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      security:
      - APIKeyHeader: []
      summary: Get Policy Info
      tags:
      - Policies
  /policy/list:
    get:
      description: 'List all loaded policies with their resolved guardrails.


        Returns information about each policy including:

        - Inheritance configuration

        - Scope (teams, keys, models)

        - Guardrails to add/remove

        - Resolved guardrails (after inheritance)

        - Inheritance chain'
      operationId: list_policies_policy_list_get
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyListResponse'
          description: Successful Response
      security:
      - APIKeyHeader: []
      summary: List Policies
      tags:
      - Policies
  /policy/templates:
    get:
      description: 'Get policy templates for the UI (pre-configured guardrail combinations).


        Fetches from GitHub with automatic fallback to local backup on failure.

        Set LITELLM_LOCAL_POLICY_TEMPLATES=true to skip GitHub and use local backup only.'
      operationId: get_policy_templates_policy_templates_get
      responses:
        '200':
          content:
            application/json:
              schema:
                items: {}
                title: Response Get Policy Templates Policy Templates Get
                type: array
          description: Successful Response
      security:
      - APIKeyHeader: []
      summary: Get Policy Templates
      tags:
      - Policies
  /policy/templates/enrich:
    post:
      description: 'Enrich a policy template with LLM-discovered data (e.g. competitor names).


        Calls an onboarded LLM to discover competitors for the given brand name,

        then returns enriched guardrailDefinitions with the discovered data populated.'
      operationId: enrich_policy_template_policy_templates_enrich_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnrichTemplateRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: true
                title: Response Enrich Policy Template Policy Templates Enrich Post
                type: object
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      security:
      - APIKeyHeader: []
      summary: Enrich Policy Template
      tags:
      - Policies
  /policy/templates/enrich/stream:
    post:
      description: 'Stream competitor names as SSE events as the LLM generates them.


        Events:

        - data: {"type": "competitor", "name": "..."}  — each competitor as discovered

        - data: {"type": "done", "competitors": [...], "competitor_variations": {...}, "guardrailDefinitions": [...]}'
      operationId: enrich_policy_template_stream_policy_templates_enrich_stream_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnrichTemplateRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      security:
      - APIKeyHeader: []
      summary: Enrich Policy Template Stream
      tags:
      - Policies
  /policy/templates/suggest:
    post:
      description: 'Use AI to suggest policy templates based on attack examples and descriptions.


        Calls an LLM with tool calling to match user requirements to available templates.'
      operationId: suggest_policy_templates_policy_templates_suggest_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SuggestTemplatesRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: true
                title: Response Suggest Policy Templates Policy Templates Suggest Post
                type: object
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      security:
      - APIKeyHeader: []
      summary: Suggest Policy Templates
      tags:
      - Policies
  /policy/templates/test:
    post:
      description: 'Test a policy template''s guardrails against a text input without creating them.


        Instantiates temporary guardrails from the template definitions, runs them

        against the provided text, and returns per-guardrail results so users can

        verify the template solves their problem before creating it.'
      operationId: test_policy_template_policy_templates_test_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TestPolicyTemplateRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestPolicyTemplateResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      security:
      - APIKeyHeader: []
      summary: Test Policy Template
      tags:
      - Policies
  /policy/test:
    post:
      description: "Test which policies would match a given request context.\n\nThis is useful for debugging and understanding policy behavior.\n\nRequest body:\n```json\n{\n    \"team_alias\": \"healthcare-team\",\n    \"key_alias\": \"my-api-key\",\n    \"model\": \"gpt-4\"\n}\n```\n\nReturns:\n- matching_policies: List of policy names that match\n- resolved_guardrails: Final list of guardrails that would be applied"
      operationId: test_policy_matching_policy_test_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PolicyMatchContext'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyTestResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      security:
      - APIKeyHeader: []
      summary: Test Policy Matching
      tags:
      - Policies
  /policy/validate:
    post:
      description: "Validate a policy configuration before applying it.\n\nChecks:\n- All referenced guardrails exist in the guardrail registry\n- All non-wildcard team aliases exist in the database\n- All non-wildcard key aliases exist in the database\n- Inheritance chains are valid (no cycles, parents exist)\n- Scope patterns are syntactically valid\n\nReturns:\n- valid: True if the policy configuration is valid (no blocking errors)\n- errors: List of blocking validation errors\n- warnings: List of non-blocking validation warnings\n\nExample request:\n```json\n{\n    \"policies\": {\n        \"global-baseline\": {\n            \"guardrails\": {\n                \"add\": [\"pii_blocker\", \"phi_blocker\"]\n            },\n            \"scope\": {\n                \"teams\": [\"*\"],\n                \"keys\": [\"*\"],\n                \"models\": [\"*\"]\n            }\n        },\n        \"healthcare-compliance\": {\n            \"inherit\": \"global-baseline\",\n            \"guardrails\": {\n                \"add\": [\"hipaa_audit\"]\n            },\n            \"scope\": {\n                \"teams\": [\"healthcare-team\"]\n            }\n        }\n    }\n}\n```"
      operationId: validate_policy_policy_validate_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PolicyValidateRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyValidationResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      security:
      - APIKeyHeader: []
      summary: Validate Policy
      tags:
      - Policies
  /utils/test_policies_and_guardrails:
    post:
      description: 'Apply policies and/or guardrails to inputs (for compliance UI testing).


        Use inputs_list for batch testing: each input is processed as a separate call so

        per-input block/allow and errors are returned.


        Use inputs for a single call (legacy).'
      operationId: test_policies_and_guardrails_utils_test_policies_and_guardrails_post
      requestBody:
        content:
          application/json:
            schema:
              

# --- truncated at 32 KB (76 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/university-of-amsterdam/refs/heads/main/openapi/university-of-amsterdam-policies-api-openapi.yml