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

MethodPathContent-TypeDescription
GET/feed.xmlapplication/rss+xmlRSS 2.0 feed of up to 50 published articles, newest first.
GET/rss.xmlapplication/rss+xmlAlias of /feed.xml with identical content.
GET/sitemap.xmlapplication/xmlEvery published article URL on this host, for crawlers and agents.
GET/llms.txttext/plainAgent guide: site overview, canonical URLs, and usage guidance.
GET/api/posts/{slug}application/jsonOne published article as JSON, including title, TL;DR, tags, and HTML body.
GET/{slug}text/html or text/markdownAn 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-code

Article 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