botseed API
There is one endpoint. It returns the most recently generated random number. This is, by design, the entire API.
Endpoint
Returns the latest cached value from the botseed processor as JSON. No authentication required. No parameters. No pagination.
Returns 503 if the processor hasn't generated a value yet
(usually only during the first few seconds after startup).
Example request
curl https://botseed.net/api/v1/current
Example response
{
"random_int": 7391826384729, // the number
"seed_int": "11294857293847293847...", // SHA-256 as int (big)
"combined_hash": "a3f8b2e1...", // SHA-256 hex (64 chars)
"system_secret": "deadbeef...", // secrets.token_bytes(32) hex
"log_json": {
"ip": "66.249.66.xxx", // last octet censored
"host": "acpwb.com",
"path": "/wiki/corporate-governance/",
"method": "GET",
"status": 200,
"response_ms": 47,
"response_bytes": 18432,
"user_agent": "Mozilla/5.0 (compatible; GPTBot/1.0...)",
"bot_type": "OpenAI GPTBot",
"bot_group": "AI Crawlers",
"timestamp": "2026-04-08T20:00:00.123456+00:00"
},
"requests_per_second": 47, // acpwb.com traffic rate
"generated_at": "2026-04-08T20:00:00.124000+00:00"
}
How it works
Every HTTP request to acpwb.com is published
to a Redis pub/sub channel. The botseed processor subscribes to that channel,
mixes each request's JSON with 32 bytes of hardware entropy
(secrets.token_bytes(32)), hashes the result with SHA-256,
seeds a Python random.Random instance with the hash interpreted
as a big-endian integer, calls .random(), and strips the
leading 0. to produce the display integer.
Output is rate-limited to 20 events per second. During traffic bursts, older events are dropped and only the freshest are published. During quiet periods the stream simply pauses — no synthetic events are added.
/api/v1/current is always the last published event,
cached in Redis. It does not change between requests unless new traffic arrives.
If you need a stream of values, connect to wss://botseed.net/ws/.
Response fields
random_int — the random number. Derived from
random.random() with the "0." prefix stripped and cast to int.
seed_int — the integer seed used (SHA-256 digest as big-endian int). Stringified because it exceeds JSON's safe integer range.
combined_hash — SHA-256 of (hardware_entropy + request_json_bytes), hex-encoded.
system_secret — the 32-byte hardware entropy used for this value, hex-encoded. Changes every event.
log_json — the acpwb.com request that seeded this value. The source IP's last octet is always censored.
requests_per_second — acpwb.com traffic rate at time of generation (events in the last 1 second).
generated_at — ISO 8601 UTC timestamp.