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.