---
canonical_url: "https://docs.composio.dev/toolkits/moltsets"
markdown_url: "https://docs.composio.dev/toolkits/moltsets.md"
product: "platform"
version: null
last_updated: null
---

# MoltSets

MoltSets provides people and company search, profile enrichment, email and mobile discovery, advertising identity resolution, and account usage data.

- **Category:** sales & crm
- **Auth:** API_KEY
- **Composio-managed OAuth available?** N/A
- **Tools:** 20
- **Triggers:** 0
- **Slug:** `MOLTSETS`
- **Version:** 00000000_00

## Tools

### Enrich LinkedIn Profile

**Slug:** `MOLTSETS_ENRICH_LINKEDIN_PROFILE`

Resolve a LinkedIn profile URL into a sparse full person and company profile, optionally including experience. A found result is billable against Enrichment Fair Use; found records consume tokens, misses do not, and every call counts as a request. Results can contain sensitive personal contact data and identity hashes; personal-email or SHA-256 fields may be omitted by plan restrictions while the lookup still succeeds. A status of not_found is a successful lookup miss.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `linkedin_url` | string | Yes | LinkedIn profile URL to enrich. |
| `include_experience` | boolean | No | Include employment history when available. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Find Best Email by LinkedIn

**Slug:** `MOLTSETS_FIND_BEST_EMAIL_BY_LINKEDIN`

Find the best validated email for one LinkedIn profile or a batch of up to 100, preferring business email and falling back to sensitive personal email. Each item counts against Enrichment Fair Use; found records consume tokens and misses do not. HTTP 200 may represent not_found or a partial batch, so retry only items omitted from a partial response.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `linkedin_url` | string | No | One LinkedIn profile URL or slug. Provide this or linkedin_urls, but not both. |
| `linkedin_urls` | array | No | Batch of 1 to 100 LinkedIn profile URLs or slugs. Provide this or linkedin_url, but not both. Each URL counts as a separate provider request. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Find Best US Personal Email by LinkedIn

**Slug:** `MOLTSETS_FIND_BEST_US_PERSONAL_EMAIL_BY_LINKEDIN`

Find the highest-confidence validated sensitive personal email for one US LinkedIn profile or a batch of up to 100. Use this instead of the standard US personal-email selector when provider-ranked highest-confidence selection is required. This billable endpoint is capability-gated: first call GET_ACCOUNT and require personal_email_available=true, otherwise MoltSets returns 403 plan_restricted. Each item counts against Enrichment Fair Use; found records consume tokens and misses do not. Non-US profiles return HTTP 200 not_found. HTTP 200 may also contain a partial batch, so retry only omitted items.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `linkedin_url` | string | No | One US LinkedIn profile URL or slug. Provide this or linkedin_urls, but not both. |
| `linkedin_urls` | array | No | Batch of 1 to 100 US LinkedIn profile URLs or slugs. Provide this or linkedin_url, but not both. Each URL counts as a separate provider request. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Find Business Email by LinkedIn

**Slug:** `MOLTSETS_FIND_BUSINESS_EMAIL_BY_LINKEDIN`

Find a validated corporate email, without personal-email fallback, for one LinkedIn profile or a batch of up to 100. Each item counts against Enrichment Fair Use; found records consume tokens and misses do not. risk_score describes deliverability, not identity confidence. HTTP 200 may represent not_found or a partial batch, so retry only items omitted from a partial response.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `linkedin_url` | string | No | One LinkedIn profile URL or slug. Provide this or linkedin_urls, but not both. |
| `linkedin_urls` | array | No | Batch of 1 to 100 LinkedIn profile URLs or slugs. Provide this or linkedin_url, but not both. Each URL counts as a separate provider request. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Find Business Email by Name

**Slug:** `MOLTSETS_FIND_BUSINESS_EMAIL_BY_NAME`

Find a validated business email and matched LinkedIn URL from a person's name and company/domain. This is billed against Search Fair Use only when an email is found; every call still counts as a request. risk_score describes deliverability, not identity confidence, and a miss is HTTP 200 status=not_found.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Person's full name; use this or both first_name and last_name. |
| `company` | string | No | Company domain or URL, normalized by MoltSets to a domain; do not combine with company_domain. Company names are not supported. |
| `last_name` | string | No | Person's last name; requires first_name when name is omitted. |
| `first_name` | string | No | Person's first name; requires last_name when name is omitted. |
| `company_domain` | string | No | Alias for company; provide a company domain or URL and do not combine with company. Company names are not supported. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Find Business Profile by Name

