---
title: "Developers and agents"
url: "https://www.akshaymaurya.com/developers"
description: "A read-only JSON API over everything on this site, an OpenAPI description of it, and a markdown twin of every page."
---

# Developers and agents

A read-only JSON API over everything on this site, an OpenAPI description of it, and a markdown twin of every page.

Everything this site displays is also available as JSON. The endpoints are static files rebuilt on every deploy, which means there is no authentication, no API key to request, no rate limit and nothing to sign up for. Fetch them the same way you would fetch any other public file. CORS is open, so browser-side calls work too.

Start at https://www.akshaymaurya.com/api/index.json, which lists every endpoint. The machine-readable description of the whole surface is at https://www.akshaymaurya.com/openapi.json, and it is OpenAPI 3.1.

## Endpoints

GET /api/profile.json — identity, location, contact address, and the kinds of work I am open to, plus the kinds I am not.

GET /api/experience.json — employment history and education, with what was shipped in each role.

GET /api/projects.json — products and open-source packages, with repository links, stacks and metrics, plus the archive of older repositories.

GET /api/writing.json — published essays and articles, each with a link to a markdown version.

GET /api/stack.json — tools and technologies, focus areas, awards and certifications.

## A note on the numbers

Star counts, pub.dev likes and monthly installs in the JSON are the values captured when the site was last built, and every document carries a capturedAt date so you can tell how old that is. The website itself fetches those same numbers live from the GitHub and pub.dev APIs in your browser, so the page you are reading may show a fresher figure than the JSON does. If you need live values, call those APIs directly — the JSON tells you which repository and which package to ask about.

## Errors

A request for a resource that does not exist under /api returns HTTP 404 with a JSON body, not an HTML page. The body is an object with an error key containing code, message, a hint about what to do next, and a link to this documentation.

## Markdown and agent access

Every page on this site has a markdown twin. Request any URL with the header Accept: text/markdown and you will get markdown back, with Vary: Accept set so a cache cannot hand you the wrong variant. You can also append /index.md to any path, or add ?mode=agent to a URL, and known AI crawler user-agents are served markdown automatically.

For a condensed briefing rather than the full site, read /llms.txt. It names what I am a good fit for and what I am not, and links to the scoped files for each area. Agent skills are indexed at /.well-known/agent-skills/index.json.
