DNAbyD3Docs

Get started

Sign up, connect a site, see your first request.

Sign up, connect your site, and confirm your traffic appears in the log.

1. Sign up

  1. Go to dashboard.d3.com.
  2. Enter your email, click Email me a sign-in code, and enter the six-digit code we send you.
  3. Create your organization, or accept an invite to a teammate's.

2. Create an API key

Skip this step if you point your nameservers at DNA. That install needs no key for traffic; the domain identifies you. To change its records from a script, you need a key with DNS access: see the API.

  1. In the dashboard, open API keys. Owners and admins can create keys.
  2. Enter a key name, such as vercel-production, choose when it expires, and click Create key.
  3. Copy the key and store it in your platform's secret store.
  • The key list shows each key's first 12 and last 4 characters, so you can match a key in a config to one in the list.
  • A key belongs to your organization, and only your organization sees the traffic it logs.
  • A revoked key stops working everywhere within about two minutes.

3. Connect your site

After you create your organization, the dashboard asks for your site's address, looks it up, and recommends one of these installs.

InstallRunsSetup
Point your nameservers at DNAIn front of your site; no package, deploy, or keyChange two nameservers at your registrar
Add the DNA middleware: VercelMiddleware in your request pathnpm install, one middleware.ts, two environment variables
Add the DNA middleware: CloudflareA small worker in your Cloudflare account, before your originOne line in your Worker, or a deploy button
Add the DNA middleware: nginxA Lua script in your nginxOne script and a config line per location
  • Nameservers: DNA runs the domain's DNS, editable in the dashboard or through the API.
  • Vercel: already have a middleware.ts? See Existing middleware.
  • Cloudflare: do it yourself, or book a setup and we do it with you.

4. Watch the first request land

  1. Deploy. On the nameserver install, wait for the domain to show Connected instead.

  2. Send a request to your site:

    curl https://your-site.example/
  3. In the dashboard, open Requests. The request appears within moments, labelled No name.

No name is expected for curl: it doesn't say who it is. Every request to your site is now checked; give it a day to see which agents visit.

Get help

Stuck, or on another platform? Talk to us.

On this page