**Slug:** `MOLTSETS_FIND_BUSINESS_PROFILE_BY_NAME`

Find a sparse full person and company profile from a person's name and company or domain, optionally including experience. A matched result is billable against Search Fair Use and every call counts as a request. Results can contain sensitive personal contact data and identity hashes; personal-email or SHA-256 fields may be omitted by plan restrictions while the lookup still succeeds. A status of not_found is a successful lookup miss.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Person's full name; use this or both first_name and last_name. |
| `company` | string | No | Company domain or URL, normalized by MoltSets to a domain; do not combine with company_domain. Company names are not supported. |
| `last_name` | string | No | Person's last name; requires first_name when name is omitted. |
| `first_name` | string | No | Person's first name; requires last_name when name is omitted. |
| `company_domain` | string | No | Alias for company; provide a company domain or URL and do not combine with company. Company names are not supported. |
| `include_experience` | boolean | No | Include employment history in the sparse profile when available. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Find Company by IP

**Slug:** `MOLTSETS_FIND_COMPANY_BY_IP`

Resolve a B2B visitor IPv4 address to associated company domains and provider percentages. A found result is billable against Enrichment Fair Use; found records consume tokens, misses do not, and every call counts as a request. Consumer ISP addresses commonly return HTTP 200 status=not_found. Percentages are preserved as provider strings rather than interpreted as numeric confidence values.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ip_address` | string | Yes | B2B visitor IPv4 address to resolve; IPv6 is not supported. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Find Email Hashes by LinkedIn

**Slug:** `MOLTSETS_FIND_EMAIL_HASHES_BY_LINKEDIN`

Retrieve sensitive ad-audience match keys for one LinkedIn profile URL or slug: at most one business and one personal email hash in both SHA256 and MD5 formats. This endpoint does not return multiple hashes or accept batches. It costs one token when data is found; an HTTP 200 not_found costs no tokens but still counts as one Enrichment Fair Use request. The endpoint is unavailable on the $397/month and $997/month plans, which return 403 plan_restricted; retrying or adding tokens does not remove that plan restriction.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `linkedin_url` | string | Yes | One LinkedIn profile URL or slug. This endpoint accepts only one profile per request; it does not support the linkedin_urls batch field. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Find LinkedIn by Email

**Slug:** `MOLTSETS_FIND_LINKEDIN_BY_EMAIL`

Resolve one email address to the highest-confidence LinkedIn profile URL available from MoltSets. A found record consumes Enrichment Fair Use tokens; a miss consumes no tokens but every call counts as a request. A miss returns HTTP 200 with status=not_found. This lookup does not verify the email address.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email` | string | Yes | Email address to resolve to a LinkedIn profile. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Find LinkedIn Profile

**Slug:** `MOLTSETS_FIND_LINKEDIN_PROFILE`

Find matching person or company LinkedIn profiles from a person's name and company/domain. Set count_only=true for a non-fetching match count that consumes no records or tokens but still counts as a Search Fair Use request. Full results consume records and tokens only when found; not-found calls also count as requests. A miss is HTTP 200 status=not_found with an empty result list.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Person's full name; use this or both first_name and last_name. |
| `company` | string | No | Company domain or URL, normalized by MoltSets to a domain; do not combine with company_domain. Company names are not supported. |
| `last_name` | string | No | Person's last name; requires first_name when name is omitted. |
| `count_only` | boolean | No | Return only a free match count without fetching profile data. |
| `first_name` | string | No | Person's first name; requires last_name when name is omitted. |
| `company_domain` | string | No | Alias for company; provide a company domain or URL and do not combine with company. Company names are not supported. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Find Mobile Advertising ID by Email

**Slug:** `MOLTSETS_FIND_MOBILE_ADVERTISING_ID_BY_EMAIL`

