# fbb.sh API

The fbb.sh website exposes Frederik Bosch's public profile through a small,
read-only interface. Start at the [fbb.sh developer resource index](/developers/)
or use the [OpenAPI description](/openapi.json) for the machine-readable API
contract.

## JSON API

The canonical API base is `https://fbb.sh/api/v1`.

- `GET /api/v1/` returns a JSON discovery document with canonical profile and developer-resource URLs.
- `HEAD /api/v1/` returns the same response headers without a body.

No authentication is required. The API is public and read-only.

```sh
curl https://fbb.sh/api/v1/
```

## Profile representations

The public profile is also available directly in formats suited to browsers and
agents:

- `GET /` returns the browser-oriented HTML representation by default.
- `GET /` with `Accept: text/markdown` returns the agent-oriented Markdown representation.
- `GET /_agent.md` returns the Markdown representation directly.
- `GET /.well-known/api-catalog` returns the RFC 9727 API catalog linkset.

`HEAD` is supported wherever `GET` is supported. The interface does not accept
writes.

## Errors

Unknown browser or crawler paths return HTTP 404 with a short Markdown body
linking to `/llms.txt`, `/sitemap.xml`, and `/developers/`.

Unknown paths below `/api/`—including OpenAPI-relative probes below `/api/v1/`—
use `application/problem+json` without requiring a special `Accept` header.
Requests outside `/api/` that explicitly accept `application/json` receive the
same structured response. Each error contains the standard RFC 9457 Problem
Details fields plus stable `code`, `message`, and `hint` fields:

```json
{
  "type": "https://fbb.sh/developers/#errors",
  "title": "Resource not found",
  "status": 404,
  "code": "not_found",
  "message": "No fbb.sh resource exists at this URL.",
  "detail": "No fbb.sh resource exists at this URL.",
  "hint": "See https://fbb.sh/developers/ or https://fbb.sh/llms.txt for available resources.",
  "instance": "https://fbb.sh/api/v1/unknown"
}
```

Unsupported methods on known resources return `405 method_not_allowed` and an
`Allow: GET, HEAD` header.

## Integrations

fbb.sh does not currently expose webhooks or an MCP server. The developer index
is the canonical place to check if those capabilities are added later.
