# Building with LLMs

> Every page here is published as Markdown, and llms.txt indexes it. How to point Claude, ChatGPT, Cursor or your own agent at these docs.

## Overview

If you are integrating Noah with the help of a coding agent, you do not have to paste screenshots of
this site into a chat window. Everything here is published in a form an agent can fetch directly.

- **Append `.md` to any URL on this site** to get its Markdown source instead of the rendered page.
- **[`/llms.txt`](pathname:///llms.txt)** is the entry point: a short index of every page plus the
  facts about base URLs, authentication and call sequences that are easy to get wrong. It follows
  the [llmstxt.org](https://llmstxt.org) convention and is small enough to read in full.
- **[`/llms-full.txt`](pathname:///llms-full.txt)** is every guide concatenated, when you want an
  agent to hold the whole set at once.

## Markdown for every page

The page you are reading is at `/recipes/building-with-llms`, and its Markdown is at
[`/recipes/building-with-llms.md`](pathname:///recipes/building-with-llms.md). The same holds for
every guide and every API reference page.

If your client cannot easily change the URL, ask for Markdown by content negotiation instead:

```bash
# Both of these return the same Markdown
curl -H "Accept: text/markdown" https://docs.noah.com/getting-started/quick-start
curl "https://docs.noah.com/getting-started/quick-start?format=md"
```

Ordinary browsers are unaffected — they ask for HTML and get the rendered page. Every page also
declares its Markdown twin in the HTML head, so a crawler can discover it without knowing the rule:

```html
<link rel="alternate" type="text/markdown" href="/getting-started/quick-start.md" />
```

The **Copy page** button at the top of each page does the same job interactively. It copies the
page's Markdown, opens it raw, or starts a Claude or ChatGPT conversation already pointed at it.

## The API reference

The reference is published three ways, in increasing order of size:

- [`/api-reference/noah-business-api.md`](pathname:///api-reference/noah-business-api.md) lists
  every endpoint with its method and path. Fetch this first to find the endpoint you need.
- Any single endpoint, with its parameters, request fields and responses, is one `.md` away — for
  example [`/api-reference/create-sell-transaction.md`](pathname:///api-reference/create-sell-transaction.md).
- [The OpenAPI 3.0 document](pathname:///files/oas-schema.generated.json) is the authoritative
  machine-readable description, and the right input for a client generator such as
  [openapi-generator](https://openapi-generator.tech) or [oapi-codegen](https://github.com/oapi-codegen/oapi-codegen).

Error responses are the same across every endpoint, so the endpoint pages link to
[Error Responses](../api-concepts/errors.md) rather than repeating the envelope.

## Calling the API from your editor

To let an agent call the sandbox API while it works, install Noah's MCP server: see
[Set Up Noah MCP in Cursor](./mcp-cursor.md). The Markdown explains which sequence of calls a flow
needs; MCP lets the agent run those calls and see real responses — for example querying
`GET /channels/sell` for the country you are building for instead of guessing at channel IDs.

:::caution

Use a Sandbox API key when an agent can make calls on your behalf, and review what it produces.
Sandbox cryptocurrencies carry a `_TEST` suffix, so a flow that runs there cannot move real funds.

:::
