Skip to content
<konstantinos/>

Public Interface

API and Agent Discovery

konstantinos.top exposes a small read-only API for profile and blog discovery together with machine-readable metadata for agents. HTML remains the default response for browsers and compatible agents can negotiate markdown with Accept: text/markdown.

Endpoints

Path Purpose
/api/site.json Profile metadata, contact links, and discovery URLs.
/api/blog-posts.json Published blog post summaries.
/api/blog-posts/{id}.json Single post summary by numeric id.
/api/status.json Health metadata for monitoring and link relation discovery.
/api/openapi.json OpenAPI service description.
/.well-known/api-catalog RFC 9727 API catalog in application/linkset+json.
/.well-known/agent-card.json A2A Agent Card for public content discovery.
/.well-known/mcp/server-card.json MCP Server Card for the read-only MCP endpoint.
/.well-known/oauth-authorization-server OAuth 2.0 authorization server metadata for client credentials.
/.well-known/jwks.json JWKS for verifying issued bearer tokens.
/api/protected/profile.json OAuth-protected profile endpoint.
/api/paid/briefing.json x402-paid JSON briefing route for agents.

Content Negotiation

Send Accept: text/markdown to HTML routes and the site will return a markdown representation with Content-Type: text/markdown and Vary: Accept.

curl -H "Accept: text/markdown" https://konstantinos.top/

curl -H "Accept: application/json" https://konstantinos.top/api/blog-posts.json

OAuth

Protected routes use OAuth 2.0 client credentials. Discover the issuer metadata from /.well-known/oauth-authorization-server, fetch a token from /oauth/token, then send it as a bearer token to /api/protected/profile.json.

curl -u agent-ready-client:<client-secret> \
  -d grant_type=client_credentials \
  -d scope=profile:read \
  https://konstantinos.top/oauth/token

curl -H "Authorization: Bearer <access-token>" \
  https://konstantinos.top/api/protected/profile.json

x402 Payments

The paid briefing endpoint returns HTTP 402 with x402 payment requirements until payment is supplied. The current implementation is configured for Base Sepolia through the public x402 facilitator.

curl -H "Accept: application/json" \
  https://konstantinos.top/api/paid/briefing.json

Agent Interfaces

Browser agents can use WebMCP on page load. Remote agents can use the published A2A and MCP cards plus the public JSON endpoints. Public content declares Content Signals in robots.txt and response headers, with AI policy also available in ai.txt.