---
title: "Search Business Profile by Name"
method: POST
path: "/search_business_profile_by_name"
tags: ["Search"]
---

# Search Business Profile by Name

`POST /search_business_profile_by_name`

## Request

- Base URL: `https://api.moltsets.com/api/v1/tools`
- URL: `https://api.moltsets.com/api/v1/tools/search_business_profile_by_name`
- Auth: HTTP bearer

The Business Profile Finder API finds anyone's full business profile from just their name and company domain.

It runs a LinkedIn profile search and a firmographic lookup in a single call, and returns the person's full business profile: name, job title, seniority, LinkedIn summary, skills, location, business email, hashed business emails, and personal emails, plus company firmographics such as industry, NAICS and SIC codes, headcount, and revenue. Pass `include_experience: true` to add the person's full job history. Pass a full name or separate `first_name` and `last_name` fields, and provide the company as a domain, for example `acme.com`. URLs are normalised automatically, and tokens are only charged when a match is found.

**Use this endpoint to:**
- Build a complete picture of a contact and their employer in one call
- Qualify leads with company context before outreach
- Enrich CRM records with job title and firmographic data

**Fair Use Policy:**
This API is subject to our <a href="https://moltsets.com/fair-use-policy-search/" target="_blank" rel="noopener">Fair Use Policy for Search</a>.

**Response fields:**
- `summary` is the person's LinkedIn "about" text. `position_summary` describes their current role.
- `skills` and `interests` are arrays of strings. `connection_count` is the person's LinkedIn connection count, capped at `500`. Like LinkedIn's own "500+", a value of `500` means 500 or more.
- `business_email_md5s` holds the MD5 of every business email MoltSets holds for the person. `business_email_sha256s` holds the SHA256 of the same emails. Both can be present even when `business_email` is empty. `business_email` stays the single best validated pick.
- `company` adds `description`, `linkedin_industry` (LinkedIn's own industry label, next to `industry`), `naics_codes` and `sic_codes` (arrays of `{code, title}`), and `revenue` (an exact figure, next to `revenue_range`).
- `experience` is returned only when you pass `include_experience: true`. It is an array of roles, each with `title`, `company`, `company_linkedin_url`, `start_date`, `end_date`, `is_current`, `seniority`, `function`, and `description`. More than one role can be current. A current role has no `end_date`. Any field without data is left out of a role.
- In a found profile, a field with no data can be left out of `results` (or `company`) rather than returned as `null` or `[]`. This applies to fields such as `skills`, `interests`, `current_role_start_date`, `sic_codes`, and `revenue`. Check for a field before reading it.

**Personal email availability:**
Personal email fields (`personal_email`, `personal_emails`, and their `_validated_at` and `_risk_score` companions) are returned only when your plan includes personal email. Call `get_account` and read `personal_email_available`. On other plans these fields are withheld and `metadata.personal_email_restricted` is `true`.

**Hashed email availability:**
`business_email_md5s` is returned on all plans. `business_email_sha256s` is not available on the \$397 / month and \$997 / month plans. On those plans the field is stripped from `results` and `metadata.identity_hashes_restricted` is `true`. Read a missing `business_email_sha256s` as a plan boundary, not as absent data.

**Outcomes:**
A lookup that finds nothing is not an error. It returns HTTP `200` with `status: "not_found"`, empty or null `results`, and the usual `metadata` — and costs no tokens, though it still counts as one request against your Fair Use requests limit. Read `status`, not the HTTP code, to tell a hit from a miss. The API's only `404` is an unknown or retired tool name.

## Headers

- `User-Agent` string, required

## Request body

- object
  - `name` string: Full name (e.g. 'John Smith') — parsed into first and last name automatically.
  - `first_name` string: First name (used if `name` is not provided).
  - `last_name` string: Last name (used if `name` is not provided).
  - `company` string: Company domain (e.g. 'acme.com') or URL (e.g. 'https://acme.com') — normalized to domain.
  - `company_domain` string: Alias for `company` — company domain or URL.
  - `include_experience` boolean: Set to `true` to add `experience`, the person's full job history. Off by default because job history is the bulk of a profile. The current role is always returned in `title`, `seniority`, `functional_area`, and `current_role_start_date`.

## Response `200`

Success

## Other responses

- `401`: Unauthorized
- `402`: Payment Required — insufficient tokens
- `403`: Forbidden — missing `User-Agent` header, tool not on the plan, or account inactive
- `422`: Invalid Input — malformed body, or a parameter is missing, malformed, or outside its allowed values
- `429`: Too Many Requests — rate limit or Fair Use window exhausted
- `500`: Internal Server Error — the call could not complete. Usually the endpoint is temporarily unavailable, but an oversized request can also cause it. Retry with a smaller request first; the MoltSets team is alerted automatically.

---

[API](https://skmtc.dev/moltsets/apis/moltsets-api.md) - [All operations](https://skmtc.dev/moltsets/apis/moltsets-api/llms.txt) - [OpenAPI document](https://skmtc.dev/moltsets/apis/moltsets-api/revisions/b116df68bd90?raw)
