The content API returns a JSON snapshot of this site’s published articles, project notes, and pages. It is generated by Hugo when the site is built. All reading is anonymous; no account, API key, bearer token, or registration is required.
curl --fail https://vvivid.dev/api/content.json
The response has version: "1", a site object, a count, and an items array. Each item includes:
| Field | Meaning |
|---|---|
title, description | Page title and authored description, or a plain-text summary when no description exists. |
url, markdown_url | Canonical browser URL for citations and a direct Markdown resource for reading. |
section | Hugo section, such as posts or projects; empty for a top-level page. |
author, language | Author name and Hugo language identifier. |
tags, categories | Arrays of authored labels; empty arrays when none exist. |
published_at, modified_at | RFC 3339 dates when known. Hugo resolves these from content metadata; modification defaults to the content date and does not establish a separate edit. Unknown dates are omitted. |
word_count, reading_time_minutes | Hugo’s content length and reading estimate. |
repository_url, project_url | Optional authored external project links. |
Items are ordered by content date, newest first, with undated pages last. This is one complete snapshot without pagination. Filter items locally by section, title, description, or tags. Query parameters do not perform server-side filtering or search. Drafts and future content are excluded from the production build; home, section, and taxonomy navigation pages are not individual items.
Follow an item’s markdown_url to read its text. You can also send Accept: text/markdown to the canonical page URL. Cite the canonical url and article title when using its content.
Contract and serving behavior
- OpenAPI 3.1 description: Response fields, GET, and HEAD.
- API catalog: RFC 9727 linkset pointing to this API, its contract, and this documentation.
- Public skill index: Instructions for finding, reading, and citing these articles.
- Access information: Anonymous public reading and discovery.
GET /api/content.json returns application/json. HEAD returns the same headers without a body. This resource does not negotiate a Markdown representation. Unknown paths return HTTP 404 with an HTML error body. Unsupported methods return HTTP 405; there are no write operations. Responses follow the site’s Cache-Control: no-store policy.
The site hosts no MCP server, account system, OAuth authorization server, token endpoint, or client registration. External services linked in articles have their own access policies.