<!-- canonical: https://opsblu.com/docs/recipes/enrich-domain-list/ -->
# Enrich a domain list (bring your own list)

Source: https://opsblu.com/docs/recipes/enrich-domain-list/

**Goal.** You already have a list of websites. Attach platform, Core Web Vitals, SEO basics, analytics, ad pixels and tracking status to each one.

**For:** SEO agencies and SaaS teams with an existing prospect list (https://opsblu.com/for/seo-agencies)

**MCP tools used:** `enrich_domain`, `get_business`

**Cost.** enrich_domain / a report card per domain is free today. Opening the matched business record (contacts) is 3 credits ($0.03), or 10 if hot. 1,000 domains with contacts ≈ $30–$40.

## REST walkthrough

### 1. Score each domain with a report card (free)

```bash
while read domain; do
  id=$(curl -s -X POST -H "Content-Type: application/json" -d "{\"url\":\"https://$domain\"}" https://opsblu.com/v1/report-card | jq -r .id)
  curl -s https://opsblu.com/v1/report-card/$id | jq -c '{domain, platform, cwv: .cwv_mobile.pass, tracking: .tracking_health.score, ads: .marketing.ads_platforms}'
done < domains.txt
```

### 2. Find the matching business record when you need contacts

Search by name (q=) with city to find the record, then open it for phone and email.

```bash
curl -H "Authorization: Bearer ob_live_YOUR_KEY" \
  "https://opsblu.com/v1/businesses?q=alder%20street%20dental&city=portland&state=oregon&limit=3"
curl -H "Authorization: Bearer ob_live_YOUR_KEY" https://opsblu.com/v1/businesses/ob_por_den_0007
```

## Agent prompt

Paste into Claude, ChatGPT or Cursor with the OpsBlu MCP server connected (`https://opsblu.com/mcp`).

```text
I will paste a list of 40 business websites. For each, use OpsBlu enrich_domain to get platform, mobile Core Web Vitals pass/fail, analytics and ad pixels, and tracking health score. Return a table sorted by tracking health ascending. Do not open any business records.
```


## Gotchas

- A batch endpoint (POST /v1/enrich with a list of domains, direct lookup by domain) is a known backend gap; today the loop above is the way.
- Report cards run at request time for domains we have not seen; allow a few seconds per new domain.
- Domains are normalized: protocol and www. are stripped.

More recipes: https://opsblu.com/docs/recipes/ · API reference: https://opsblu.com/docs/api · MCP setup: https://opsblu.com/docs/mcp · Pricing: https://opsblu.com/pricing
