{"openapi":"3.1.0","info":{"title":"Raemer Studio public catalog","version":"1.0.0","description":"Public read-only portfolio. No authentication, private data, pricing, booking or write operations. MCP transport is documented at /for-agents."},"servers":[{"url":"https://raemer.studio"}],"paths":{"/api/public/studio":{"get":{"summary":"Studio identity","parameters":[],"responses":{"200":{"description":"Published public content","content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"personName":{"type":"string"},"contactEmail":{"type":"string","format":"email"},"personalUrl":{"type":"string","format":"uri"},"intakePath":{"type":"string"},"url":{"type":"string","format":"uri"}}}}}},"400":{"description":"Request rejected or resource unavailable","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"404":{"description":"Request rejected or resource unavailable","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"429":{"description":"Request rejected or resource unavailable","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"503":{"description":"Request rejected or resource unavailable","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}}}},"/api/public/services":{"get":{"summary":"Published service descriptions","parameters":[],"responses":{"200":{"description":"Published public content","content":{"application/json":{"schema":{"type":"object","properties":{"services":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"}}}},"url":{"type":"string"}}}}}},"400":{"description":"Request rejected or resource unavailable","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"404":{"description":"Request rejected or resource unavailable","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"429":{"description":"Request rejected or resource unavailable","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"503":{"description":"Request rejected or resource unavailable","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}}}},"/api/public/contact":{"get":{"summary":"Contact and human-operated intake guidance","parameters":[],"responses":{"200":{"description":"Published public content","content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"},"intakeUrl":{"type":"string"},"url":{"type":"string"},"guidance":{"type":"string"}}}}}},"400":{"description":"Request rejected or resource unavailable","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"404":{"description":"Request rejected or resource unavailable","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"429":{"description":"Request rejected or resource unavailable","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"503":{"description":"Request rejected or resource unavailable","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}}}},"/api/public/case-studies":{"get":{"summary":"Published case studies","parameters":[],"responses":{"200":{"description":"Published public content","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"role":{"type":"string"},"client":{"type":"string"},"period":{"type":"string"},"problem":{"type":"string"},"solution":{"type":"string"},"result":{"type":"string"},"image":{"type":"string"},"url":{"type":"string"}}}}}}},"400":{"description":"Request rejected or resource unavailable","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"404":{"description":"Request rejected or resource unavailable","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"429":{"description":"Request rejected or resource unavailable","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"503":{"description":"Request rejected or resource unavailable","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}}}},"/api/public/projects":{"get":{"summary":"Search published portfolio","parameters":[{"name":"query","in":"query","schema":{"type":"string","maxLength":120}},{"name":"category","in":"query","schema":{"type":"string","maxLength":100}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":20,"default":10}}],"responses":{"200":{"description":"Published public content","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"integer"},"offset":{"type":"integer"},"limit":{"type":"integer"},"nextOffset":{"type":["integer","null"]},"projects":{"type":"array","maxItems":20,"items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"categories":{"type":"array","items":{"type":"string"}},"year":{"type":"string"},"summary":{"type":"string"},"url":{"type":"string"}}}}}}}}},"400":{"description":"Request rejected or resource unavailable","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"404":{"description":"Request rejected or resource unavailable","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"429":{"description":"Request rejected or resource unavailable","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"503":{"description":"Request rejected or resource unavailable","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}}}},"/api/public/projects/{id}":{"get":{"summary":"Published project detail","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-z0-9-]{1,100}$"}}],"responses":{"200":{"description":"Published public content","content":{"application/json":{"schema":{"type":"object","required":["id","title","description","url"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"year":{"type":"string"},"client":{"type":"string"},"collaborators":{"type":["string","null"]},"categories":{"type":"array","items":{"type":"string"}},"url":{"type":"string","format":"uri"}}}}}},"400":{"description":"Request rejected or resource unavailable","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"404":{"description":"Request rejected or resource unavailable","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"429":{"description":"Request rejected or resource unavailable","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"503":{"description":"Request rejected or resource unavailable","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}}}},"/api/public/health":{"get":{"summary":"Public dataset readiness","responses":{"200":{"description":"Published public content","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"ok"}}}}}},"503":{"description":"Published public content","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":"unavailable"}}}}}}}}}}}