Skip to content

Seyhun Akyurek / Developer Resources

Developer resources — Seyhun Akyurek

Everything an agent or developer needs to integrate with Seyhun Akyurek's portfolio: public read APIs, machine-readable specs, and agent auth. All routes below are discoverable by searching “Seyhun Akyurek” + developer / API / MCP.

Seyhun Akyurek — API surface

REST — Projects (Seyhun Akyurek)

  • GET /api/webmcp/projects— list 38 Seyhun Akyurek AI projects (slim)
  • GET /api/webmcp/projects/{slug}— get full project by slug (e.g. pact, corridor)

MCP Server — Seyhun Akyurek

Streamable-HTTP MCP at /api/mcp (POST JSON-RPC). Tools: list_projects, get_project, get_site_profile, list_offers, search_site, get_page_content.

GET /api/mcp (discovery) · server-card.json

Machine-readable specs — Seyhun Akyurek

Versioning & deprecation — Seyhun Akyurek

Canonical versioned root: /api/v1 (e.g. GET /api/v1/webmcp/projects and GET /api/v1/webmcp/projects/{slug}). Unversioned /api/webmcp/* aliases remain for backwards compat. Send API-Version: v1 or Accept: application/vnd.seyhun.v1+json — server echoes API-Version: v1 and Sunset when a version is deprecated (RFC 8594). Sunset is at least 180 days after Deprecation: true + Link: <url>; rel="sunset". No breaking change without a version bump. See openapi.json servers and header docs.

Rate limits — Seyhun Akyurek

100 requests / 60s per IP per endpoint family (portfolio read APIs & MCP). Every /api/* response includes RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset (RFC draft-ietf-httpapi-ratelimit-header, plus legacy X-RateLimit-*). On 429, Retry-After is set — respect it and back off. Limits are documented in openapi.json response headers.

CLI — Seyhun Akyurek (npm)

Official CLI: npx seyhunakyurek or npm i -g seyhunakyurek (package seyhunakyurek on npm).

npx seyhunakyurek projects --json          # list 39 projects (calls /api/v1/webmcp/projects)
npx seyhunakyurek project pact --json     # get one project
npx seyhunakyurek mcp --json              # MCP discovery
npx seyhunakyurek openapi                 # show openapi.json info

Source at github.com/seyhunak/portfolio-website/cli — scriptable, no auth required for reads.

Auth & webhooks — Seyhun Akyurek

Read APIs above require no auth. For write/authenticated agent flows, follow the WorkOS Agent Auth skill at /auth.md (discovery via WWW-Authenticate: Bearer resource_metadata and /.well-known/oauth-protected-resource). No webhooks currently; events POST per auth.md events_endpoint.

Error handling

All /api/* routes return structured JSON errors on failure:

{
  "error": {
    "code": "NOT_FOUND",
    "message": "Project 'unknown' not found",
    "hint": "Call GET /api/webmcp/projects to list valid slugs.",
    "docs": "https://seyhunakyurek.com/developers#error-handling",
    "openapi": "https://seyhunakyurek.com/openapi.json"
  }
}

Agents should parse application/json errors — never HTML. See openapi.json components.schemas.Error for the schema.

Quick links — Seyhun Akyurek developer