Resolve one email address to at most one highly sensitive Mobile Advertising ID (MAID), such as an Android AAID or Apple IDFA, for advertising audience matching and cross-device targeting. This Enrichment lookup is billable when found; misses cost no tokens but still count against the Fair Use request limit. The endpoint is unavailable on the $397 and $997 monthly plans: those plans receive 403 plan_restricted, and retrying or adding tokens does not remove the restriction. A miss returns HTTP 200 with status=not_found and empty or null results. Handle the returned advertising identifier as highly sensitive identity data and use it only with appropriate authorization and privacy controls.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email` | string | Yes | Email address to resolve to one mobile advertising ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Find Mobile Phone by LinkedIn

**Slug:** `MOLTSETS_FIND_MOBILE_PHONE_BY_LINKEDIN`

Find sensitive carrier-verified mobile data for one LinkedIn profile or a batch of up to 100. This requires a paid base plan and a separately billed phone-token subscription; first use GET_ACCOUNT to check phone_token_balance, phone_token_allowance, and phone_plan. Each returned number costs one phone token, while misses cost no phone token; insufficient balance can return 402 or an HTTP 200 partial batch, so retain completed results and retry only dropped items. Results are mobiles only, not landlines or VoIP, but they are not screened against Do Not Call registries. last_validated_at means active and in service on that date, not consent or permission to contact; the caller remains responsible for applicable calling, messaging, privacy, and DNC compliance.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `linkedin_url` | string | No | One LinkedIn profile URL. Provide exactly one of linkedin_url or linkedin_urls. Before this paid lookup, use GET_ACCOUNT to check phone_token_balance, phone_token_allowance, and phone_plan. |
| `linkedin_urls` | array | No | Batch of 1 to 100 LinkedIn profile URLs. Provide exactly one of linkedin_url or linkedin_urls. Each item counts as a request; preflight GET_ACCOUNT and submit no more items than the available phone-token balance. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Find Personal Email Hash by Business Email

**Slug:** `MOLTSETS_FIND_PERSONAL_EMAIL_HASH_BY_BUSINESS_EMAIL`

Convert one business email into one sensitive SHA-256-hashed personal-email match key for customer-match and paid-advertising audiences. Hashing does not make this identity data non-sensitive. The endpoint does not accept aliases or batches and never returns multiple hashes. A found result consumes Enrichment tokens; a miss costs no tokens but still counts against the Fair Use request limit and returns HTTP 200 with status=not_found. This endpoint is unavailable on the $397/month and $997/month plans: those plans receive 403 plan_restricted, which retrying or adding tokens does not clear.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email` | string | Yes | One business email address to resolve. This endpoint accepts no aliases or batch input. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Find US Personal Email by LinkedIn

**Slug:** `MOLTSETS_FIND_US_PERSONAL_EMAIL_BY_LINKEDIN`

Find a validated sensitive personal email for one US LinkedIn profile or a batch of up to 100. Use this standard selector when provider-ranked highest-confidence selection is not required; use FIND_BEST_US_PERSONAL_EMAIL_BY_LINKEDIN when it is. This billable endpoint is capability-gated: first call GET_ACCOUNT and continue only when personal_email_available is true; otherwise MoltSets returns 403 plan_restricted. Each profile counts against Enrichment Fair Use; found records consume tokens and misses do not. A non-US profile is an HTTP 200 not_found. HTTP 200 may also contain a partial batch, so retain completed results and retry only omitted items.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `linkedin_url` | string | No | One US LinkedIn profile URL or slug. Provide exactly one of linkedin_url or linkedin_urls. |
| `linkedin_urls` | array | No | Batch of 1 to 100 US LinkedIn profile URLs or slugs. Provide exactly one of linkedin_url or linkedin_urls. Each profile counts as a separate provider request. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Account

**Slug:** `MOLTSETS_GET_ACCOUNT`

Safely read the connected MoltSets account, plan capabilities, token and phone-token balances, and live Fair Use headroom before paid or plan-restricted discovery. This read is free, consumes no tokens, is excluded from enrichment and search Fair Use, and can also verify the API key.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Billing

**Slug:** `MOLTSETS_GET_BILLING`

Get billing-sensitive plan and subscription dates, token balance, unlimited status, and per-tool token costs. This read-only request is free and excluded from enrichment and search Fair Use; use it to estimate provider token cost before billable discovery calls.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Usage

**Slug:** `MOLTSETS_GET_USAGE`

Get daily and aggregate API calls, tokens, found-data, no-data, and failed counts for today, week, month, or the billing cycle. This read is free and excluded from enrichment and search Fair Use; it exposes account usage but performs no mutation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `period` | string ("today" | "week" | "month" | "billing_cycle") | No | Reporting period to summarize. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Reverse Lookup Email

