The benefits of using a custom subdomain
- Significant increase in accuracy in browsers with strict privacy features such as Safari or Firefox.
- Ad blockers can’t block the JavaScript agent. Most ad blockers stop requests sent to an external URL, but allow requests sent to an internal URL like a subdomain.
- Cookies are recognized as “first-party.” This means they can be saved in the visitor’s browser and used to reliably identify visitors when third-party cookies are blocked completely (for example, Safari blocks all third-party cookies).
- Fingerprint becomes harder to detect. Requests made directly to the Fingerprint domain are easy to detect. Routing through a subdomain on your own domain makes Fingerprint harder for automated blockers and fraudsters to detect.
Limitations of the subdomain integration
- Since Safari 16.4, cookie lifetime in Safari is reduced to 7 days when using the custom subdomain setup. To keep cookies lasting up to one year in Safari, use a cloud proxy integration such as the Cloudflare proxy integration.
1. Register your custom subdomain
To use a custom subdomain, the connection between your site and Fingerprint must be secure, so Fingerprint registers every subdomain with an SSL certificate. Each workspace can have up to 50 unique subdomains. During your free trial, you can use up to 5. If you need more than 50, contact the support team. To start, go to Settings > Subdomains and select New subdomain.
The Subdomains page in the Fingerprint dashboard

Adding a new subdomain in the Fingerprint dashboard
- Use the subdomain only for sending requests to Fingerprint.
- Match the subdomain’s primary domain to the request origin. For example, use
metrics.yourwebsite.comwhen you run Fingerprint onyourwebsite.com. - Avoid the words
fingerprintandfpin the subdomain name. Names likefingerprint.yourwebsite.comorfp.yourwebsite.comare easier for ad blockers to detect and block. Use a neutral name likemetrics.yourwebsite.cominstead.
2. Add DNS records
After you add your domain, the dashboard shows every DNS record you need in one place:- One CNAME record verifies that you own the domain.
- Two A records route identification traffic to Fingerprint.
You can add the two A records right away. They start routing traffic once your certificate is issued.

Showing the DNS records that need to be set
Subdomain statuses
Each subdomain shows one of these statuses:- Pending: Fingerprint is validating your DNS records and issuing the SSL certificate. This can take up to 24 hours. To confirm a record was added correctly, run
dig HOST +shortin your terminal, using the host value of the record. If the record is set up correctly, its value is returned. - Active: Your records are validated and the certificate is issued. Your subdomain is ready to use.
- Timed out: DNS validation timed out because the required records weren’t added in time. Add the DNS records, then restart verification.
- Failed: The records were found, but the certificate can’t be issued. This usually happens when a conflicting CAA record blocks Fingerprint’s SSL provider (Cloudflare) from issuing certificates. Add the CAA record shown in the dashboard, wait for it to propagate, then delete the failed subdomain and add it again.
Using Cloudflare as your DNS provider?
- Disable DNS proxying for all records associated with your subdomain.
- Cloudflare sometimes adds CAA records that aren’t visible in the DNS panel. To see them, run
dig caa yourwebsite.com, replacingyourwebsite.comwith your domain. - Cloudflare’s CNAME flattening can prevent CNAME validation from working. Disable it if you have validation issues with Cloudflare DNS.
3. Configure the JavaScript agent
Once your subdomain is active, update the JavaScript agentendpoints property to point to your subdomain.
Notes:
- The endpoint subdomain should match the domain of your website.
- If you use a Content Security Policy on your website, add the custom subdomain to the
connect-srcdirective of your policy. See the CSP guide for more details. - If you issued a wildcard SSL certificate, the URL shows an asterisk, for example
*.yourwebsite.com. Replace the asterisk with the subdomain you plan to use, for examplemetrics.yourwebsite.com.
Manage subdomains with the Management API
Instead of the dashboard, you can manage the full subdomain lifecycle programmatically with the Management API. This is useful when you automate your workspace setup, provision a subdomain per customer, or manage subdomains from a CI/CD pipeline. A subdomain works the same way whether you create it in the dashboard or through the API, and subdomains appear in both places regardless of how you created them. To use these endpoints, you need a Management API key. All requests use the base URLhttps://management-api.fpjs.io and follow the standard Management API authentication and versioning conventions.
Available endpoints
- Register a subdomain (
POST /subdomains): Registers the subdomain and returns every DNS record you need, the verificationCNAMEand the routingArecords, in a single response. - List subdomains (
GET /subdomains): Lists every subdomain in the workspace and its status. Filter bystatusto find, for example, subdomains still in thependingstate. - Get subdomain (
GET /subdomains/{id}): Retrieves a single subdomain with its DNS records and current status. - Verify subdomain (
POST /subdomains/{id}/verify): Triggers an on-demand DNS check instead of waiting for the next background check. Use this right after you add your DNS records. - Delete subdomain (
DELETE /subdomains/{id}): Deletes the subdomain and revokes its SSL certificate.
Typical flow
1
Register the subdomain
Send a
POST /subdomains request with your subdomain, then read the DNS records from the response. All records, the verification CNAME and both routing A records, are returned at once, so you can add them in a single pass.2
Add the DNS records
Add the returned records to your DNS provider. You can add the
A records right away; they start routing traffic once your certificate is issued.3
Wait for the subdomain to become active
Fingerprint validates your records automatically. To check immediately, call
POST /subdomains/{id}/verify. Poll GET /subdomains/{id} until the status is active, or pass a webhook_url when you register the subdomain to receive a signed callback on every status change instead of polling.4
Configure the JavaScript agent
Once the subdomain is
active, configure the JavaScript agent to point at it.pending, active, timed_out, and failed. A timed_out or failed subdomain is safe to delete and recreate.
The same limits apply as in the dashboard: each workspace can have up to 50 subdomains, or 5 during a free trial.
Frequently asked questions
I completed the setup. How can I add more subdomains?
To add more subdomains, add them individually at any time:- Go to Settings > Subdomains and select New subdomain.
- Repeat the setup steps for each new subdomain.