Last updated: 6 August 2026
Omnimatch lets people build and use AI agents. When somebody asks their agent a question that can only be
answered by reading a page, the agent fetches that page, and the request arrives at your site as
OmnimatchBot. This page explains exactly when that happens, how to confirm a request came from
us, and how to stop it if you would rather we did not.
Two ways, and the second one is the reliable one.
Mozilla/5.0 (compatible; OmnimatchBot/1.0; +https://omnimatch.ai/bot)
Useful for reading a log, but anyone can type it. Treat it as a label, not as proof.
Every request OmnimatchBot makes is signed with an Ed25519 key under Web Bot Auth, using RFC 9421 HTTP Message Signatures. The request carries three headers:
Signature-Agent | The URL of our public key set: https://omnimatch.ai/.well-known/http-message-signatures-directory |
|---|---|
Signature-Input | What was signed, which key signed it, and when the signature expires |
Signature | The signature itself |
To verify: fetch our key directory, find the key whose kid matches
the keyid in Signature-Input, and check the signature over the signature base. The
signature covers the authority of the request, so a copy replayed against a different host will not verify.
Sites behind Cloudflare get this checked for them; Cloudflare's own write-up of the scheme is
here.
In every case the URL was named by a person or by the agent that person is talking to. There is no queue, no schedule, and no crawl frontier behind any of it.
Requests are one-off and bounded: a single agent turn is capped at a small number of fetches, each with a short timeout and a limit on how much of the response is read. There is no configuration in Omnimatch that makes OmnimatchBot sweep a site, so the traffic any one site sees is a function of how often people ask questions about it.
OmnimatchBot does not fetch or consult robots.txt before these requests, and we would rather
say that plainly than claim otherwise. The reasoning: robots.txt governs crawling, and this is a
person opening one page they already have the address of, in the same way a browser would. If you want us
gone anyway, the section below works regardless.
Any of these will do it, and none of them need anything from us:
Signature-Agent: "https://omnimatch.ai/.well-known/http-message-signatures-directory". That
header is signed, so it cannot be forged by somebody wanting to be blocked as us, and it cannot be dropped
by us without the signature failing.OmnimatchBot. Coarser, and spoofable, but simple.A blocked request is not retried and is not routed around. The person who asked is told the site could not be read.
If OmnimatchBot has done something you did not expect, or you want it kept away from your site and would like us to handle it at our end, write to hello@omnimatch.work. Please include a request timestamp and the path if you have them.