> ## Documentation Index
> Fetch the complete documentation index at: https://docs.contracts.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Crawlers

> llms.txt, llms-full.txt, the sitemap and robots — the whole site as text, saying exactly what the pages say.

contracts.io is written to be read by software as well as by people, and the
rule governing all of it is that the machine-readable copy says the same thing
the page says. An `llms.txt` that differs from the rendered page is a cloak.

## The two text files

<CardGroup cols={2}>
  <Card title="/llms.txt" icon="file-text" href="https://contracts.io/llms.txt">
    Every URL on the site, under the same headings the site itself uses — the
    template shelves and the picker's regions — one line each, with absolute URLs.
  </Card>

  <Card title="/llms-full.txt" icon="file-text" href="https://contracts.io/llms-full.txt">
    The same map, with each page's own lead paragraph underneath it, for a reader
    that wants the words rather than the addresses.
  </Card>
</CardGroup>

Both are generated from the same module as the pages, so the counts and the names
cannot drift. An earlier version listed only the twelve papers in the library and
four common jurisdictions; it was honest and it was a map with most of the country
missing. Every kind and every legal unit is in there now.

## The sitemap

[contracts.io/sitemap.xml](https://contracts.io/sitemap.xml) carries the whole
catalogue. Every page in it is generated statically at build, with invented URLs
returning 404 rather than a thin page — so a URL in the sitemap is a URL that
exists.

## robots.txt

[contracts.io/robots.txt](https://contracts.io/robots.txt) allows everything, and
then names sixteen read, search and training agents individually and allows them
too:

```text robots.txt theme={null}
GPTBot · OAI-SearchBot · ChatGPT-User
ClaudeBot · Claude-User · Claude-SearchBot · anthropic-ai
PerplexityBot · Perplexity-User
Google-Extended · Applebot-Extended
Bytespider · CCBot · Meta-ExternalAgent · Amazonbot · cohere-ai
```

Naming them by hand is a decision and not a default. We want to be read — and
that is exactly why the text files may not say anything the pages do not.

## Structured data

Pages carry JSON-LD for what they actually are: `BreadcrumbList` on every
generated page, `FAQPage` where there are questions, `ItemList` on the indexes,
and `AdministrativeArea` on each place under `/law`, with a `sameAs` pointing at
its Wikidata entity.

No ratings, no offers, no counts we cannot show.

## These docs

This documentation site is built with Mintlify, which generates its own
`/llms.txt` and `/llms-full.txt` from the pages you are reading. Once the docs are
live at their own domain, those two files sit alongside the ones on the main site.

## This page is not about MCP

Everything above is for crawlers: something fetching URLs and reading text.

An agent that wants to *act* on a contract — draft one, stage a decision, read a
letter — wants the MCP server, which is a different surface with a different set of
rules and its own ceiling.

<Card title="MCP" icon="plug" href="/api/mcp" horizontal>
  The same verbs the buttons have, one seat down, and it can never send and never
  sign. Draft, ahead of the backend.
</Card>
