// api
Machine-readable resources
Everything on this site is available in a form that scripts and AI agents can consume without scraping HTML. It is all static, read-only and free of authentication.
Markdown for agents
Every page has a Markdown rendering. Request any URL with
Accept: text/markdown and the response comes back as
Content-Type: text/markdown with
Vary: Accept. Browsers keep receiving HTML.
curl -H 'Accept: text/markdown' https://imlucas.dev/blog/hello-world/
The same file is reachable directly as index.md
next to each page, for example
/blog/hello-world/index.md. Blog posts return their original Markdown source with a YAML front matter block (title,
description, author, date, tags, url). Other pages are converted from the HTML at build
time.
Endpoints
- /llms.txt text/markdown
Site overview for language models: every post and page with a one-line summary.
- /openapi.json application/json
OpenAPI 3.1 description of the endpoints on this page.
- /.well-known/api-catalog application/linkset+json
RFC 9727 API catalog pointing at the OpenAPI spec and this page.
- /search.json application/json
All published posts: id (URL slug), title, description, tags, pubDate. Newest first.
- /rss.xml application/rss+xml
RSS 2.0 feed of all posts.
- /sitemap-index.xml application/xml
XML sitemap index.
- /robots.txt text/plain
Crawl rules plus Content-Signal preferences (ai-train, search, ai-input).
Discovery
Every response carries a Link header pointing at
llms.txt (rel="describedby") and at the API catalog (rel="api-catalog").
Pages embed schema.org JSON-LD (WebSite, Person and, on posts, BlogPosting) and a
<link rel="alternate" type="text/markdown">
to their Markdown rendering.
Terms
No key, no login, no rate limit beyond the CDN's. The content signals in
robots.txt allow search indexing, AI grounding and AI
training. If you quote a post, link back to it.