**Slug:** `MOLTSETS_REVERSE_LOOKUP_EMAIL`

Resolve one email or a batch of up to 100 into a sensitive sparse person and business profile, including company firmographics, LinkedIn URLs, confirmed work email, and personal emails on file. Each address counts against Enrichment Fair Use; found records consume tokens and misses do not. HTTP 200 can represent not_found or a partial batch, so retry only omitted items.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email` | string | No | One email address to resolve. Provide this or emails, but not both. |
| `emails` | array | No | Batch of 1 to 100 email addresses. Provide this or email, but not both. Each address counts as a separate provider request. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search Companies

**Slug:** `MOLTSETS_SEARCH_COMPANIES`

Search ranked companies by name or domain, firmographics, industry, and location. Returned records consume Search Fair Use records and tokens, while every call counts against the request limit; there is no free count-only mode. Returns one offset page. Free accounts can request at most 10 records per page; eligible paid plans can request up to 25. HTTP 200 status=not_found is a successful miss.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Page size from 1 to 25. Defaults to 10; Free accounts can request at most 10 records per call. |
| `query` | string | No | Free-text company name search input. |
| `state` | string | No | State or region name, abbreviation, or alternatives. |
| `domain` | string | No | Company domain or alternatives. |
| `offset` | integer | No | Zero-based result offset for the requested page. |
| `country` | string | No | Country or alternatives. |
| `industry` | string | No | Allowed broad industry value or alternatives. |
| `naics_code` | string | No | NAICS code or alternatives. |
| `revenue_range` | string | No | Revenue band or alternatives. |
| `employee_range` | string | No | Employee band or alternatives. |
| `exclude_domain` | array | No | Company domains to exclude; exclusions cannot be the only input. |
| `exclude_industry` | array | No | Industries to exclude; exclusions cannot be the only input. |
| `linkedin_industry` | string | No | LinkedIn industry label or alternatives. |
| `exclude_revenue_range` | array | No | Revenue bands to exclude; exclusions cannot be the only input. |
| `exclude_employee_range` | array | No | Employee bands to exclude; exclusions cannot be the only input. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search People

**Slug:** `MOLTSETS_SEARCH_PEOPLE`

Search ranked people and current companies with positive and exclusion filters. This is billable against Search Fair Use: returned records consume search records and tokens, every call counts as a request, exclusions apply before billing, and Free accounts can request at most 10 results per page (25 on eligible plans). Returns one offset page and treats status=not_found as a successful empty result.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `city` | string | No | One city or alternatives. |
| `limit` | integer | No | Page size from 1 to 25. Defaults to 10; Free accounts can request at most 10 results per call. |
| `query` | string | No | Free-text person search input. |
| `state` | string | No | One state or region, or alternatives. |
| `title` | string | No | One job title or alternatives; values within this field are ORed. |
| `offset` | integer | No | Zero-based result offset for the requested page. |
| `company` | string | No | One current company name or alternatives; values are ORed. |
| `country` | string | No | One country or alternatives. |
| `industry` | string | No | Allowed broad industry value or alternatives. |
| `seniority` | string | No | Allowed seniority value or alternatives. |
| `department` | string | No | Department filter. Uses the same data as functional_area; provide only one. |
| `naics_code` | string | No | NAICS code or alternatives. |
| `exclude_state` | array | No | States or regions to exclude; exclusions cannot be the only input. |
| `revenue_range` | string | No | Current-company revenue band or alternatives. |
| `company_domain` | string | No | One current company domain or up to 100 alternatives. |
| `employee_range` | string | No | Current-company employee band or alternatives. |
| `exclude_country` | array | No | Countries to exclude; exclusions cannot be the only input. |
| `functional_area` | string | No | Functional-area filter. Uses the same data as department; provide only one. |
| `exclude_industry` | array | No | Industries to exclude; exclusions cannot be the only input. |
| `exclude_seniority` | array | No | Seniorities to exclude; exclusions cannot be the only input. |
| `linkedin_industry` | string | No | LinkedIn industry label or alternatives. |
| `exclude_company_domain` | array | No | Up to 100 company domains to exclude; exclusions cannot be the only search input. |
| `exclude_employee_range` | array | No | Employee bands to exclude; exclusions cannot be the only input. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
