Documentation for AI agents
Every page of this documentation is available in a machine-readable form. If you build an AI agent, a retrieval pipeline, or an internal assistant that answers questions about MONEI, use these endpoints instead of scraping the rendered HTML.
What is available
| Resource | URL | Format |
|---|---|---|
| Page index | https://docs.monei.com/llms.txt | Markdown |
| Any page as Markdown | https://docs.monei.com/<path>.md | Markdown |
| Markdown negotiation | Accept: text/markdown on any page URL | Markdown |
| MCP server | See MCP server | MCP |
| Search API | https://docs-search.monei.com | JSON |
| Canonical URL list | https://docs.monei.com/sitemap.xml | XML |
| REST API spec | https://js.monei.com/api/v1/openapi.json | OpenAPI 3 |
| GraphQL schema | https://graphql.monei.com/ | GraphQL (introspection) |
| Postman collection | https://postman.monei.com/ | Postman |
Read any page as Markdown
Drop the trailing slash from a documentation URL and append .md. You get the
page content without navigation, scripts, or layout markup:
curl https://docs.monei.com/payments/refunds.md
Spanish pages work the same way under the /es/ prefix:
curl https://docs.monei.com/es/payments/refunds.md
https://docs.monei.com/llms.txt lists every page with its title, description,
and Markdown URL, grouped by section. Start there when you want to walk the whole
corpus.
You can also ask for it by content negotiation, without changing the URL. Send
Accept: text/markdown to any documentation URL and you get that page's Markdown;
the response carries Vary: Accept:
curl -H "Accept: text/markdown" https://docs.monei.com/payments/refunds/
The .md URL and the Accept header are equivalent — use whichever your client
makes easier. Anything already carrying an extension, such as /llms.txt or
/sitemap.xml, is served as-is either way.
MCP server
The documentation index is published as a hosted Model Context Protocol server. Point an MCP client at this URL — there is no key to obtain, no account to create, and nothing to install:
https://docs-mcp.monei.com/mcp
Add it to your client
- Claude Code
- Claude Desktop
- Cursor
- VS Code
- Other clients
claude mcp add --transport http monei-docs https://docs-mcp.monei.com/mcp
Check it registered with claude mcp list.
Open Settings → Connectors → Add custom connector, then paste the URL:
https://docs-mcp.monei.com/mcp
Leave the authentication fields empty — the server does not use them.
Add to ~/.cursor/mcp.json for every project, or .cursor/mcp.json for one:
{
"mcpServers": {
"monei-docs": {
"url": "https://docs-mcp.monei.com/mcp"
}
}
}
Add to .vscode/mcp.json in your workspace. Note VS Code uses servers, not
mcpServers:
{
"servers": {
"monei-docs": {
"type": "http",
"url": "https://docs-mcp.monei.com/mcp"
}
}
}
Most clients read this shape. The transport is streamable HTTP, so no command or arguments are needed:
{
"mcpServers": {
"monei-docs": {
"type": "http",
"url": "https://docs-mcp.monei.com/mcp"
}
}
}
Once connected, ask your agent something the docs answer — "how do I refund a payment with MONEI?" or "which payment methods support pre-authorization?" — and it will search these pages instead of guessing.
It exposes two tools:
| Tool | What it does |
|---|---|
algolia_search_index_monei | Search the documentation. Same index as the site's search. |
algolia_search_for_facet_values | List the values of a facet, such as lang or record_type. |
Results are the same DocSearch records described under
Response shape, so each hit carries the section anchor to
cite and a url whose Markdown twin you can fetch (drop the #anchor and the
trailing slash, then append .md).
The server is read-only — it can search the documentation and nothing else. It reaches no MONEI account, payment, or customer data.
Search the documentation
The documentation index is served by Algolia DocSearch. Query it over HTTP with no credentials — the search key is attached for you at the edge:
| Parameter | Value |
|---|---|
| Endpoint | https://docs-search.monei.com |
| Index name | monei |
The request and response format is Algolia's, so any Algolia client works if you point it at this host.
- cURL
- JavaScript
- Python
curl -G "https://docs-search.monei.com/1/indexes/monei" \
--data-urlencode "query=refund a payment" \
--data-urlencode "filters=lang:en AND record_type:docs" \
--data-urlencode "hitsPerPage=5" \
--data-urlencode "attributesToRetrieve=url,hierarchy,content"
const params = new URLSearchParams({
query: 'refund a payment',
filters: 'lang:en AND record_type:docs',
hitsPerPage: '5',
attributesToRetrieve: 'url,hierarchy,content'
});
const response = await fetch(`https://docs-search.monei.com/1/indexes/monei?${params}`);
const {hits} = await response.json();
import requests
response = requests.get(
"https://docs-search.monei.com/1/indexes/monei",
params={
"query": "refund a payment",
"filters": "lang:en AND record_type:docs",
"hitsPerPage": 5,
"attributesToRetrieve": "url,hierarchy,content",
},
)
hits = response.json()["hits"]
Filters
Combine these attributes in the filters parameter to narrow a query:
| Attribute | Values | Use it to |
|---|---|---|
lang | en, es | Return one language instead of both. |
record_type | docs, api | Separate guides from generated API reference. |
type | content, lvl1–lvl6 | Prefer body text over heading-only records. |
Response shape
Each hit is a DocSearch record: a section of a page, not a whole page.
url— the canonical URL, with the anchor of the matching section. To fetch the Markdown, drop the#anchorfirst, then the trailing slash, then append.md:/payments/refunds/#timingbecomes/payments/refunds.md. Appending.mdto the whole URL yields#timing.md, which is just a fragment and still requests the HTML page.hierarchy.lvl0–lvl6— the heading path, from the section down to the matched heading.content— the body text of the section, ornullwhen the record is a heading.
Because every hit carries a section anchor, cite the exact section
(/payments/refunds/#timing) rather than pointing a reader at the whole page.
Search is read-only and shared by everyone using these docs. Cache what you
retrieve, and do not use search to mirror the corpus — llms.txt and the .md
URLs exist for bulk reading.
API specifications
- OpenAPI —
https://js.monei.com/api/v1/openapi.jsondescribes every REST endpoint, request body, and response schema. It is the source for the REST API reference. - GraphQL —
https://graphql.monei.com/accepts standard introspection queries. See the GraphQL API reference and MONEI Connect for who it is for. - Postman —
https://postman.monei.com/is a prebuilt collection for trying the REST API.
To call either API you need an API key from your MONEI Dashboard. Use a test key while you build — see Test and go live.
Crawling
https://docs.monei.com/robots.txt allows every crawler, including GPTBot,
ClaudeBot, Google-Extended, PerplexityBot, and Amazonbot. Nonexistent paths
return a real HTTP 404, so you can trust a 404 to mean the page does not exist.
Common questions
Should I use the MCP server or the search API?
Use the MCP server if your client speaks MCP — it needs no credentials and no code. Use the search API when you are writing your own retrieval pipeline and want direct control over filters and pagination. Both query the same index.
Do I need an API key to search?
No. docs-search.monei.com attaches a search-only key at the edge, so your
client sends nothing. It queries the documentation index and nothing else — it
grants no access to your MONEI account.
Which URL should an agent cite?
Cite the HTML URL, including the section anchor — it is the canonical address a
human can open. To read that page as Markdown, strip the anchor and the trailing
slash first, then append .md.