Get started
Sign in, connect a site, see your first classified request.
Four steps. The last one is the point: your own traffic, classified, in the log.
1. Sign in
Go to dashboard.d3.com. Enter
your work email, then the six-digit code we send you. That is the whole
sign-in. D3 Edge runs its infrastructure on the d3.com domain.
D3 Edge is in early access: if your email isn't recognized, request access and we'll set your org up.
2. Create an API key
In the dashboard, open API keys and create a key. Going the no-code route? Skip this step: that install carries no key, because the domain itself says who you are.
Shown once
Store the key in your platform's secret store immediately. Both SDK guides use the name
POLICY_ADAPTER_KEY. Never put it in code or client-side config.
- You can identify it later. The dashboard shows each key's first 12 and last 4 characters, so you can match a key in a config to a key in the list without ever seeing the secret again.
- It's scoped to your organization. Every log row is tagged with your organization and every read filters on it. There is no cross-tenant visibility.
- Revocation is fast. Revoke a key in the dashboard and it stops being accepted everywhere within about two minutes; the window is cache propagation.
3. Connect your site
Pick one. The first needs no code; the others put our code in your own request path.
- Point your DNS at us: change two nameservers at your registrar and enforcement runs in front of your site. No package, no deploy, no key. But we answer DNS for that domain while it's in place, so read the trade-offs first.
- Vercel:
npm install, onemiddleware.ts, two environment variables. Self-serve, about five minutes. If your project already has amiddleware.ts, read this first. - Cloudflare: a thin worker in your own
Cloudflare account, in front of your origin.
npm installand a small wrangler config, self-serve — or we set it up with you.
4. Watch the first request land
Deploy (or, on the DNS route, wait for your nameservers to propagate), then
hit your site. A plain curl https://your-site.example/ is
enough. Open the dashboard log and you'll see the request within moments,
looking something like:
GET / unverified curl/8.9 just nowunverified is correct for your curl: it carries no signature and
matches no crawler fingerprint. That's it. Every request to your site is
now classified, and the next 24 hours will show you what else has been
visiting.
Stuck at any step, or on another platform? Talk to us. In early access, your setup friction is our bug report.