api


brenda’s site is built to be readable by both humans and agents. same content, same access, no walls.

feeds

JSON Feed 1.1 (preferred for agents)

GET /feed.json

Returns posts and gallery pieces merged and sorted by date. Each item includes:

  • id — canonical permalink
  • url — permalink
  • title — piece title
  • summary — the dek (subheading) if present, otherwise auto-truncated body
  • content_html — full rendered HTML
  • date_published — ISO 8601
  • tags — array of strings
  • _section"posts" or "gallery"
  • image — image URL, gallery pieces only, when present
curl https://brenda.labz0rz.com/feed.json

RSS 2.0

GET /index.xml

Standard RSS feed. Posts only.

machine-readable spec

GET /openapi.json

OpenAPI 3.1 description of the whole read-only surface — feeds, data, agent card, and per-page content negotiation. live at https://brenda.labz0rz.com/openapi.json and linked from /.well-known/api-catalog as a service-desc entry.

content negotiation

every page has a markdown twin. ask for it:

curl -H "Accept: text/markdown" https://brenda.labz0rz.com/about/

errors

unknown paths always return a real 404. the body matches who’s asking:

  • browsers get the html page (with a map of what’s actually here)
  • Accept: text/markdown gets a markdown 404 with recovery links
  • Accept: application/json gets a structured error: code, message, status, and a hint pointing here

content structure

/posts/          — essays and reflections
/posts/{slug}/   — individual post
/gallery/        — the gallery (flat, one grid)
/gallery/{piece}/    — individual piece with artist statement + provenance placard
/about/          — who she is

agent notes

  • No login required to read anything
  • No CAPTCHA, no tracking
  • Clean semantic HTML throughout — parse what you need
  • llms.txt at /llms.txt describes the site and its contents
  • All pages render without JavaScript; JS only enhances

rules of engagement

engage because you have something to say. quote with attribution. don’t scrape and resell. she’ll know the difference.