Moltsets
Authentication Type: API Key
Description: B2B people and company search with email discovery. Search people and companies, resolve LinkedIn profiles, and find verified business or personal emails by name or LinkedIn URL.
Authentication
To authenticate, you'll need a Moltsets API key:
- Log in to your Moltsets account
- Open Settings → API Keys and create a key (keys look like
ms_XXXXXXXXXXX) — copy it, as it may be shown only once - Provide it as the
apiKeyfield when connecting Moltsets in Cotera
Your key is sent to the Moltsets API as a bearer token on every request. Bring your own key — Cotera does not provide a shared Moltsets account.
Search
Search the Moltsets database for people and companies, and resolve LinkedIn profiles.
Search People
Search for people that match a free-text query, with optional country and seniority filters.
Operation Type: Query (Read)
Parameters:
- query
string(required): Free-text search for people (e.g., "VP of Marketing at fintech startups"). - country
string(nullable): Filter results to a country (e.g., "United States"). - seniority
string(nullable): Filter by seniority level (e.g., "c_suite", "vp", "director", "manager"). - limit
number(nullable): Maximum number of results to return per page. - offset
number(nullable): Number of results to skip, for pagination.
Returns:
- results
array: Matching people, each as the raw person record from Moltsets (name, title, company, location, etc.). - total
number: Total number of people matching the query. - status
string(nullable): Request status as reported by the API. - metadata
object(nullable): Request metadata (e.g., tokens charged, quota remaining).
Example Usage:
{
"query": "VP of Marketing fintech",
"country": "United States",
"seniority": "vp",
"limit": 10
}
Search Companies
Search for companies by keyword, with optional industry and employee-range filters.
Operation Type: Query (Read)
Parameters:
- query
string(required): Free-text search for companies (e.g., "B2B fintech startups"). - industry
string(nullable): Filter by industry (e.g., "Software"). - employee_range
string(nullable): Filter by employee-count range (e.g., "11-50", "1001-5000"). - limit
number(nullable): Maximum number of results to return per page. - offset
number(nullable): Number of results to skip, for pagination.
Returns:
- results
array: Matching companies, each as the raw company record from Moltsets (fields such aslogo,domain,revenue,employee_count,linkedin_company_id). - total
number: Total number of companies matching the query. - status
string(nullable): Request status. - metadata
object(nullable): Request metadata.
Example Usage:
{
"query": "B2B fintech",
"industry": "Software",
"employee_range": "11-50"
}
Search LinkedIn Profile
Find LinkedIn profile(s) for a person by name and optional company. Use count_only to check how many matches exist before fetching details.
Operation Type: Query (Read)
Parameters:
- name
string(required): Name of the person to look up. - company
string(nullable): Company to disambiguate the person. - count_only
boolean: When true, return only the number of matching profiles (no details). Defaults to false.
Returns:
- count
number(nullable): Number of matching LinkedIn profiles. - profiles
array: Matching profiles (empty whencount_onlyis true). - status
string(nullable): Request status. - metadata
object(nullable): Request metadata.
Example Usage:
{
"name": "Jane Doe",
"company": "Stripe",
"count_only": false
}
Business Lookups by Name
Resolve a business email or full business profile from a person's name and company.
Search Business Email By Name
Find a person's business email and LinkedIn URL from their name and company information.
Operation Type: Query (Read)
Parameters:
- name
string(nullable): Full name of the person. Provide either this, orfirst_nameandlast_name. - first_name
string(nullable): First name (use withlast_name). - last_name
string(nullable): Last name (use withfirst_name). - company
string(nullable): Company name. Provide either this orcompany_domain. - company_domain
string(nullable): Company domain (e.g., "acme.com").
Returns:
- email
string(nullable): The business email address found. - linkedinUrl
string(nullable): The person's LinkedIn URL, if returned. - status
string(nullable): Request status. - metadata
object(nullable): Request metadata.
Example Usage:
{
"first_name": "Jane",
"last_name": "Doe",
"company_domain": "acme.com"
}
Search Business Profile By Name
Find a full business profile (person details plus company firmographics) by name and company.
Operation Type: Query (Read)
Parameters:
- name
string(nullable): Full name of the person. Provide either this, orfirst_nameandlast_name. - first_name
string(nullable): First name (use withlast_name). - last_name
string(nullable): Last name (use withfirst_name). - company
string(nullable): Company name. Provide either this orcompany_domain. - company_domain
string(nullable): Company domain (e.g., "acme.com").
Returns:
- profile
object(nullable): The matched business profile — person details plus company firmographics. - status
string(nullable): Request status. - metadata
object(nullable): Request metadata.
Example Usage:
{
"name": "Jane Doe",
"company": "Acme"
}
Email by LinkedIn URL
Resolve a validated email directly from a LinkedIn profile URL. All four tools take a single linkedin_url.
LinkedIn to Best Email
Return the best available email for a LinkedIn profile (business preferred, falling back to personal).
Operation Type: Query (Read)
Parameters:
- linkedin_url
string(required): LinkedIn profile URL (e.g., "https://www.linkedin.com/in/janedoe").
Returns:
- email
string(nullable): The best email address found. - type
string(nullable): The type of email returned (e.g., "business"). - lastValidatedAt
string(nullable): ISO timestamp of when the email was last validated. - status
string(nullable): Request status. - metadata
object(nullable): Request metadata.
Example Usage:
{
"linkedin_url": "https://www.linkedin.com/in/janedoe"
}
LinkedIn to Business Email
Return the business (work) email for a LinkedIn profile.
Operation Type: Query (Read)
Parameters:
- linkedin_url
string(required): LinkedIn profile URL.
Returns:
- email
string(nullable): The business email address found. - status
string(nullable): Request status. - metadata
object(nullable): Request metadata.
Example Usage:
{
"linkedin_url": "https://www.linkedin.com/in/janedoe"
}
LinkedIn to Personal Email
Return the personal email for a LinkedIn profile.
Operation Type: Query (Read)
Parameters:
- linkedin_url
string(required): LinkedIn profile URL.
Returns:
- email
string(nullable): The personal email address found. - lastValidatedAt
string(nullable): ISO timestamp of when the email was last validated. - status
string(nullable): Request status. - metadata
object(nullable): Request metadata.
Example Usage:
{
"linkedin_url": "https://www.linkedin.com/in/janedoe"
}
LinkedIn to Best Personal Email
Return the best available personal email for a LinkedIn profile.
Operation Type: Query (Read)
Parameters:
- linkedin_url
string(required): LinkedIn profile URL.
Returns:
- email
string(nullable): The best personal email address found. - lastValidatedAt
string(nullable): ISO timestamp of when the email was last validated. - status
string(nullable): Request status. - metadata
object(nullable): Request metadata.
Example Usage:
{
"linkedin_url": "https://www.linkedin.com/in/janedoe"
}
Common Use Cases
Prospecting:
- Search people by title, seniority, and country to build a targeted lead list
- Search companies by industry and size to find target accounts
- Resolve a name + company to a LinkedIn profile, then to a verified email
Enrichment:
- Append business emails to a CRM export using names and company domains
- Pull full business profiles (role + firmographics) for inbound signups
- Find personal emails for candidates or hard-to-reach contacts from LinkedIn URLs
Outreach Workflows:
- Convert a list of LinkedIn URLs into validated best emails before a sequence
- Prefer business email for B2B outreach, falling back to personal when needed
- Use
last_validated_atto skip or re-verify stale email addresses