Tirup Mehta Blogs API
Public, read-only documentation. Base URL: https://blogs.tirup.in
Overview
The Tirup Mehta Blogs API exposes the published articles on this blog as RSS, XML, JSON, and Markdown. Every endpoint on this page is public and read-only: no API key, no account, and no sign-in. The write endpoints under /api/postsbelong to the author's editorial dashboard and require a session cookie, so they are not documented here and must not be treated as a public surface.
The machine-readable description is an OpenAPI 3.1 document at /openapi.json. Agents that prefer prose should read /llms.txt.
Authentication
None. Anonymous requests are served with the same data as any other reader request. Do not send credentials, and do not attempt to reuse the author session cookie: the public API is designed to work without it.
Endpoints
| Method | Path | Content-Type | Description |
|---|---|---|---|
| GET | /feed.xml | application/rss+xml | RSS 2.0 feed of up to 50 published articles, newest first. |
| GET | /rss.xml | application/rss+xml | Alias of /feed.xml with identical content. |
| GET | /sitemap.xml | application/xml | Every published article URL on this host, for crawlers and agents. |
| GET | /llms.txt | text/plain | Agent guide: site overview, canonical URLs, and usage guidance. |
| GET | /api/posts/{slug} | application/json | One published article as JSON, including title, TL;DR, tags, and HTML body. |
| GET | /{slug} | text/html or text/markdown | An article. Send Accept: text/markdown for a Markdown representation. |
Example requests
curl -sS https://blogs.tirup.in/feed.xml
curl -sS https://blogs.tirup.in/sitemap.xml
curl -sS https://blogs.tirup.in/api/posts/ai-agent-sandboxing-guide-how-i-would-lock-up-an-ai-that-runs-code
curl -sS -H 'Accept: text/markdown' https://blogs.tirup.in/ai-agent-sandboxing-guide-how-i-would-lock-up-an-ai-that-runs-codeArticle JSON returns the fields used to render the page: slug, title, seoTitle, tldr, contentHtml, tags, createdAt, updatedAt, readingTime, and status. Drafts are never returned to anonymous callers.
Errors
JSON endpoints answer with a single object, {"error": "<message>"}, and a status that matches the failure. HTML and Markdown clients get a 404 page: browsers see the styled page, while agents that send Accept: text/markdown get a Markdown body linking the sitemap, llms.txt, and this documentation.
- 401Unauthorized — The endpoint requires the author session. Public endpoints never return this.
- 404Not found — No published article exists at that slug. JSON clients get {"error":"Not found"}; Markdown clients get a Markdown body with recovery links.
- 429Rate limited — Only the author-only write API returns this. Public read endpoints are not rate limited. Read the Retry-After header (seconds) before retrying.
- 500Feed unavailable — The article store could not be reached. Retry later; the failure is not cached.
Rate limits
Public read endpoints are cached at the CDN and are not rate limited, so agents may poll the feed at a reasonable interval. The author-only write API allows 100 requests per minute per IP; exceeding it returns 429 with a Retry-After header in seconds.
Versioning and deprecation
This API is version v1. Additive changes (new fields, new endpoints) ship without notice. Breaking changes are announced in /llms.txt and on this page at least 90 days before they take effect, and retiring endpoints send Deprecation and Sunset headers during that window.
Related resources
- OpenAPI 3.1 description — machine-readable endpoints, schemas, and typed error responses.
- Agent guide (llms.txt) — canonical URLs, authorship, and usage guidance.
- MCP server — public, read-only Model Context Protocol server for this blog.
- Sitemap — every published article.
- Privacy policy — what this site collects.