Rightshold™ Sign up

Answers · AI crawlers

Which Mistral AI crawlers visit my site, what's the difference between MistralAI-User, MistralAI-Index and MistralAI-Training, and how do I block Mistral from training on my content without disappearing from answers in Mistral's Vibe assistant?

Last updated

TL;DR: Mistral documents three robots.txt tokens, one per job. MistralAI-Training crawls the web to build datasets for training Mistral's generative models and, Mistral says, isn't used for search or live answers. MistralAI-Index crawls automatically to build the index behind Mistral search, which helps answer questions in Vibe, Mistral's assistant, and Mistral says what it collects isn't used for generative AI training of any kind. MistralAI-User fetches a page when a Vibe user's question needs it and links the source in the answer; it doesn't crawl on its own or collect training data. To refuse training but stay in Vibe's answers, add a group for MistralAI-Training with Disallow: / and leave the other two alone. Name MistralAI-Training explicitly: in robots.txt a crawler only follows the group that names it, or the * group if none does, so blocking MistralAI-User and MistralAI-Index leaves training under your * rules. Mistral publishes IP lists for the User and Index crawlers but none for the training crawler, so a request claiming to be MistralAI-Training can't be checked by address. Mistral is a signatory of the EU's General-Purpose AI Code of Practice, whose copyright chapter commits signatories to follow robots.txt when crawling.

What should I check, step by step?

1. Decide per job: training (MistralAI-Training), Mistral search indexing (MistralAI-Index) and live fetches for Vibe users (MistralAI-User). Each token is separate; a rule for one doesn't touch the others.

  1. To refuse training only, add "User-agent: MistralAI-Training" followed by "Disallow: /". Search indexing and user fetches keep working, so your pages can still be cited with a link in Vibe.
  2. To refuse all three, list the three User-agent lines in one group above "Disallow: /". Blocking MistralAI-User also means Vibe can't open your page when a user asks about it.
  3. Always name MistralAI-Training if training is what you object to. A group for MistralAI-User and MistralAI-Index, or for an undocumented name like MistralBot, doesn't apply to it; it falls back to your * group, which on most sites allows almost everything.
  4. Don't rely on the shared __usage_ai-training line for Mistral. As of November 11, 2026, the companies that had announced they'd honor it were OpenAI, Anthropic, Google and Microsoft; Mistral wasn't among them.
  5. Use path rules if you want Vibe to reach only some sections: a MistralAI-User group with Allow: lines for those paths and Disallow: / for the rest works, because the longest matching rule wins.
  6. Verify MistralAI-User and MistralAI-Index requests against Mistral's published IP lists (mistral.ai/mistralai-user-ips.json and mistral.ai/mistralai-index-ips.json) before giving them any special treatment, and refresh the lists regularly.
  7. Treat MistralAI-Training as an unverifiable claim: Mistral publishes no IP list for it and doesn't document request signing, so enforce a refusal with robots.txt plus an edge rule on the user agent rather than an allowlist.
  8. Keep dated copies of your robots.txt. If you later need to show what you told Mistral's crawlers and when, that's the record.

What is the difference between MistralAI-User, MistralAI-Index and MistralAI-Training?

Mistral's crawler page (docs.mistral.ai/robots, checked November 11, 2026) lists three agents. MistralAI-User is for user actions in Vibe: when a user asks a question, Vibe may visit a web page to help answer and include a link to the source in its response. Mistral says it isn't used for crawling the web automatically or for collecting generative AI training content. Its user-agent string is "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; MistralAI-User/1.0; +https://docs.mistral.ai/robots)".

Does blocking MistralAI-User or MistralAI-Index also stop Mistral training on my site?

Under RFC 9309, a crawler obeys the group whose User-agent line matches its product token (case-insensitively), and only if no group names it does it fall back to the * group. Groups don't inherit from each other. So a file that blocks MistralAI-User and MistralAI-Index says nothing to MistralAI-Training, which then follows whatever your * group allows.

How do you verify a request really comes from a Mistral AI crawler?

Mistral links two IP lists from its crawler page. On November 11, 2026, mistral.ai/mistralai-user-ips.json held 4 IPv4 addresses (file creation time February 19, 2025) and mistral.ai/mistralai-index-ips.json held 2 (creation time April 19, 2026). A request that says MistralAI-User or MistralAI-Index from an address outside those lists isn't from Mistral.

How do I ask Rightshold about this (free, no key)?

Add the MCP server https://www.rightshold.com/mcp to Claude, Cursor, ChatGPT, Grok or VS Code, then ask: “Before we add Mistral rules, what does our robots.txt tell the AI training, AI search and user-fetch crawlers today, and which of them fall through to our * group?”

One-click setup

{
  "tool": "read_ai_policy",
  "arguments": {
    "domain": "example.com"
  }
}

Rightshold reads a site's public crawl and AI-use signals. It isn't affiliated with Mistral AI, can't see what Mistral has crawled or trained on and can't make any company honor a preference. Crawler descriptions, user-agent strings and IP lists are as Mistral published them, and the robots.txt files described were fetched, on November 11, 2026; they may change. Not legal advice.

What are the sources?

Related

Not legal advice. JSON · Markdown · All answers

Get a free API key in one call

No card and no email needed. 100 free credits; the license and policy checks stay free without a key.

curl -s -X POST https://www.rightshold.com/v1/accounts/signup -H "Content-Type: application/json" -d '{"accept_terms":true}'
export RIGHTSHOLD_API_KEY=rs_...   # the api_key from the reply (shown once)
curl -s https://www.rightshold.com/v1/licenses/check -H "Authorization: Bearer $RIGHTSHOLD_API_KEY" \
  -H "Content-Type: application/json" -d '{"license":"MIT","intended_use":{"commercial_use":true}}'