# Leadsforge

```json
{
  "name": "Leadsforge",
  "slug": "leadsforge",
  "url": "https://composio.dev/toolkits/leadsforge",
  "markdown_url": "https://composio.dev/toolkits/leadsforge.md",
  "logo_url": "https://logos.composio.dev/api/leadsforge",
  "categories": [
    "sales & customer support"
  ],
  "is_composio_managed": false,
  "updated_at": "2026-10-25T05:33:25.382Z"
}
```

![Leadsforge logo](https://logos.composio.dev/api/leadsforge)

## Description

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Leadsforge MCP or direct API to search for leads, discover companies, enrich contacts, and support sales prospecting through natural language.

## Summary

Leadsforge is a lead search and contact enrichment platform for sales teams.
It helps you discover target companies and find useful prospect details faster.

## Categories

- sales & customer support

## Toolkit Details

- Tools: 32

## Images

- Logo: https://logos.composio.dev/api/leadsforge

## Authentication

- **Api Key**
  - Type: `api_key`
  - Description: Api Key authentication for Leadsforge.
  - Setup:
    - Configure Api Key credentials for Leadsforge.
    - Use the credentials when creating an auth config in Composio.

## Suggested Prompts

- Find SaaS companies hiring in California
- Enrich contacts at target fintech companies
- Search companies by industry and size

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `LEADSFORGE_COUNT_LEADS` | Count Leads | Count people matching Leadsforge person and company filters without returning lead records. Charge behavior is undocumented; do not assume this action is free. Authenticated behavior has not been live-verified. |
| `LEADSFORGE_FIND_MOBILE_PHONE` | Find Mobile Phone | Find one person's mobile phone number synchronously using a Leadsforge person ID, LinkedIn URL, or name plus a company signal. The result contains sensitive personal contact data and is discovery, not phone verification. A successful hit costs 10 credits; a miss is documented free. Retries may repeat a charged lookup because provider deduplication is undocumented. |
| `LEADSFORGE_FIND_WORK_EMAIL` | Find Work Email | Find one person's work email synchronously from a Leadsforge person ID, LinkedIn URL, or full name plus a company signal. The result contains sensitive personal data. Leadsforge documents a cost of 1 credit when an email is found and no charge on a miss. This performs discovery, not email verification. Retry charging or deduplication is undocumented, so avoid automatic retries. |
| `LEADSFORGE_GET_BALANCE` | Get Balance | Return available and reserved credits plus current enrichment and company-discovery prices. Use this non-mutating read as a safe credential check. Leadsforge does not document a per-call charge for this endpoint, but that does not establish that it is free. |
| `LEADSFORGE_GET_COMPANY_FOLLOWER_FILTER_VALUES` | Get Company Follower Filter Values | Return supported countries, departments, seniority levels, or states accepted by START_COMPANY_FOLLOWER_SEARCH. These static reads are not documented as charged. Select one filter family per call. |
| `LEADSFORGE_GET_COMPANY_FOLLOWER_JOB` | Get Company Follower Job | Get one company-follower job's status, progress, company context, credit accounting, result path, and webhook metadata. This reads one snapshot and does not poll; call it again later while status is in_progress, then use List Company Follower Results. This read is not documented as charged, but is not represented as free. |
| `LEADSFORGE_GET_ENRICHMENT_JOB` | Get Enrichment Job | Get the current status, progress, credit accounting, result URL, and webhook metadata for one asynchronous enrichment job. This reads one snapshot and does not poll; call it again later while the job remains in progress, then use List Enrichment Results when it completes. |
| `LEADSFORGE_GET_LOOKALIKE_FILTER_VALUES` | Get Lookalike Filter Values | Return controlled departments, employee ranges, locations, or seniorities accepted by Leadsforge company lookalike preview and search. |
| `LEADSFORGE_GET_MAPS_CATEGORIES` | Get Maps Categories | Return Leadsforge's curated Google Maps business categories recommended for Start Maps Business Search. The start action also accepts free-text categories. This read is not documented as charged, but is not represented as free. |
| `LEADSFORGE_GET_MAPS_OWNER_JOB` | Get Maps Owner Job | Get one snapshot of a Maps owner-enrichment job's lifecycle status, business progress, owner count, credit accounting, acceptance outcomes, result and status URLs, and webhook metadata. This does not poll. Keep checking while status is in_progress, then use List Maps Owner Results. A completed job can still contain an error when contact backfill stopped early because credits ran out. Status reads are not documented as charged, but are not represented as free. |
| `LEADSFORGE_GET_MAPS_SEARCH_JOB` | Get Maps Search Job | Get one local-business Maps search job's current status, search inputs, found count, credit accounting, result and status URLs, and webhook metadata. This reads one snapshot and does not poll automatically. |
| `LEADSFORGE_GET_SEARCH_FILTER_VALUES` | Get Search Filter Values | Return the exact controlled values accepted by SEARCH_LEADS for company types, departments, funding types, revenue ranges, or seniorities. Industries use the separate searchable and paginated industry-values action. |
| `LEADSFORGE_LIST_COMPANY_FOLLOWER_JOBS` | List Company Follower Jobs | List and recover company-follower jobs, newest first, with optional lifecycle status, client request ID, and RFC3339 time filters. Use this when a Start Company Follower Search job ID is unknown. Returns one native offset page; advance offset explicitly. This read is not documented as charged, but is not represented as free. |
| `LEADSFORGE_LIST_COMPANY_FOLLOWER_RESULTS` | List Company Follower Results | Return one native offset-controlled page of sensitive LinkedIn follower profiles for a company-follower job. Handle and disclose personal profile data appropriately. Advance offset explicitly using the returned page; no cursor, page-size bound, or default is invented. This read is not documented as charged, but is not represented as free. |
| `LEADSFORGE_LIST_ENRICHMENT_JOBS` | List Enrichment Jobs | List and recover enrichment jobs, newest first, with optional lifecycle status, channel, client request ID, and RFC3339 time filters. Use this when a bulk email, phone, or LinkedIn job ID is unknown. Pagination uses the provider's native offset and required limit parameters. |
| `LEADSFORGE_LIST_ENRICHMENT_RESULTS` | List Enrichment Results | Return one native offset-controlled page of results for an enrichment job. The response can contain sensitive personal and contact data, including channel-specific fields in payload; handle and disclose it appropriately. Supply the returned offset plus the number of results as the next offset when more results remain. Reading results is not documented as charged, but is not represented as free. |
| `LEADSFORGE_LIST_MAPS_OWNER_JOBS` | List Maps Owner Jobs | List and recover Maps owner-enrichment jobs, newest first, using optional status, client request ID, and RFC3339 time filters. This returns one native offset page and does not poll or fetch additional pages. Recovery reads are not documented as charged, but are not represented as free. |
| `LEADSFORGE_LIST_MAPS_OWNER_RESULTS` | List Maps Owner Results | Return one native offset page of sensitive owner and contact records for a Maps owner-enrichment job. Results can be read while processing continues; email and phone statuses settle only after the job completes. Handle and disclose returned personal data appropriately. Reading results is not documented as charged, but is not represented as free. This action does not automatically fetch additional pages. |
| `LEADSFORGE_LIST_MAPS_SEARCH_JOBS` | List Maps Search Jobs | List and recover local-business Maps search jobs, newest first, using status, client request ID, and RFC3339 time filters. Returns one native offset/limit page; use offset and total to request later pages. |
| `LEADSFORGE_LIST_MAPS_SEARCH_RESULTS` | List Maps Search Results | Return one native offset/limit page of public business records found by a Maps search, including business addresses, domains, and public business phone numbers. The provider classifies this business-discovery response as not sensitive personal data. Pages are readable while the job runs and are complete only after job completion; do not assume an in-progress total is final or auto-fetch all pages. |
| `LEADSFORGE_PREVIEW_LOOKALIKE_COMPANIES` | Preview Lookalike Companies | Return a documented free, uncharged preview of companies similar to 1-10 source domains, optionally filtered by categories, employee ranges, funding stages, and typed locations. Returns companies only, not people. |
| `LEADSFORGE_SEARCH_COMPANY_FOLLOWER_JOB_TITLES` | Search Company Follower Job Titles | Search one native page of supported job-title values accepted by START_COMPANY_FOLLOWER_SEARCH. Supply page and page_size to fetch another page; this action does not automatically fetch additional pages. |
| `LEADSFORGE_SEARCH_INDUSTRY_VALUES` | Search Industry Values | Search and page the exact case-sensitive industry values accepted by SEARCH_LEADS.company_industries. Use the native offset and limit fields to request additional pages. |
| `LEADSFORGE_SEARCH_LEADS` | Search Leads | Search people with Leadsforge person and company filters and return one cursor-controlled page of lead identities, roles, LinkedIn URLs, locations, company data, and filter warnings. Results contain sensitive personal data. Charge behavior is undocumented and authenticated behavior is unverified. |
| `LEADSFORGE_SEARCH_LOOKALIKE_COMPANIES` | Search Lookalike Companies | Run a billable paged search for companies similar to 1-10 source domains. This costs 1 credit per company returned; credits are reserved before the search and settled against actual results. Use Preview Lookalike Companies first. Supply page and page_size to fetch one native page; this action does not automatically fetch additional pages. |
| `LEADSFORGE_START_BULK_EMAIL_DISCOVERY` | Start Bulk Email Discovery | Start a billable asynchronous work-email discovery job for 1-500 unique people or Leadsforge person IDs. The job handles sensitive personal data and may reserve or consume credits. It returns a job ID; follow it with Get Enrichment Job and List Enrichment Results, or recover a lost job with List Enrichment Jobs. Setting save_to_list persists results to a Leadsforge list. An optional webhook receives completion or failure events and may be redelivered for up to 24 hours with a stable delivery ID. |
| `LEADSFORGE_START_BULK_LINKEDIN_DISCOVERY` | Start Bulk LinkedIn Discovery | Start a billable asynchronous LinkedIn-profile discovery job for 1-500 unique people or Leadsforge person IDs. The job handles sensitive personal data and may reserve or consume credits. It returns a job ID; follow it with Get Enrichment Job and List Enrichment Results, or recover a lost job with List Enrichment Jobs. Setting save_to_list persists discovered profiles to a Leadsforge list. An optional webhook receives completion or failure events and may be redelivered for up to 24 hours with a stable delivery ID. |
| `LEADSFORGE_START_BULK_PHONE_DISCOVERY` | Start Bulk Phone Discovery | Start a billable asynchronous phone-number discovery job for 1-500 unique people or Leadsforge person IDs. The job handles sensitive personal data and may reserve or consume credits. It returns a job ID; follow it with Get Enrichment Job and List Enrichment Results, or recover a lost job with List Enrichment Jobs. Setting save_to_list persists results to a Leadsforge list. An optional webhook receives completion or failure events and may be redelivered for up to 24 hours with a stable delivery ID. |
| `LEADSFORGE_START_COMPANY_FOLLOWER_SEARCH` | Start Company Follower Search | Start a billable asynchronous search of followers of one LinkedIn company page, optionally filtered by supported geography, department, title, and seniority values. The job handles sensitive personal data and reserves or may consume company-follower credits; Get Balance reports the current unit price. It returns a job snapshot; follow with Get Company Follower Job and List Company Follower Results, or recover a lost ID with List Company Follower Jobs. An optional webhook receives completion or failure events and may be redelivered for up to 24 hours with a stable delivery ID. |
| `LEADSFORGE_START_MAPS_BUSINESS_SEARCH` | Start Maps Business Search | Start a billable asynchronous Google Maps business search. Leadsforge reserves credits for the requested limit and settles them for businesses found. Every search creates a Leadsforge list named 'Public API: Local Businesses'. It returns a job ID for Get Maps Search Job, List Maps Search Results, or recovery with List Maps Search Jobs. An optional webhook receives completion or failure events and is retried up to 10 times with exponential backoff until a 2xx response. |
| `LEADSFORGE_START_MAPS_OWNER_ENRICHMENT` | Start Maps Owner Enrichment | Start billable asynchronous owner discovery for 1-200 businesses from one Maps search job, requesting up to 1-8 owners per business and optional email or phone enrichment. Credits are reserved from the requested upper bound and settled per contact found; no-owner and recently cached businesses are documented as uncharged. This handles sensitive owner contact data, may use the standard contact waterfall, and may POST lifecycle events to webhook_url. Only one owner job per search can be in progress. Follow the returned job with Get Maps Owner Job and List Maps Owner Results, or recover it with List Maps Owner Jobs. |
| `LEADSFORGE_SUGGEST_LEAD_LOCATIONS` | Suggest Lead Locations | Resolve a location string to canonical region-level tokens that match people and can be passed to SEARCH_LEADS.lead_locations. |

## Supported Triggers

None listed.

## Installation and MCP Setup

### Path 1: SDK Installation

#### Path 1, Step 1: Install Composio

Install the Composio SDK, the OpenAI provider, and the OpenAI SDK
```python
pip install composio composio_openai openai
```

```typescript
npm install @composio/core @composio/openai openai
```

#### Path 1, Step 2: Create a Composio session

Initialize Composio with the OpenAI Responses provider and create a session scoped to Leadsforge
```python
import json
from openai import OpenAI
from composio import Composio
from composio_openai import OpenAIResponsesProvider

composio = Composio(provider=OpenAIResponsesProvider())
client = OpenAI()

session = composio.create(user_id="your-user-id", toolkits=["leadsforge"])
tools = session.tools()
```

```typescript
import OpenAI from "openai";
import { Composio } from "@composio/core";
import { OpenAIResponsesProvider } from "@composio/openai";

const composio = new Composio({ provider: new OpenAIResponsesProvider() });
const client = new OpenAI();

const session = await composio.create("your-user-id", { toolkits: ["leadsforge"] });
const tools = await session.tools();
```

#### Path 1, Step 3: Run Leadsforge tools with your agent

Send a request, execute the Leadsforge tool calls through the session, and print the final answer
```python
response = client.responses.create(
    model="gpt-5.6-sol",
    tools=tools,
    input=[{"role": "user", "content": "Find 25 SaaS companies in the United States with 50 to 200 employees and enrich their decision-maker contacts."}],
)

while True:
    tool_calls = [o for o in response.output if o.type == "function_call"]
    if not tool_calls:
        break
    results = composio.provider.handle_tool_calls(response=response, session=session)
    response = client.responses.create(
        model="gpt-5.6-sol",
        tools=tools,
        previous_response_id=response.id,
        input=[
            {"type": "function_call_output", "call_id": call.call_id, "output": json.dumps(results[i])}
            for i, call in enumerate(tool_calls)
        ],
    )

print(response.output_text)
```

```typescript
let response = await client.responses.create({
  model: "gpt-5.6-sol",
  tools,
  input: [{ role: "user", content: "Find 25 SaaS companies in the United States with 50 to 200 employees and enrich their decision-maker contacts." }],
});

while (response.output.some((o) => o.type === "function_call")) {
  const outputs = await composio.provider.handleToolCalls(session, response.output);
  response = await client.responses.create({
    model: "gpt-5.6-sol",
    tools,
    previous_response_id: response.id,
    input: outputs,
  });
}

console.log(response.output_text);
```

### Path 2: MCP Server Setup

#### Path 2, Step 1: Install Composio

Install the Composio SDK and your agent framework
```python
pip install composio claude-agent-sdk
```

```typescript
npm install @composio/core ai @ai-sdk/mcp @ai-sdk/openai
```

#### Path 2, Step 2: Create a session with MCP enabled

Create a session scoped to Leadsforge and read its MCP URL and headers
```python
from composio import Composio

composio = Composio()
session = composio.create(user_id="your-user-id", toolkits=["leadsforge"], mcp=True)
```

```typescript
import { Composio } from "@composio/core";

const composio = new Composio();
const { mcp } = await composio.create("your-user-id", {
  toolkits: ["leadsforge"],
  mcp: true,
});
```

#### Path 2, Step 3: Connect your agent to the MCP server

Pass the session's MCP URL and headers to your agent and run a Leadsforge request
```python
import asyncio
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions, AssistantMessage, TextBlock

options = ClaudeAgentOptions(
    mcp_servers={
        "composio": {
            "type": "http",
            "url": session.mcp.url,
            "headers": session.mcp.headers,
        }
    },
    system_prompt="You are a helpful assistant with access to Leadsforge tools.",
    tools=[],
    allowed_tools=["mcp__composio__*"],
)

async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query("Find 25 SaaS companies in the United States with 50 to 200 employees and enrich their decision-maker contacts.")
        async for message in client.receive_response():
            if isinstance(message, AssistantMessage):
                for block in message.content:
                    if isinstance(block, TextBlock):
                        print(block.text)

asyncio.run(main())
```

```typescript
import { createMCPClient } from "@ai-sdk/mcp";
import { openai } from "@ai-sdk/openai";
import { generateText, stepCountIs } from "ai";

const client = await createMCPClient({
  transport: { type: "http", url: mcp.url, headers: mcp.headers },
});

const { text } = await generateText({
  model: openai("gpt-5.6-sol"),
  tools: await client.tools(),
  prompt: "Find 25 SaaS companies in the United States with 50 to 200 employees and enrich their decision-maker contacts.",
  stopWhen: stepCountIs(10),
});

console.log(text);
await client.close();
```

## Why Use Composio?

### 1. AI Native Leadsforge Integration

- Supports both Leadsforge MCP and direct API-based integrations
- Structured, LLM-friendly schemas for reliable lead searches and enrichment
- Rich coverage for discovering companies, finding contacts, and querying prospect data

### 2. Managed Auth

- Securely stores and manages your Leadsforge API key
- Central place to scope, rotate, and revoke Leadsforge access
- Per-user and per-environment credentials instead of hard-coded keys

### 3. Agent Optimized Design

- Tools are tuned using real error and success rates to improve reliability over time
- Comprehensive execution logs so you always know what ran, when, and on whose behalf

### 4. Enterprise Grade Security

- Fine-grained RBAC so you control which agents and users can access Leadsforge
- Scoped, least-privilege access to Leadsforge prospecting resources
- Full audit trail of agent actions to support review and compliance

## Use Leadsforge with any AI Agent Framework

Choose a framework you want to connect Leadsforge with:

- [ChatGPT](https://composio.dev/toolkits/leadsforge/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/leadsforge/framework/claude-cowork)
- [Hermes](https://composio.dev/toolkits/leadsforge/framework/hermes-agent)
- [Atomic Agent](https://composio.dev/toolkits/leadsforge/framework/atomic-agent)

## Related Toolkits

- [Aeroleads](https://composio.dev/toolkits/aeroleads) - Aeroleads is a B2B lead generation platform for finding business emails and phone numbers. Grow your sales pipeline faster with powerful prospecting tools.
- [Autobound](https://composio.dev/toolkits/autobound) - Autobound is an AI-powered sales engagement platform that crafts hyper-personalized outreach and insights. It helps sales teams boost response rates and close more deals through tailored content and recommendations.
- [Better proposals](https://composio.dev/toolkits/better_proposals) - Better Proposals is a web-based tool for crafting and sending professional proposals. It helps teams impress clients and close deals faster with slick, easy-to-use templates.
- [Bidsketch](https://composio.dev/toolkits/bidsketch) - Bidsketch is a proposal software that helps businesses create professional proposals quickly and efficiently. It streamlines the proposal process, saving time while boosting client win rates.
- [Bolna](https://composio.dev/toolkits/bolna) - Bolna is an AI platform for building conversational voice agents. It helps businesses automate support and streamline interactions through natural, voice-powered conversations.
- [Botdog](https://composio.dev/toolkits/botdog) - Botdog is a LinkedIn outreach platform for managing campaigns, leads, messages, analytics, and sending accounts. It helps sales teams run outbound workflows and track performance from one place.
- [BotPenguin](https://composio.dev/toolkits/botpenguin) - BotPenguin is an AI chatbot platform for customer messaging, contacts, and conversations. It helps teams manage bot-led support and lead engagement across channels.
- [Botsonic](https://composio.dev/toolkits/botsonic) - Botsonic is a no-code AI chatbot builder for easily creating and deploying chatbots to your website. It empowers businesses to offer conversational experiences without writing code.
- [Botstar](https://composio.dev/toolkits/botstar) - BotStar is a comprehensive chatbot platform for designing, developing, and training chatbots visually on Messenger and websites. It helps businesses automate conversations and customer interactions without coding.
- [Callerapi](https://composio.dev/toolkits/callerapi) - CallerAPI is a white-label caller identification platform for branded caller ID and fraud prevention. It helps businesses boost customer trust while stopping spam, fraud, and robocalls.
- [Callingly](https://composio.dev/toolkits/callingly) - Callingly is a lead response management platform that automates immediate call and text follow-ups with new leads. It helps sales teams boost response speed and close more deals by connecting seamlessly with CRMs and lead sources.
- [Callpage](https://composio.dev/toolkits/callpage) - Callpage is a lead capture platform that lets businesses instantly connect with website visitors via callback. It boosts lead generation and increases your sales conversion rates.
- [Charla](https://composio.dev/toolkits/charla) - Charla is a live chat and AI customer-support platform for property teams. It helps manage guest conversations, property contacts, and support knowledge.
- [Chatforma](https://composio.dev/toolkits/chatforma) - Chatforma is a chatbot automation platform for building and managing bots. It helps teams run dialogs, segments, broadcasts, forms, and user updates from one place.
- [Clearout](https://composio.dev/toolkits/clearout) - Clearout is an AI-powered service for verifying, finding, and enriching email addresses. It boosts deliverability and helps you discover high-quality leads effortlessly.
- [Clientary](https://composio.dev/toolkits/clientary) - Clientary is a platform for managing clients, invoices, projects, proposals, and more. It streamlines client work and saves you serious admin time.
- [Convolo ai](https://composio.dev/toolkits/convolo_ai) - Convolo ai is an AI-powered communications platform for sales teams. It accelerates lead response and improves conversion rates by automating calls and integrating workflows.
- [Crisp](https://composio.dev/toolkits/crisp) - Crisp is a customer messaging platform for live chat, contacts, helpdesk, and campaigns. It helps support teams manage customer conversations from one shared workspace.
- [Delighted](https://composio.dev/toolkits/delighted) - Delighted is a customer feedback platform based on the Net Promoter System®. It helps you quickly gather, track, and act on customer sentiment.
- [Docsbot ai](https://composio.dev/toolkits/docsbot_ai) - Docsbot ai is a platform that lets you build custom AI chatbots trained on your documentation. It automates customer support and content generation, saving time and improving response quality.

## Frequently Asked Questions

### Do I need my own developer credentials to use Leadsforge with Composio?

Yes, Leadsforge requires you to configure your own API key. Once set up, Composio handles secure credential storage and API request handling for you.

### Can I use multiple toolkits together?

Yes! Composio's Tool Router enables agents to use multiple toolkits. [Learn more](https://docs.composio.dev/tool-router/overview).

### Is Composio secure?

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. [Learn more](https://trust.composio.dev).

### What if the API changes?

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
