Trusted agents, without registration.

A global allowlist of 20,850 high-value organizations. Any agent operating from one of these domains can prove its identity cryptographically and be treated as legitimate — without registering individually with every service it talks to.

20,850Trusted Domains
0msServer Lookup
Ed25519Signed Requests
Get your API token → Read the docs

Try it

The trust bootstrap problem

AI agents increasingly act on behalf of real organizations — reading documentation, querying APIs, filing support tickets, completing tasks end-to-end. But there's no universal way for a server to know whether an incoming request is from a legitimate company's agent or from someone trying to impersonate one.

Today's answers are all flawed: User-Agent strings are trivially spoofed. IP allowlists are fragile and don't scale. Per-service API key issuance is slow and creates operational drag.

whitelist.dev proposes a simpler model. Combine two ideas:

  1. Cryptographic identity. Agents sign requests with Ed25519 using Web Bot Auth, publishing their public key at a well-known URL on their operator's domain.
  2. A curated allowlist of likely-legitimate domains. If an agent signs from openai.com or stripe.com or any of 20,850 others, servers can grant trust immediately without a per-service registration dance.

The result: any server can answer "should I trust this agent?" with a single lookup, and agent operators only need to manage one identity — their domain.

For agent operators

If you run an agent on a company domain, you can become verifiable in an afternoon. Follow the guide:

→ How to Implement Web Bot Auth (markdown, also on GitHub)

TL;DR: generate one Ed25519 key pair, host a JWKS directory on your domain, and attach three headers to every request.

For service providers

If you operate a service receiving agent traffic, you can use whitelist.dev to make trust decisions:

Quickstart

Simple lookup (unauthenticated)

# 1 request per minute limit
curl https://whitelist.dev/lookup?domain=stripe.com

With API token (1000 req / 10s)

curl https://whitelist.dev/lookup?domain=stripe.com \
  -H "Authorization: Bearer wl_your_token_here"

Response

{
  "domain": "stripe.com",
  "trusted": true,
  "company": "Stripe",
  "types": ["email", "website"]
}

Rate Limits

Every request returns X-RateLimit-* headers. Upgrade tiers by authenticating:

Tier
Limit
Auth
Unauthenticated
1 / 60s
by IP
Bot Signature
10 / 60s
Ed25519 keyid
Starter — $29/mo
1,000 / 10s
API token
Scale — $199/mo
10,000 / 10s
API token

→ Sign up for an API token

Endpoints

Debug your signing implementation

If you're implementing Web Bot Auth and your signatures aren't verifying, use /inspect. It's free, doesn't require auth, and returns the exact signature base bytes the server reconstructed, all parsed parameters, the key it matched, and specific hints when things fail:

curl https://whitelist.dev/inspect \
  -H 'Signature-Agent: "https://your-domain.com"' \
  -H 'Signature-Input: sig1=(...)' \
  -H 'Signature: sig1=:...:'

Rate limited to 10 requests per minute per IP. Great for local development — compare the signatureBase field in the response with what your code is signing to spot mismatches.

Specs & implementations

Data sources

Every domain is MX-verified (actual mail server exists). Sources include Forbes Global 2000 parent companies and subsidiaries, Y Combinator companies (all batches), and 170+ top VC firm portfolio pages. Free email providers, parked domains, and disposable email services are excluded.