---
title: "Developers — Anurag Gupta"
description: "Public read-only JSON API, OpenAPI 3.1 spec, and Markdown content negotiation for anuragxd.com. No API key required."
canonical: https://anuragxd.com/developers
---

# Developers

A public, read-only API for everything on this site — plus Markdown content negotiation for agents. Version 1.0.0.

## Authentication

None. There is no key to issue: the API publishes exactly the content the website renders. `Authorization` headers are ignored. Responses are static files on Cloudflare's edge, CORS is open to all origins, and there is no per-client quota.

## Quickstart

```sh
curl https://anuragxd.com/api/profile.json
curl https://anuragxd.com/api/posts.json
curl https://anuragxd.com/api/posts/popy-500kb-clipboard-manager.json
# the .json suffix is optional
curl https://anuragxd.com/api/work
```

## Endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/api/index.json` | Discovery document listing every available endpoint, the API version, and links to the OpenAPI spec and llms.txt. |
| GET | `/api/profile.json` | Name, headline, location, contact address, social profiles, and the technology list published as schema.org `knowsAbout`. |
| GET | `/api/work.json` | Every role, with company, URL, period, summary, highlights, and stack. |
| GET | `/api/projects.json` | Open-source and side projects, with tagline, description, repository URL, and proof-of-traction where it exists. |
| GET | `/api/talks.json` | Conference talks, mentorship, and open-source programme work. |
| GET | `/api/posts.json` | All published posts, newest first, with slug, title, date, description, and both the HTML and Markdown URLs. |
| GET | `/api/posts/{slug}.json` | One post including its full Markdown body. `slug` comes from `/api/posts.json`. |

OpenAPI 3.1 specification: https://anuragxd.com/openapi.json

## Markdown content negotiation

Every content page serves a Markdown representation from the same URL, following the acceptmarkdown.com convention. Responses carry `Vary: Accept, Accept-Encoding`.

```sh
curl -H "Accept: text/markdown" https://anuragxd.com/work
curl https://anuragxd.com/work.md
# an Accept header we cannot satisfy returns 406, not a silent fallback
curl -i -H "Accept: application/pdf" https://anuragxd.com/work
```

Available as Markdown: `/`, `/work`, `/projects`, `/blogs`, `/developers`, and every post under `/blogs/{slug}.md`.

## Other machine-readable files

- https://anuragxd.com/llms.txt — site index for language models
- https://anuragxd.com/openapi.json — OpenAPI 3.1 description of this API
- https://anuragxd.com/sitemap.xml — every canonical URL
- https://anuragxd.com/rss.xml — blog feed
- https://anuragxd.com/robots.txt — crawler policy, AI crawlers explicitly allowed
---

Markdown representation of https://anuragxd.com. Request any page with `Accept: text/markdown`, or append `.md` to its URL. Index: https://anuragxd.com/llms.txt · API: https://anuragxd.com/api/index.json
