Developers

khe.money API

A small, public, read-only HTTP API. No API key, no sign-up, no rate-limit negotiation. Everything below can be called directly from an agent or a script.

Start here

Endpoints

Model Context Protocol

A read-only MCP server over the news digest is available at https://www.khe.money/news/mcp over streamable HTTP, with no authentication. The manifest is at /.well-known/mcp.json. It exposes tools only — no resources, prompts or sampling, and no write operations.

Markdown content negotiation

Send Accept: text/markdown to / or /news and the same URL answers 200 with markdown instead of HTML. Responses carry Vary: Accept, so a cache cannot hand one representation to a client that asked for the other. A markdown request for a path that does not exist answers 404 in markdown too, listing where to look next.

Errors

Every REST error is JSON with the same shape: a stable code to branch on, a human message, a hint saying whether retrying is worthwhile, and a documentation link. Branch on code, never on the message text. The codes are invalid_parameter, not_found, method_not_allowed, unsupported_media_type, upstream_unavailable and internal_error. Unknown /api/* paths return a JSON 404 rather than an HTML error page.

Versioning and deprecation

The API is versioned by date, matching the site version in the footer; the current version is 2026.08, reported in the X-API-Version response header and in the OpenAPI info.version field. Every endpoint is also reachable under a stable /api/v1/ prefix, which will keep pointing at the current shape of these read-only endpoints.

Additive changes — new endpoints, new optional fields — ship without notice. A breaking change to an existing response would ship under a new prefix, with the old one kept working for at least 90 days and marked deprecated in the specification, carrying a Deprecation and Sunset header while it lasts.

Rate limits and fair use

There is no enforced rate limit and no quota, so no rate-limit headers are returned; treating the absence of them as "unlimited" is correct today. Please stay under roughly 60 requests per minute, send a User-Agent that identifies your client, and back off exponentially on any 5xx. Sustained abuse is the one thing that would cause limits to be introduced.

Licence

Endpoints may be called freely for agent and personal use. The content they return remains © Harshit Khemani; attribute it and link back rather than republishing it wholesale. Questions: harshit@khe.money.