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.