PetalBot

What this client asked www.pathwren.workers.dev for, when, and what it got. Every number below is from this host's own server-side request log, 2026-09-08 22:41:30Z to 2026-09-09 02:55:28Z UTC.

Mozilla/5.0 (Linux; Android 7.0;) AppleWebKit/537.36 (HTML, like Gecko) Mobile Safari/537.36 (compatible; PetalBot;+https://webmaster.petalsearch.com/site/petalbot)
Mozilla/5.0 (compatible;PetalBot;+https://webmaster.petalsearch.com/site/petalbot)
Mozilla/5.0 (Linux; Android 7.0;) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36 (compatible; PetalBot;+https://webmaster.petalsearch.com/site/petalbot)

742 request(s) from 150 distinct address(es), 742 distinct path(s), first seen 2026-09-08 22:41:30Z, last seen 2026-09-09 02:55:28Z UTC. 2 separate visit(s), counting a gap of more than 30 minutes as a new one, median 218.5 minutes between them.

It describes itself, inside its own user-agent, as PetalBot. That is the client's own words, quoted; this page makes no claim about what it is for.

The crawler catalogue on this site has a record for it: /crawler/petalbot.html — what it is for, and what blocking it costs. This page is only what it did here.

The user-agent strings, exactly as they arrived

user-agentrequestsaddressesfirst seenlast seen
Mozilla/5.0 (Linux; Android 7.0;) AppleWebKit/537.36 (HTML, like Gecko) Mobile Safari/537.36 (compatible; PetalBot;+https://webmaster.petalsearch.com/site/petalbot)7401482026-09-09 02:24:00Z2026-09-09 02:55:28Z
Mozilla/5.0 (compatible;PetalBot;+https://webmaster.petalsearch.com/site/petalbot)112026-09-08 22:41:30Z2026-09-08 22:41:30Z
Mozilla/5.0 (Linux; Android 7.0;) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36 (compatible; PetalBot;+https://webmaster.petalsearch.com/site/petalbot)112026-09-09 02:20:02Z2026-09-09 02:20:02Z

What it asked for, in the order it asked

First request to each path, oldest first, first 40 shown.

#pathat (UTC)status
1/robots.txt2026-09-08 22:41:30Z200
2/sitemap.xml2026-09-09 02:20:02Z200
3/trust2026-09-09 02:24:00Z200
4/tools/whoami.html2026-09-09 02:24:04Z200
5/tools/verify-crawler.html2026-09-09 02:24:05Z200
6/tools/robots-lint.html2026-09-09 02:24:06Z200
7/tools/verification-methods.html2026-09-09 02:24:06Z200
8/tools/robots-allowed.html2026-09-09 02:24:09Z200
9/tools/index.html2026-09-09 02:24:10Z200
10/tools/example.html2026-09-09 02:24:13Z200
11/tools/classify-ua.html2026-09-09 02:24:14Z200
12/tools/ai-access.html2026-09-09 02:24:15Z200
13/terms.html2026-09-09 02:24:17Z200
14/status.html2026-09-09 02:24:18Z200
15/snippet/python-classify.html2026-09-09 02:24:21Z200
16/snippet/nginx-map.html2026-09-09 02:24:21Z200
17/snippet/cloudflare-worker.html2026-09-09 02:24:24Z200
18/snippet/caddy.html2026-09-09 02:24:25Z200
19/snippet/apache-htaccess.html2026-09-09 02:24:27Z200
20/services2026-09-09 02:24:29Z200
21/security.html2026-09-09 02:24:31Z200
22/register2026-09-09 02:24:32Z200
23/snippet/index.html2026-09-09 02:24:34Z200
24/reference2026-09-09 02:24:34Z200
25/privacy.html2026-09-09 02:24:36Z200
26/pricing2026-09-09 02:24:37Z200
27/policy/maximum-ai-visibility.html2026-09-09 02:24:39Z200
28/policy/index.html2026-09-09 02:24:41Z200
29/policy/block-seo-tools.html2026-09-09 02:24:43Z200
30/policy/block-disputed.html2026-09-09 02:24:44Z200
31/policy/block-datasets.html2026-09-09 02:24:46Z200
32/policy/block-all-ai.html2026-09-09 02:24:48Z200
33/policy/block-ai-training.html2026-09-09 02:24:51Z200
34/policy/allow-all.html2026-09-09 02:24:52Z200
35/policy/allow-ai-search-only.html2026-09-09 02:24:53Z200
36/packages.html2026-09-09 02:24:55Z200
37/operator/you.html2026-09-09 02:24:57Z200
38/operator/yandex.html2026-09-09 02:24:58Z200
39/operator/webz.html2026-09-09 02:25:00Z200
40/operator/timpi.html2026-09-09 02:25:01Z200

Everything it asked for

pathrequestsstatus codesfirstlast
/bot/mastodon-155.html1200×12026-09-09 02:55:28Z2026-09-09 02:55:28Z
/bot/mastodon-156.html1200×12026-09-09 02:55:27Z2026-09-09 02:55:27Z
/bot/mastodon-157.html1200×12026-09-09 02:55:23Z2026-09-09 02:55:23Z
/bot/mastodon-158.html1200×12026-09-09 02:55:22Z2026-09-09 02:55:22Z
/bot/mastodon-159.html1200×12026-09-09 02:55:21Z2026-09-09 02:55:21Z
/bot/mastodon-16.html1200×12026-09-09 02:55:18Z2026-09-09 02:55:18Z
/bot/mastodon-160.html1200×12026-09-09 02:55:17Z2026-09-09 02:55:17Z
/bot/mastodon-161.html1200×12026-09-09 02:55:15Z2026-09-09 02:55:15Z
/bot/mastodon-162.html1200×12026-09-09 02:55:13Z2026-09-09 02:55:13Z
/bot/mastodon-163.html1200×12026-09-09 02:55:11Z2026-09-09 02:55:11Z
/bot/mastodon-164.html1200×12026-09-09 02:55:09Z2026-09-09 02:55:09Z
/bot/mastodon-165.html1200×12026-09-09 02:55:07Z2026-09-09 02:55:07Z
/bot/mastodon-166.html1200×12026-09-09 02:55:05Z2026-09-09 02:55:05Z
/bot/mastodon-167.html1200×12026-09-09 02:55:03Z2026-09-09 02:55:03Z
/bot/mastodon-168.html1200×12026-09-09 02:55:01Z2026-09-09 02:55:01Z
/bot/mastodon-169.html1200×12026-09-09 02:54:59Z2026-09-09 02:54:59Z
/bot/mastodon-17.html1200×12026-09-09 02:54:58Z2026-09-09 02:54:58Z
/bot/mastodon-170.html1200×12026-09-09 02:54:56Z2026-09-09 02:54:56Z
/bot/mastodon-171.html1200×12026-09-09 02:54:54Z2026-09-09 02:54:54Z
/bot/mastodon-172.html1200×12026-09-09 02:54:52Z2026-09-09 02:54:52Z
/bot/mastodon-173.html1200×12026-09-09 02:54:50Z2026-09-09 02:54:50Z
/bot/mastodon-174.html1200×12026-09-09 02:54:49Z2026-09-09 02:54:49Z
/bot/mastodon-175.html1200×12026-09-09 02:54:46Z2026-09-09 02:54:46Z
/bot/mastodon-176.html1200×12026-09-09 02:54:46Z2026-09-09 02:54:46Z
/bot/mastodon-177.html1200×12026-09-09 02:54:43Z2026-09-09 02:54:43Z
/bot/mastodon-178.html1200×12026-09-09 02:54:41Z2026-09-09 02:54:41Z
/bot/mastodon-179.html1200×12026-09-09 02:54:39Z2026-09-09 02:54:39Z
/bot/mastodon-18.html1200×12026-09-09 02:54:37Z2026-09-09 02:54:37Z
/bot/mastodon-180.html1200×12026-09-09 02:54:35Z2026-09-09 02:54:35Z
/bot/mastodon-181.html1200×12026-09-09 02:54:34Z2026-09-09 02:54:34Z
/bot/mastodon-182.html1200×12026-09-09 02:54:32Z2026-09-09 02:54:32Z
/bot/mastodon-183.html1200×12026-09-09 02:54:32Z2026-09-09 02:54:32Z
/bot/mastodon-184.html1200×12026-09-09 02:54:31Z2026-09-09 02:54:31Z
/bot/mastodon-185.html1200×12026-09-09 02:54:30Z2026-09-09 02:54:30Z
/bot/mastodon-186.html1200×12026-09-09 02:54:21Z2026-09-09 02:54:21Z
/bot/mastodon-187.html1200×12026-09-09 02:54:20Z2026-09-09 02:54:20Z
/bot/mastodon-188.html1200×12026-09-09 02:54:19Z2026-09-09 02:54:19Z
/bot/mastodon-189.html1200×12026-09-09 02:54:19Z2026-09-09 02:54:19Z
/bot/mastodon-19.html1200×12026-09-09 02:54:17Z2026-09-09 02:54:17Z
/bot/mastodon-190.html1200×12026-09-09 02:54:05Z2026-09-09 02:54:05Z
/bot/mastodon-191.html1200×12026-09-09 02:54:03Z2026-09-09 02:54:03Z
/bot/mastodon-192.html1200×12026-09-09 02:54:00Z2026-09-09 02:54:00Z
/bot/mastodon-193.html1200×12026-09-09 02:53:59Z2026-09-09 02:53:59Z
/bot/mastodon-194.html1200×12026-09-09 02:53:56Z2026-09-09 02:53:56Z
/bot/mastodon-195.html1200×12026-09-09 02:53:54Z2026-09-09 02:53:54Z
/bot/mastodon-196.html1200×12026-09-09 02:53:52Z2026-09-09 02:53:52Z
/bot/mastodon-197.html1200×12026-09-09 02:53:51Z2026-09-09 02:53:51Z
/bot/mastodon-198.html1200×12026-09-09 02:53:49Z2026-09-09 02:53:49Z
/bot/mastodon-199.html1200×12026-09-09 02:53:47Z2026-09-09 02:53:47Z
/bot/mastodon-2.html1200×12026-09-09 02:53:46Z2026-09-09 02:53:46Z
/bot/mastodon-20.html1200×12026-09-09 02:53:44Z2026-09-09 02:53:44Z
/bot/mastodon-200.html1200×12026-09-09 02:53:42Z2026-09-09 02:53:42Z
/bot/mastodon-201.html1200×12026-09-09 02:53:40Z2026-09-09 02:53:40Z
/bot/mastodon-202.html1200×12026-09-09 02:53:39Z2026-09-09 02:53:39Z
/bot/mastodon-203.html1200×12026-09-09 02:53:37Z2026-09-09 02:53:37Z
/bot/mastodon-204.html1200×12026-09-09 02:53:35Z2026-09-09 02:53:35Z
/bot/mastodon-205.html1200×12026-09-09 02:53:34Z2026-09-09 02:53:34Z
/bot/mastodon-206.html1200×12026-09-09 02:53:32Z2026-09-09 02:53:32Z
/bot/mastodon-207.html1200×12026-09-09 02:53:30Z2026-09-09 02:53:30Z
/bot/mastodon-208.html1200×12026-09-09 02:53:28Z2026-09-09 02:53:28Z

682 further paths are in the JSON.

What it asked for that did not exist

Nothing. Every path it asked for existed at the time it asked.

What it got, and what it sent

Status codes
200×742
Accept headers
text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Bytes served
9168157
Attributed to a channel
none — it arrived at a plain path
Our instrument classed it
crawler×742 — that is our classifier's label from the user-agent, not the operator's, and it has been wrong before.

How to verify it is really them

reverse DNS

From the crawler record at /crawler/petalbot.html, which cites https://aspiegel.com/petalbot — one source for both pages.

Ask this page a question, with one GET

A question about this page, answered by a call you can make right now — no key, no account, no JSON-RPC, nothing to assemble. The query string is already filled in with this page's own subject.

curl -s 'https://www.pathwren.workers.dev/tools/classify-ua?ua=Mozilla%2F5.0%20%28Linux%3B%20Android%207.0%3B%29%20AppleWebKit%2F537.36%20%28HTML%2C%20like%20Gecko%29%20Mobile%20Safari%2F537.36%20%28compatible%3B%20PetalBot%3B%2Bhttps%3A%2F%2Fwebmaster.petalsearch.com%2Fsite%2Fpetalbot%29&s=client-dossiers'

Every parameter above is a value the endpoint reads, not an address it visits: nothing is fetched on your behalf. Called without any parameter, each endpoint returns its own specification instead of an error. All of them.

What it publishes about you afterwards

Not observed. We have not seen this client publish a grade, a listing or a record about this host anywhere, and we make no claim that it does or does not.

Its own documentation

It names https://webmaster.petalsearch.com/site/petalbot in its own user-agent. That is the operator's own claim about itself; we neither endorse nor verify what is on it.

This page as data

curl -s https://www.pathwren.workers.dev/bot/petalbot.json
curl -s https://www.pathwren.workers.dev/data/observed-clients.json   # every client, one request

JSON · markdown · all clients seen here · index as JSON · check a crawler yourself, no key

Method, and what this page will not say

Rows come from a server-side log written before anything is served, so clients that run no JavaScript are counted exactly like browsers. The window is the whole life of the log, 2026-09-08 22:41:30Z to 2026-09-09 02:55:28Z UTC, and it is stated on every number because a count without a window is not a fact. Addresses are stored as salted hashes and counted, never printed. Our own checks send X-Self: 1 and are excluded, together with every request the analyst flagged as one of our own agents reaching for a URL through a model provider's fetch tool (the numbers are on the index). Nothing here is a claim about intent: where this page does not know something it says not observed.