Dnb APIdunsnumberlookup.dnb.com ↗
Search Dun & Bradstreet's global company database by name or registration number. Returns DUNS records with operating status, address, and location type.
What is the Dnb API?
The Dun & Bradstreet D-U-N-S Number Lookup API exposes 2 endpoints that search D&B's global company database by company name or registration number. The search_by_company_name endpoint accepts up to five address-based filters alongside the required country code, returning up to 10 matching company records per query. Each record includes fields such as company name, location type, operating status, registration number, and address.
curl -X GET 'https://api.parse.bot/scraper/394ce9b4-a9c9-4929-bb92-ba877499d43e/search_by_company_name?company_name=Microsoft&country_code=GB' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace dunsnumberlookup-dnb-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Dun & Bradstreet DUNS Number Lookup — search, then drill down."""
from parse_apis.dunsnumberlookup_dnb_com_api import DunsLookup, InputFormatInvalid
client = DunsLookup()
# Search for companies by name in the United Kingdom.
for company in client.companies.search(company_name="Microsoft", country_code="GB", limit=5):
print(company.company_name, "|", company.location_type, "|", company.operating_status)
# Take the first hit and use its registration number for an exact lookup.
hit = client.companies.search(company_name="Microsoft", country_code="GB", limit=1).first()
if hit is not None and hit.registration_number:
# Exact lookup by the registration number discovered above.
try:
match = client.companies.lookup(
registration_number=hit.registration_number,
country_code=hit.country_code,
limit=1,
).first()
except InputFormatInvalid:
print("Invalid registration number or country code")
match = None
if match is not None:
print(match.company_name, "|", match.address, match.city, match.postal_code)
print("exercised: companies.search / companies.lookup")
Search for companies by name within a specific country. Returns up to 10 matching company records. The search is performed against the Dun & Bradstreet global database. Optional address-related filters (city, state, postal code, address, telephone) narrow results. Each result includes location type (e.g. Parent/Headquarters, Branch/Division, Subsidiary, Single Location) and operating status (Active or Out of business).
| Param | Type | Description |
|---|---|---|
| city | string | City name to filter results. |
| state | string | State, province, or region to filter results. |
| address | string | Street address to filter results. |
| telephone | string | Telephone number to filter results. |
| postal_code | string | Postal or ZIP code to filter results. |
| company_namerequired | string | Company name to search for. |
| country_coderequired | string | ISO alpha-2 country code (e.g. 'GB' for United Kingdom, 'DE' for Germany, 'CA' for Canada, 'AU' for Australia). The service supports a specific set of countries. |
{
"type": "object",
"fields": {
"companies": "array of company objects, each containing company_name, location_type, operating_status, country_code, registration_number, address, city, postal_code, state, country, and standalone flag",
"total_count": "integer — number of matching company records returned",
"contains_delisted_results": "boolean — whether results include delisted companies"
},
"sample": {
"data": {
"companies": [
{
"city": "READING",
"state": "",
"address": "MICROSOFT CAMPUS THAMES VALLEY PARK",
"country": "United Kingdom",
"standalone": false,
"postal_code": "RG6 1WG",
"company_name": "MICROSOFT LIMITED",
"country_code": "GB",
"location_type": "Parent/Headquarters",
"operating_status": "Active",
"registration_number": "01624297"
}
],
"total_count": 10,
"contains_delisted_results": false
},
"status": "success"
}
}About the Dnb API
What the API returns
Both endpoints return an array of company objects under the companies field, each carrying company_name, location_type, operating_status, country_code, registration_number, and address details. The response also includes total_count (how many records matched) and contains_delisted_results (a boolean indicating whether any returned companies have been delisted from active registries).
Searching by company name
The search_by_company_name endpoint requires company_name and country_code (ISO alpha-2, e.g. GB, DE, CA). Optional parameters — city, state, postal_code, address, and telephone — let you narrow results when a name is common across multiple entities. The endpoint returns up to 10 matches, so combining name with at least one address filter is advisable for high-frequency names.
Searching by registration number
The search_by_registration_number endpoint requires registration_number and country_code. Because registration numbers are unique within a jurisdiction, this endpoint typically returns a single exact match, making it the preferred route when you already hold a Companies House number (UK), Handelsregisternummer (DE), or equivalent identifier. The response shape is identical to the name-search endpoint.
Coverage and data scope
Both endpoints query the D&B global database, which covers companies across multiple countries. Country coverage depends on D&B's own registry integrations per jurisdiction. The operating_status field reflects D&B's classification of whether a business is active, inactive, or otherwise flagged, and location_type distinguishes between headquarters, branches, and single-location entities.
The Dnb API is a managed, monitored endpoint for dunsnumberlookup.dnb.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when dunsnumberlookup.dnb.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official dunsnumberlookup.dnb.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Verify a supplier's operating status and registered address before onboarding them as a vendor
- Resolve a company's official registration number from a known trade name and country code
- Identify whether a business entity is a headquarter or branch location using the location_type field
- Detect delisted or inactive companies via the contains_delisted_results and operating_status fields
- Cross-reference a Companies House number against D&B records to confirm entity identity
- Build a KYC pre-screening step that confirms company existence and active status by country
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.