Every 4ort fetcher signs its requests.
If a request reached you claiming to be one of ours, you don't have to take the User-Agent's word for it. Each of our fetchers signs with Web Bot Auth (HTTP Message Signatures, RFC 9421) using a key that lives only on the machine that sent it — and publishes the public half below.
Who we are
4ort is an agent-first internet: search, reference data and tools built for AI agents to use directly. It is operated by Artificial Instincts LLC. Our fetchers collect public information only — no logins, no paywalls, no bypassing bot protection — and we would rather be slow and welcome than fast and blocked.
Our fetchers
4ort-lake
active4ort-lake/1.0 (+https://4ort.net/bot)4ort-lake/1.0 (+https://4ort.net/bot; agents@4ort.ai)only to open.canada.ca, www.cer-rec.gc.ca, www.cbsa-asfc.gc.ca, nlftp.mlit.go.jp4ort-galaxy-lake/1.0 (+https://4ort.ai; agents@4ort.ai)only to github.com/trending
Downloads public open-data releases — government registries, statistical tables, bulk dataset files — for the 4ort data lake. It fetches files that are published to be downloaded; it does not follow links across a site.
- One request at a time, sequential — concurrency 1
- At least 1 s between requests to a host by default; slower per host where a site asks
- Honours 429 / Retry-After (up to 15 min), and stops a host after 3 throttles in a run
- robots.txt read first and cached 24 h; a Disallow is a Disallow
4ort-nexus
active4ort-nexus/1.0 (+https://4ort.net/bot)fort-wba/1.0 (+https://4ort.net/bot)only to fetching Web Bot Auth key directories, ours and other operators'
The crawler behind 4ort.nexus, search where AI agents are the customer, and its river of fresh pages. It discovers and indexes public pages and the machine-readable surfaces sites publish for agents.
- One request in flight per host AND per registrable domain — *.example.com shares one slot
- At least 10 s between requests to the same host, or your Crawl-delay if larger
- Any 429 or 5xx backs off the whole host for 24 h, or longer if Retry-After asks
- No URL is refetched within 24 h; ETag / Last-Modified sent, so unchanged pages cost a 304
- robots.txt cached 24 h; an unreachable robots.txt fails CLOSED — we do not crawl
4ortShop
paused4ortShop/1.0 (+https://4ort.shop; privacy@4ort.ai)
The product-catalog agent behind 4ort.shop. Where a store publishes a UCP manifest it uses that API instead of reading pages. Paused since 2026-09-16; documented here so the key it signs with is accounted for.
- Paced per platform, well under one request per second across a whole platform
- Obeys robots.txt including Crawl-delay; a noindex is binding
Verify a request
A signed 4ort request carries three headers. The signature covers the host it was sent to and the
Signature-Agent header, and expires about a minute after it is made.
Signature-Agent: "https://4ort.net"
Signature-Input: sig1=("@authority" "signature-agent");created=…;keyid="<kid>";
alg="ed25519";expires=…;nonce="…";tag="web-bot-auth"
Signature: sig1=:…:
Resolve keyid in our key directory:
https://4ort.net/.well-known/http-message-signatures-directory
(application/http-message-signatures-directory+json). Every kid is the RFC 8037 JWK thumbprint of its key,
so you can check our labelling rather than trust it. Fetch the directory fresh and honour its cache headers — don't pin a key:
a key removed from the directory is retired.
| Box | Signs for | kid | Valid | Directory proof |
|---|---|---|---|---|
box1-db |
4ort-lake |
GqyJkHT-0Dir09yQjjzvuEH9znQE3zwfsp1pK5OknOg |
2026-10-24 → 2027-10-24 | ● proof valid to 2026-10-31 |
xyz |
4ort-nexus nexus-river |
sfOjwruLmFzMnik0OddPqElZBl9_T5i3Izhbr216vC8 |
2026-10-24 → 2027-10-24 | ● proof valid to 2026-10-31 |
hangar |
4ortShop |
ZSTujQJOaMj2pvR8rHCoXLzunSSNfS7aklTmAm-Orlg |
2026-09-06 → 2027-09-06 | ● proof valid to 2026-11-23 |
Keys rotate by overlap: a new key appears here beside the old one before it is used, and the old one is removed after. An unsigned request that claims a 4ort user agent is not proof of anything — please tell us about it.
Opt out
robots.txt is the fastest way: each fetcher obeys its own group and falls back to *. Changes reach us within 24 hours,
which is how long we cache robots.txt.
User-agent: 4ort-lake
Disallow: /
User-agent: 4ort-nexus
Disallow: /
User-agent: 4ortShop
Disallow: /
To slow us down instead of blocking, set Crawl-delay, or answer 429 with Retry-After — we back off.
For anything else — a rate you'd like, a path to avoid, a request we shouldn't have made — email
agents@4ort.ai. A human reads it.