Skip to content

Custom Domains ​

Send data through your own domain instead of enrich.sh. Your customers see data.yourcompany.com — no third-party branding.

How It Works ​

  1. You register a domain in the dashboard (e.g. data.acme.com)
  2. You create a CNAME record pointing to connect.enrich.sh
  3. Cloudflare provisions an SSL certificate automatically
  4. All /ingest requests on that hostname are validated against your account

Every ingest request from a custom domain is verified — if the hostname isn't registered for your account, the request is rejected with 403.


Setup ​

1. Add the Domain ​

Dashboard: Settings → Custom Domains → Add Domain

API:

bash
curl -X POST https://enrich.sh/settings/domains \
  -H "Authorization: Bearer sk_live_your_key" \
  -H "Content-Type: application/json" \
  -d '{ "domain": "data.acme.com" }'

2. Configure DNS ​

Add a CNAME record at your DNS provider:

TypeNameTarget
CNAMEdataconnect.enrich.sh

TIP

If your DNS provider proxies records (e.g. Cloudflare orange cloud), disable proxying so the CNAME resolves directly to connect.enrich.sh.

3. Wait for SSL ​

The domain status goes through:

StatusDescription
pendingDNS not yet verified or SSL provisioning
activeSSL certificate issued, ready to use
failedDNS misconfigured — check your CNAME record

SSL provisioning typically completes within a few minutes. The dashboard shows the current status and will refresh automatically.

4. Send Data ​

Once active, use the custom domain anywhere you'd use enrich.sh:

bash
curl -X POST https://data.acme.com/ingest \
  -H "Authorization: Bearer sk_live_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "stream_id": "events",
    "data": [{ "event": "click", "url": "/pricing" }]
  }'

Or in the SDK:

javascript
import Enrich from 'enrich.sh';

const enrich = new Enrich({
  apiKey: 'sk_live_your_key',
  endpoint: 'https://data.acme.com'
});

Managing Domains ​

List Domains ​

bash
curl https://enrich.sh/settings/domains \
  -H "Authorization: Bearer sk_live_your_key"

Response:

json
{
  "domains": [
    {
      "domain": "data.acme.com",
      "status": "active",
      "created_at": "2026-02-15T10:00:00.000Z"
    }
  ],
  "max_domains": 3,
  "canUseCustomDomain": true
}

Remove a Domain ​

bash
curl -X DELETE https://enrich.sh/settings/domains \
  -H "Authorization: Bearer sk_live_your_key" \
  -H "Content-Type: application/json" \
  -d '{ "domain": "data.acme.com" }'

Tier Limits ​

TierCustom Domains
Free / Trial❌ Not available
Starter1
Pro3
Scale10
EnterpriseUnlimited

INFO

If you need more custom domains, upgrade your plan at Dashboard → Settings → Billing.


Troubleshooting ​

IssueSolution
Domain stuck on pendingVerify the CNAME record points to connect.enrich.sh
403 Hostname not registeredThe domain isn't added to your account — add it in Settings
SSL not provisioningDisable DNS proxy (e.g. Cloudflare orange cloud) so the CNAME resolves directly
Domain shows failedDNS is misconfigured — remove and re-add the domain after fixing DNS

Serverless data ingestion for developers.