{"openapi":"3.1.0","info":{"title":"SICHER KI public discovery API","version":"1.0.0","description":"Read-only catalogs for the SICHER KI consulting website. No account or API key is required. Browser actions use the linked forms with explicit permission and privacy acknowledgement. Contact and subscription actions also require recipient email confirmation; job applications do not. These forms are not REST operations in this specification.","contact":{"name":"SICHER KI","url":"https://sicher-ki.de/contact","email":"hallo@sicher-ki.de"}},"servers":[{"url":"https://sicher-ki.de"}],"security":[],"externalDocs":{"description":"SICHER KI API contracts and access requirements","url":"https://sicher-ki.de/api-policy.md"},"components":{"schemas":{"ResourceCatalog":{"type":"object","properties":{"specVersion":{"type":"string"},"host":{"type":"object","properties":{"displayName":{"type":"string"}},"required":["displayName"],"additionalProperties":false},"entries":{"type":"array","items":{"type":"object","properties":{"@context":{"type":"string","format":"uri"},"identifier":{"type":"string","format":"uri"},"displayName":{"type":"string"},"type":{"type":"string"},"url":{"type":"string","format":"uri"},"description":{"type":"string"},"capabilities":{"type":"array","items":{"type":"string"}},"representativeQueries":{"type":"array","items":{"type":"string"}},"trustManifest":{"type":"object","properties":{"identity":{"type":"string","format":"uri"},"privacyPolicyUrl":{"type":"string","format":"uri"}},"required":["identity","privacyPolicyUrl"],"additionalProperties":false}},"required":["@context","identifier","displayName","type","url","description","capabilities","representativeQueries","trustManifest"],"additionalProperties":false}}},"required":["specVersion","host","entries"],"additionalProperties":false},"ActionIndex":{"type":"object","properties":{"schemaVersion":{"type":"string"},"organization":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string","format":"uri"}},"required":["name","url"],"additionalProperties":false},"description":{"type":"string"},"agents":{"type":"array","maxItems":0,"items":false},"actions":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"url":{"type":"string","format":"uri"},"privacyUrl":{"type":"string","format":"uri"},"inputSchema":{"type":"object","properties":{"type":{"type":"string","const":"object"},"additionalProperties":{"type":"boolean","const":false},"required":{"type":"array","items":{"type":"string"}},"properties":{"type":"object","additionalProperties":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"string"},"description":{"type":"string"},"minLength":{"type":"integer","minimum":0},"maxLength":{"type":"integer","minimum":1},"format":{"type":"string","enum":["email","uri"]},"enum":{"type":"array","items":{"type":"string"}}},"required":["type","description","maxLength"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"boolean"},"description":{"type":"string"},"const":{"type":"boolean","const":true}},"required":["type","description","const"],"additionalProperties":false}]}}},"required":["type","additionalProperties","required","properties"],"additionalProperties":false},"transport":{"type":"string","const":"WebMCP"},"authentication":{"type":"string"}},"required":["name","title","description","url","privacyUrl","inputSchema","transport","authentication"],"additionalProperties":false}},"resources":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string","format":"uri"},"mediaType":{"type":"string"}},"required":["name","url","mediaType"],"additionalProperties":false}}},"required":["schemaVersion","organization","description","agents","actions","resources"],"additionalProperties":false},"SkillIndex":{"type":"object","properties":{"skills":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string","const":"skill-md"},"description":{"type":"string"},"url":{"type":"string","format":"uri-reference"},"digest":{"type":"string","pattern":"^sha256:[a-f0-9]{64}$"}},"required":["name","type","description","url","digest"],"additionalProperties":false}}},"required":["skills"],"additionalProperties":false},"Problem":{"type":"object","properties":{"type":{"type":"string","format":"uri"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"hint":{"type":"string"}},"required":["type","title","status","detail","code","message","hint"],"additionalProperties":true}}},"paths":{"/.well-known/ard.json":{"get":{"operationId":"getPublicResources","summary":"Discover public SICHER KI browser actions","description":"Discover public SICHER KI browser actions. Read-only; no authentication. Select version 1 with API-Version: 1. See /api-policy.md for compatibility and deprecation.","parameters":[{"name":"API-Version","in":"header","required":false,"description":"API major version. Omission remains pinned to version 1. Unsupported values return 400.","schema":{"type":"string","enum":["1"],"default":"1"}}],"responses":{"200":{"description":"Public discovery metadata","headers":{"API-Version":{"description":"Selected API major version.","schema":{"type":"string","const":"1"}},"RateLimit-Policy":{"description":"120 requests per 60 seconds per client IP and Cloudflare location, shared by the three discovery endpoints. Approximate enforcement; no remaining count is available on successful responses.","schema":{"type":"string"},"example":"\"discovery\";q=120;w=60"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceCatalog"}}}},"400":{"description":"Unsupported API version","headers":{"API-Version":{"description":"Selected API major version.","schema":{"type":"string","const":"1"}},"RateLimit-Policy":{"description":"120 requests per 60 seconds per client IP and Cloudflare location, shared by the three discovery endpoints. Approximate enforcement; no remaining count is available on successful responses.","schema":{"type":"string"},"example":"\"discovery\";q=120;w=60"}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Resource not found","headers":{"API-Version":{"description":"Selected API major version.","schema":{"type":"string","const":"1"}},"RateLimit-Policy":{"description":"120 requests per 60 seconds per client IP and Cloudflare location, shared by the three discovery endpoints. Approximate enforcement; no remaining count is available on successful responses.","schema":{"type":"string"},"example":"\"discovery\";q=120;w=60"}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"405":{"description":"Method not allowed","headers":{"API-Version":{"description":"Selected API major version.","schema":{"type":"string","const":"1"}},"RateLimit-Policy":{"description":"120 requests per 60 seconds per client IP and Cloudflare location, shared by the three discovery endpoints. Approximate enforcement; no remaining count is available on successful responses.","schema":{"type":"string"},"example":"\"discovery\";q=120;w=60"},"Allow":{"description":"Supported methods.","schema":{"type":"string","const":"GET, HEAD"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Request quota exceeded","headers":{"API-Version":{"description":"Selected API major version.","schema":{"type":"string","const":"1"}},"RateLimit-Policy":{"description":"120 requests per 60 seconds per client IP and Cloudflare location, shared by the three discovery endpoints. Approximate enforcement; no remaining count is available on successful responses.","schema":{"type":"string"},"example":"\"discovery\";q=120;w=60"},"Retry-After":{"description":"Conservative delay in seconds before retrying a read.","schema":{"type":"integer","minimum":1},"example":60},"RateLimit":{"description":"IETF draft-ietf-httpapi-ratelimit-headers-11 structured field; no quota is currently available.","schema":{"type":"string"},"example":"\"discovery\";r=0"}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Unexpected server error","headers":{"API-Version":{"description":"Selected API major version.","schema":{"type":"string","const":"1"}},"RateLimit-Policy":{"description":"120 requests per 60 seconds per client IP and Cloudflare location, shared by the three discovery endpoints. Approximate enforcement; no remaining count is available on successful responses.","schema":{"type":"string"},"example":"\"discovery\";q=120;w=60"}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"Service unavailable","headers":{"API-Version":{"description":"Selected API major version.","schema":{"type":"string","const":"1"}},"RateLimit-Policy":{"description":"120 requests per 60 seconds per client IP and Cloudflare location, shared by the three discovery endpoints. Approximate enforcement; no remaining count is available on successful responses.","schema":{"type":"string"},"example":"\"discovery\";q=120;w=60"}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/.well-known/agents-index.json":{"get":{"operationId":"getPublicActions","summary":"Read public action descriptions and input schemas","description":"Read public action descriptions and input schemas. Read-only; no authentication. Select version 1 with API-Version: 1. See /api-policy.md for compatibility and deprecation.","parameters":[{"name":"API-Version","in":"header","required":false,"description":"API major version. Omission remains pinned to version 1. Unsupported values return 400.","schema":{"type":"string","enum":["1"],"default":"1"}}],"responses":{"200":{"description":"Public discovery metadata","headers":{"API-Version":{"description":"Selected API major version.","schema":{"type":"string","const":"1"}},"RateLimit-Policy":{"description":"120 requests per 60 seconds per client IP and Cloudflare location, shared by the three discovery endpoints. Approximate enforcement; no remaining count is available on successful responses.","schema":{"type":"string"},"example":"\"discovery\";q=120;w=60"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionIndex"}}}},"400":{"description":"Unsupported API version","headers":{"API-Version":{"description":"Selected API major version.","schema":{"type":"string","const":"1"}},"RateLimit-Policy":{"description":"120 requests per 60 seconds per client IP and Cloudflare location, shared by the three discovery endpoints. Approximate enforcement; no remaining count is available on successful responses.","schema":{"type":"string"},"example":"\"discovery\";q=120;w=60"}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Resource not found","headers":{"API-Version":{"description":"Selected API major version.","schema":{"type":"string","const":"1"}},"RateLimit-Policy":{"description":"120 requests per 60 seconds per client IP and Cloudflare location, shared by the three discovery endpoints. Approximate enforcement; no remaining count is available on successful responses.","schema":{"type":"string"},"example":"\"discovery\";q=120;w=60"}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"405":{"description":"Method not allowed","headers":{"API-Version":{"description":"Selected API major version.","schema":{"type":"string","const":"1"}},"RateLimit-Policy":{"description":"120 requests per 60 seconds per client IP and Cloudflare location, shared by the three discovery endpoints. Approximate enforcement; no remaining count is available on successful responses.","schema":{"type":"string"},"example":"\"discovery\";q=120;w=60"},"Allow":{"description":"Supported methods.","schema":{"type":"string","const":"GET, HEAD"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Request quota exceeded","headers":{"API-Version":{"description":"Selected API major version.","schema":{"type":"string","const":"1"}},"RateLimit-Policy":{"description":"120 requests per 60 seconds per client IP and Cloudflare location, shared by the three discovery endpoints. Approximate enforcement; no remaining count is available on successful responses.","schema":{"type":"string"},"example":"\"discovery\";q=120;w=60"},"Retry-After":{"description":"Conservative delay in seconds before retrying a read.","schema":{"type":"integer","minimum":1},"example":60},"RateLimit":{"description":"IETF draft-ietf-httpapi-ratelimit-headers-11 structured field; no quota is currently available.","schema":{"type":"string"},"example":"\"discovery\";r=0"}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Unexpected server error","headers":{"API-Version":{"description":"Selected API major version.","schema":{"type":"string","const":"1"}},"RateLimit-Policy":{"description":"120 requests per 60 seconds per client IP and Cloudflare location, shared by the three discovery endpoints. Approximate enforcement; no remaining count is available on successful responses.","schema":{"type":"string"},"example":"\"discovery\";q=120;w=60"}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"Service unavailable","headers":{"API-Version":{"description":"Selected API major version.","schema":{"type":"string","const":"1"}},"RateLimit-Policy":{"description":"120 requests per 60 seconds per client IP and Cloudflare location, shared by the three discovery endpoints. Approximate enforcement; no remaining count is available on successful responses.","schema":{"type":"string"},"example":"\"discovery\";q=120;w=60"}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/.well-known/agent-skills/index.json":{"get":{"operationId":"getUsageSkills","summary":"Find the SICHER KI usage skill and its digest","description":"Find the SICHER KI usage skill and its digest. Read-only; no authentication. Select version 1 with API-Version: 1. See /api-policy.md for compatibility and deprecation.","parameters":[{"name":"API-Version","in":"header","required":false,"description":"API major version. Omission remains pinned to version 1. Unsupported values return 400.","schema":{"type":"string","enum":["1"],"default":"1"}}],"responses":{"200":{"description":"Public discovery metadata","headers":{"API-Version":{"description":"Selected API major version.","schema":{"type":"string","const":"1"}},"RateLimit-Policy":{"description":"120 requests per 60 seconds per client IP and Cloudflare location, shared by the three discovery endpoints. Approximate enforcement; no remaining count is available on successful responses.","schema":{"type":"string"},"example":"\"discovery\";q=120;w=60"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SkillIndex"}}}},"400":{"description":"Unsupported API version","headers":{"API-Version":{"description":"Selected API major version.","schema":{"type":"string","const":"1"}},"RateLimit-Policy":{"description":"120 requests per 60 seconds per client IP and Cloudflare location, shared by the three discovery endpoints. Approximate enforcement; no remaining count is available on successful responses.","schema":{"type":"string"},"example":"\"discovery\";q=120;w=60"}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Resource not found","headers":{"API-Version":{"description":"Selected API major version.","schema":{"type":"string","const":"1"}},"RateLimit-Policy":{"description":"120 requests per 60 seconds per client IP and Cloudflare location, shared by the three discovery endpoints. Approximate enforcement; no remaining count is available on successful responses.","schema":{"type":"string"},"example":"\"discovery\";q=120;w=60"}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"405":{"description":"Method not allowed","headers":{"API-Version":{"description":"Selected API major version.","schema":{"type":"string","const":"1"}},"RateLimit-Policy":{"description":"120 requests per 60 seconds per client IP and Cloudflare location, shared by the three discovery endpoints. Approximate enforcement; no remaining count is available on successful responses.","schema":{"type":"string"},"example":"\"discovery\";q=120;w=60"},"Allow":{"description":"Supported methods.","schema":{"type":"string","const":"GET, HEAD"}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Request quota exceeded","headers":{"API-Version":{"description":"Selected API major version.","schema":{"type":"string","const":"1"}},"RateLimit-Policy":{"description":"120 requests per 60 seconds per client IP and Cloudflare location, shared by the three discovery endpoints. Approximate enforcement; no remaining count is available on successful responses.","schema":{"type":"string"},"example":"\"discovery\";q=120;w=60"},"Retry-After":{"description":"Conservative delay in seconds before retrying a read.","schema":{"type":"integer","minimum":1},"example":60},"RateLimit":{"description":"IETF draft-ietf-httpapi-ratelimit-headers-11 structured field; no quota is currently available.","schema":{"type":"string"},"example":"\"discovery\";r=0"}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Unexpected server error","headers":{"API-Version":{"description":"Selected API major version.","schema":{"type":"string","const":"1"}},"RateLimit-Policy":{"description":"120 requests per 60 seconds per client IP and Cloudflare location, shared by the three discovery endpoints. Approximate enforcement; no remaining count is available on successful responses.","schema":{"type":"string"},"example":"\"discovery\";q=120;w=60"}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"Service unavailable","headers":{"API-Version":{"description":"Selected API major version.","schema":{"type":"string","const":"1"}},"RateLimit-Policy":{"description":"120 requests per 60 seconds per client IP and Cloudflare location, shared by the three discovery endpoints. Approximate enforcement; no remaining count is available on successful responses.","schema":{"type":"string"},"example":"\"discovery\";q=120;w=60"}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}}}}