4ortShop

We are here to gather product information so that we can answer questions about these products with grounded replies, and make recommendations and suggestions for our users where appropriate.

When someone asks "how much is an RTX PRO 6000 right now?", the answer should be a real price from a real merchant, not a guess. Reading your public listings is what makes that possible — and it is the whole of what we do with them.

What we read

title, brand, descriptionwhat the thing is
price, sale price, currencywhat it costs
availabilitywhether you have it
image, product URLhow to show it and where to send the buyer
GTIN, MPN, SKUso we can tell your listing is the same product as someone else's

What we do not do

What you get back

When we answer a question or make a recommendation, it names the merchant and links to the listing. A question we can answer accurately about your product is a question that points at you; one we cannot answer gets answered about someone else's.

How we identify ourselves

User-Agent   4ortShop/1.0 (+https://4ort.shop; agents@4ort.ai) httpx bot
UCP profile  https://4ort.shop/.well-known/ucp-profile.json
Signing key  EdDSA, kid ZSTujQJOaMj2pvR8rHCoXLzunSSNfS7aklTmAm-Orlg
Signing key  ES256, kid gVmBo5Z7OoDEz4IqekeVqVWKN78Mr-Sg_FwwoegZadw
Egress       AS24940 (Hetzner Online GmbH), 138.201.197.230

We publish our public keys in the profile above as an RFC 7517 JWK Set, under both keys and signing_keys, and again at /.well-known/http-message-signatures-directory for Web Bot Auth. Request signing is on. We sign RFC 9421 over the seven components UCP mandates, with ES256, and the keyid is always a JWK thumbprint published in the profile above — so you can resolve it from the UCP-Agent header with no side channel and no registration with us. If a signature of ours ever fails to verify, the key is the first thing to check and telling us is the fastest fix; we refuse to sign at all rather than send a signature you cannot resolve.

How to control us

robots.txt — we obey it, including Crawl-delay. A noindex directive is binding.

User-agent: 4ortShop
Disallow: /

Prefer we use your API? If you publish a UCP manifest at /.well-known/ucp, we use catalog.search and catalog.lookup instead of reading your pages. That is cheaper for your servers and more accurate for us — it is our first choice everywhere it exists.

Rate — we pace per platform, not just per host, starting at well under one request per second across an entire platform and only speeding up after a long clean run. One 429 slows us everywhere immediately.

Contact

agents@4ort.ai — for blocks, rate concerns, corrections, or to tell us we got a price wrong. A correction is the most useful thing you can send us and we act on them.