# AI assistants

Give your coding assistant the moan.hot API docs and OpenAPI spec through llms.txt, Markdown pages and openapi.json.

These docs are built to be read by coding assistants as well as people. If you build with Claude, Cursor, Copilot, ChatGPT or similar, give the assistant the machine-readable versions below instead of pasting screenshots.

## llms.txt

| File | What it is |
|---|---|
| [`/docs/llms.txt`](https://api.moan.hot/docs/llms.txt) | A short index: what the API is, the basics, and links to every page |
| [`/docs/llms-full.txt`](https://api.moan.hot/docs/llms-full.txt) | Every page in one Markdown file. Paste or attach this for full context |
| [`/docs/llms-small.txt`](https://api.moan.hot/docs/llms-small.txt) | The same, trimmed of asides and extra whitespace, for smaller context windows |

These follow the [llms.txt](https://llmstxt.org/) convention, so tools that look for `llms.txt` find them on their own.

## One page as Markdown

Every page has a **Copy as Markdown** button next to its title, and a Markdown twin at the same path with `.md`, for example [`/docs/webhooks.md`](https://api.moan.hot/docs/webhooks.md). Use it to give an assistant exactly the page you are working on.

## The OpenAPI spec

The full contract is an OpenAPI 3.1 document at [`/docs/openapi.json`](https://api.moan.hot/docs/openapi.json). It has every endpoint, schema, webhook payload and, in `x-error-codes`, the error codes each operation can return. It is the same file the [API reference](/docs/api/) is built from.

Most assistants do best with the spec plus one guide. A prompt that works well:

```text
You are integrating the moan.hot API. The OpenAPI 3.1 spec is at
https://api.moan.hot/docs/openapi.json and the guides are at
https://api.moan.hot/docs/llms-full.txt. Read both before writing code.

Write a server-side TypeScript module that:
- lists video effects and caches them for an hour,
- creates a generation with an Idempotency-Key and retries 429 and 5xx with backoff, same key,
- verifies Standard Webhooks signatures on our /webhooks/moanhot route,
- stores generation ids, not output URLs (they expire after 1 hour).
Use fetch only, no SDK. Money fields are integer micro-USD.
```

If your assistant cannot fetch URLs, download the files and attach them:

```sh
curl -O https://api.moan.hot/docs/openapi.json
curl -O https://api.moan.hot/docs/llms-full.txt
```

You can also generate a typed client from the spec, for example with `npx openapi-typescript https://api.moan.hot/docs/openapi.json -o moanhot.d.ts`.

## Keep keys out of prompts

Never paste a live key into a chat. Assistants only need the docs and the spec; give your code the key through an environment variable such as `MOANHOT_API_KEY`.
