{"openapi":"3.1.0","info":{"title":"Seyhun Akyurek Portfolio API — Seyhun Akyurek Developer Resources","description":"Public, read-only API for Seyhun Akyurek's portfolio — AI projects, site profile, offers, and MCP tool surface. All endpoints are GET unless noted; no auth required for these reads. For agent registration/auth flows see /auth.md. Discover the full surface via /.well-known/api-catalog and /llms.txt.","version":"1.0.0","contact":{"name":"Seyhun Akyurek","url":"https://seyhunakyurek.com"},"license":{"name":"MIT"}},"servers":[{"url":"https://seyhunakyurek.com","description":"Production"}],"tags":[{"name":"seyhunakyurek","description":"Seyhun Akyurek portfolio — discoverable by name per Ora Developer Resource guidance"},{"name":"projects","description":"AI projects catalog (Seyhun Akyurek)"},{"name":"portfolio","description":"Site profile, offers, search (Seyhun Akyurek)"},{"name":"agent","description":"Agent discovery & MCP (Seyhun Akyurek)"}],"paths":{"/":{"get":{"tags":["portfolio","seyhunakyurek"],"summary":"Homepage — Seyhun Akyurek AI Architect & Delivery Lead","description":"Server-rendered HTML homepage with content-negotiated Markdown at Accept: text/markdown (Vary: Accept).","operationId":"getHomepage","responses":{"200":{"description":"HTML or Markdown depending on Accept","content":{"text/html":{"schema":{"type":"string"}},"text/markdown":{"schema":{"type":"string"}}}}}}},"/llms.txt":{"get":{"tags":["portfolio","seyhunakyurek"],"summary":"LLM-facing profile — Seyhun Akyurek","operationId":"getLlmsTxt","responses":{"200":{"description":"text/plain profile","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/openapi.json":{"get":{"tags":["seyhunakyurek","agent"],"summary":"OpenAPI specification — Seyhun Akyurek portfolio","operationId":"getOpenApiJson","responses":{"200":{"description":"OpenAPI JSON","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/developers":{"get":{"tags":["seyhunakyurek","agent"],"summary":"Developer documentation hub — Seyhun Akyurek","description":"Human + agent docs: API docs, OpenAPI spec, auth, webhooks, MCP server catalog for Seyhun Akyurek portfolio.","operationId":"getDevelopers","responses":{"200":{"description":"HTML","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/.well-known/api-catalog":{"get":{"tags":["agent","seyhunakyurek"],"summary":"RFC 8288 API catalog linkset — Seyhun Akyurek","operationId":"getApiCatalog","responses":{"200":{"description":"linkset JSON","content":{"application/linkset+json":{"schema":{"type":"object"}}}}}}},"/.well-known/agent-card.json":{"get":{"tags":["agent"],"summary":"A2A agent card","operationId":"getAgentCard","responses":{"200":{"description":"JSON","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/webmcp/projects":{"get":{"tags":["projects","seyhunakyurek"],"summary":"List Seyhun Akyurek AI projects (slim)","operationId":"listProjects","parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string"},"description":"Filter by category e.g. Enterprise Automation, Banking & Financial AI"}],"responses":{"200":{"description":"Project list","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer"},"total":{"type":"integer"},"projects":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"title":{"type":"string"},"subtitle":{"type":"string"},"category":{"type":"string"},"description":{"type":"string"},"href":{"type":"string"}}}},"categories":{"type":"array","items":{"type":"string"}}}},"example":{"count":37,"total":37,"projects":[{"slug":"pact","title":"Pact","category":"Enterprise Automation","href":"/projects/pact"}],"categories":["Enterprise Automation","Banking & Financial AI"]}}}},"400":{"$ref":"#/components/responses/BadRequest"},"500":{"$ref":"#/components/responses/ServerError"}}}},"/api/webmcp/projects/{slug}":{"get":{"tags":["projects","seyhunakyurek"],"summary":"Get Seyhun Akyurek project by slug","operationId":"getProjectBySlug","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"description":"Project slug e.g. pact, corridor"}],"responses":{"200":{"description":"Full AIProject object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIProject"}}}},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/ServerError"}}}},"/api/mcp":{"get":{"tags":["agent","seyhunakyurek"],"summary":"MCP server discovery (Streamable HTTP) — Seyhun Akyurek","operationId":"getMcpDiscovery","responses":{"200":{"description":"MCP discovery payload","content":{"application/json":{"schema":{"type":"object"}}}}}},"post":{"tags":["agent","seyhunakyurek"],"summary":"MCP JSON-RPC (tools/list, tools/call, initialize) — Seyhun Akyurek","operationId":"postMcpRpc","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"jsonrpc":{"type":"string","example":"2.0"},"id":{"type":["string","integer","null"]},"method":{"type":"string","example":"tools/list"},"params":{"type":"object"}},"required":["method"]}}}},"responses":{"200":{"description":"JSON-RPC result","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/BadRequest"}}}},"/auth.md":{"get":{"tags":["agent","seyhunakyurek"],"summary":"Agent auth skill — WorkOS Agent Auth — Seyhun Akyurek","operationId":"getAuthMd","responses":{"200":{"description":"text/markdown skill","content":{"text/markdown":{"schema":{"type":"string"}}}}}}}},"components":{"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code","example":"NOT_FOUND"},"message":{"type":"string","description":"Human-readable summary","example":"Project 'unknown' not found"},"hint":{"type":"string","description":"Resolution hint for agents/humans","example":"Call GET /api/webmcp/projects to list valid slugs."},"details":{"type":"object","description":"Optional structured details"}}}}},"AIProject":{"type":"object","properties":{"slug":{"type":"string"},"title":{"type":"string"},"subtitle":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"color":{"type":"string"},"status":{"type":"string","enum":["Active","Coming Soon"]},"techStack":{"type":"array","items":{"type":"string"}}}}},"responses":{"BadRequest":{"description":"Bad request — structured JSON error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"Not found — structured JSON error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ServerError":{"description":"Server error — structured JSON error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}