tobis.vision developer resources
Everything on this site that is meant to be read by a program rather than a person. All of it is public, read-only, and needs no key. Tobi Moccagatta is a creative developer at basement.studio; the content below is the portfolio itself, served as data.
(Machine-readable files)
- /llms.txt
The site in one plain-text file: pages, selected work, experiments, contact — and when an agent should reach for any of it.
- /agents.md
The same when-to-use guidance, at the address the AGENTS.md convention looks for.
- /openapi.json
OpenAPI 3.1 description of the read-only content API below.
- /sitemap.xml
Every published URL.
- /robots.txt
Crawler policy. Retrieval and training crawlers are both allowed.
(Content API)
The CMS behind the site exposes its published documents over REST. Read access is open; nothing else is. Request and response shapes are in openapi.json.
- /api/v1/works
Published work, paginated.
- /api/v1/globals/home
Home page copy.
- /api/v1/globals/about
The bio, as Lexical rich text.
- /api/v1/media
Images and video, with alt text and dimensions.
(Markdown)
Every page answers Accept: text/markdown with markdown at its own URL, per acceptmarkdown.com. Those responses carry Vary: Accept, Accept-Encoding, and an Accept that rules out both HTML and markdown gets a 406.
curl -H "Accept: text/markdown" https://tobis.vision/aboutThe same documents are addressable directly, for clients that cannot set headers:
(Versioning, deprecation and limits)
Versioning
Versions live in the URL path. /api/v1/… is the current major and the one to integrate against.
/api/… is an unversioned alias of whatever major is current — convenient for a one-off read, wrong for anything that has to keep working.
A breaking change ships as a new major at a new path. The old path keeps working through its deprecation window.
Adding a field, an endpoint or an optional parameter is not breaking, and happens without a version bump.
Deprecation
A retiring version answers with Deprecation (RFC 9745) carrying the date the deprecation took effect, and Sunset (RFC 8594) carrying the date it stops answering.
Both come with Link: <…>; rel="deprecation" pointing at the notice.
The window between the two is at least six months.
Nothing is deprecated today, so neither header is being sent.
Rate limits
120 requests per 60 seconds per client, on GET and HEAD.
Every response carries RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset, and the structured-field RateLimit and RateLimit-Policy the current draft defines. Read either.
Over the limit is 429 with Retry-After in seconds.
Counters are held per server instance, so the effective limit across a fleet is higher than the number quoted. Pace against the headers, not the number.
(Contact)
contact@tobis.vision — Tobi Moccagatta, Creative Developer at basement.studio, Buenos Aires (UTC-3).