# adatepe.dev API notes

Companion prose for https://www.adatepe.dev/openapi.json. Written for whoever,
human or agent, is deciding what to call.

## Before you call anything

If you want to know about Alperen, do not use these endpoints. They exist to
feed parts of the site and are shaped for that. Read
https://www.adatepe.dev/llms.txt or https://www.adatepe.dev/llms-full.txt
instead; one fetch, written for machine readers, no parsing.

## Authentication

None. See https://www.adatepe.dev/auth.md.

## Endpoints

### GET /api/prototypes

The published Proof Oracle prototypes, newest first, as the homepage strip and
the /built page show them. Unpublished rows are filtered in SQL and never
appear. Returns `{ "rows": [] }` rather than a 500 when the database is
unreachable, because this powers decoration and must not break the page.

Cached: `public, s-maxage=300, stale-while-revalidate=600`.

### GET /api/github

Aggregated public GitHub activity for github.com/noluyorAbi. Server-side only,
so the token never reaches a browser. With `?year=YYYY` you get that year's
contribution calendar; without it, the full payload.

Cached for five minutes. It sits on top of GitHub's own rate limits, so treat
it as a courtesy: for anything at volume, call the GitHub API yourself.

## What is not here, and why

Two public endpoints are deliberately absent from
https://www.adatepe.dev/openapi.json and from
https://www.adatepe.dev/.well-known/api-catalog:

- `POST /api/oracle` spends real model budget on every call. It is rate
  limited per IP and capped by a daily spend ceiling, and it is meant to be
  driven by a person on the homepage, not enumerated.
- `POST /api/contact` sends mail to a human.

Both are reachable, neither is advertised. Anything that discovers an OpenAPI
document and starts calling every path in it should not be able to spend money
or reach an inbox by doing so. If a user genuinely wants either, drive the
site's own interface.

## Content in other formats

- `Accept: text/markdown` on `/`, `/blog`, `/blog/<slug>` and
  `/work-with-me` returns the source markdown instead of HTML.
- https://www.adatepe.dev/sitemap.xml lists every URL.
- https://www.adatepe.dev/blog/feed.xml is the writing feed.
- https://www.adatepe.dev/.well-known/agent-skills/index.json lists the published agent skills.

## Usage preferences

robots.txt carries `Content-Signal: ai-train=no, search=yes, ai-input=yes`.
Index it, cite it, ground an answer in it. Do not train on it.
