Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

LeadIQ connector

API Key crmsalesanalytics

Connect to LeadIQ to enrich B2B contacts and companies with verified emails, direct dials, and mobile numbers.

LeadIQ connector

  1. Terminal window
    npm install @scalekit-sdk/node

    Full SDK reference: Node.js | Python

  2. Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Register your LeadIQ API key with Scalekit so it stores it securely. You do this once per environment.

    Dashboard setup steps

    Register your LeadIQ API key with Scalekit so it stores it securely and injects it into every request. LeadIQ uses API key authentication — there is no redirect URI or OAuth flow.

    1. Get your LeadIQ API key

      • Sign in to LeadIQ and go to SettingsAPI Keys.
      • Copy the Secret API key value, or click Generate new API key to create one dedicated to this integration.

      LeadIQ Settings API Keys page showing Secret API key and Secret Base64 API key fields

    2. Create a connection in Scalekit

      • In Scalekit dashboard, go to AgentKitConnectionsCreate Connection. Find LeadIQ and click Create.
      • Note the Connection name — you will use this as connection_name in your code (e.g., leadiq).
      • Click Save.
    3. Add a connected account

      Connected accounts link a specific user identifier in your system to their LeadIQ API key. Add them via the dashboard for testing, or via the Scalekit API in production.

      Via dashboard (for testing)

      • Open the connection you created and click the Connected Accounts tab → Add account.
      • Fill in:
        • Your User’s ID — a unique identifier for this user in your system (e.g., user_123)
        • API Key — the LeadIQ API key from step 1
      • Click Create Account.

      Via API (for production)

      import { Scalekit } from '@scalekit-sdk/node';
      const scalekit = new Scalekit(
      process.env.SCALEKIT_ENV_URL,
      process.env.SCALEKIT_CLIENT_ID,
      process.env.SCALEKIT_CLIENT_SECRET,
      );
      // Never hard-code credentials — read from secure storage or user input
      const leadiqApiKey = getUserLeadIQApiKey(); // retrieve from your secure store
      await scalekit.actions.upsertConnectedAccount({
      connectionName: 'leadiq',
      identifier: 'user_123',
      credentials: {
      username: leadiqApiKey,
      },
      });
  4. quickstart.ts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENV_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'leadiq'
    const identifier = 'user_123'
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'leadiq_get_usage',
    toolInput: {},
    })
    console.log(result)

Connect this agent connector to let your agent:

  • Search contacts — look up verified work emails, direct dials, and mobile numbers by LinkedIn URL, email, or name
  • Preview before consuming credits — check whether LeadIQ has a work email or phone for a person without spending credits
  • Enrich companies — fetch firmographics including industry, employee count, and location by domain or name
  • Advanced prospecting — filter contacts by title, seniority, industry, company size, and location; get results flat or grouped by company
  • Manage prospect lists — create lists, add contacts, and retrieve saved prospects (requires Prospector plan)
  • Monitor quota — check API credit usage, plan limits, and subscription status before making credit-consuming calls
Check credit quota before searching

Always check available credits before calling tools that consume them (leadiq_search_people, leadiq_flat_advanced_search, leadiq_grouped_advanced_search).

const usage = await actions.executeTool({
toolName: 'leadiq_get_usage',
connectionName: 'leadiq',
identifier: 'user_123',
toolInput: {},
});
console.log(usage.data?.usage);
Preview contact availability before consuming credits

Use leadiq_search_people_preview to check whether LeadIQ has a work email or phone for a person before calling leadiq_search_people. The preview call does not consume credits.

const preview = await actions.executeTool({
toolName: 'leadiq_search_people_preview',
connectionName: 'leadiq',
identifier: 'user_123',
toolInput: {
linkedin_url: 'https://www.linkedin.com/in/janedoe',
},
});
if (preview.data?.data?.searchPeoplePreview?.hasEmail) {
// Safe to call leadiq_search_people — credits will be consumed
}
Look up a contact by LinkedIn URL, email, or name
// By LinkedIn URL (most precise)
const contact = await actions.executeTool({
toolName: 'leadiq_search_people',
connectionName: 'leadiq',
identifier: 'user_123',
toolInput: {
linkedin_url: 'https://www.linkedin.com/in/janedoe',
limit: 1,
},
});
// By name + company
const byName = await actions.executeTool({
toolName: 'leadiq_search_people',
connectionName: 'leadiq',
identifier: 'user_123',
toolInput: {
first_name: 'Jane',
last_name: 'Doe',
company_name: 'Acme Corp',
limit: 5,
},
});
Enrich a company by domain or name
const company = await actions.executeTool({
toolName: 'leadiq_search_company',
connectionName: 'leadiq',
identifier: 'user_123',
toolInput: {
domain: 'acme.com',
},
});
console.log(company.data?.data?.searchCompany);
Advanced people search with industry and seniority filters

Pass filter objects as Python dicts or JavaScript objects — not JSON-encoded strings.

const results = await actions.executeTool({
toolName: 'leadiq_flat_advanced_search',
connectionName: 'leadiq',
identifier: 'user_123',
toolInput: {
company_filter: {
industries: ['Software Development'],
sizes: [{ min: 50, max: 500 }],
},
contact_filter: {
seniorities: ['VP', 'Director'],
},
limit: 10,
},
});
const people = results.data?.data?.flatAdvancedSearch?.people ?? [];
Advanced search grouped by company (account-based prospecting)

Returns results organized by company, each with a list of matching contacts. Useful for account-based outreach.

const grouped = await actions.executeTool({
toolName: 'leadiq_grouped_advanced_search',
connectionName: 'leadiq',
identifier: 'user_123',
toolInput: {
company_filter: {
industries: ['Financial Services'],
sizes: [{ min: 200, max: 5000 }],
},
contact_filter: {
seniorities: ['Executive', 'VP'],
},
limit: 5, // number of companies
limit_per_company: 3, // contacts per company
},
});
const companies = grouped.data?.data?.groupedAdvancedSearch?.companies ?? [];
Report incorrect contact data

Help improve LeadIQ data quality by reporting bounced emails or wrong phone numbers.

await actions.executeTool({
toolName: 'leadiq_submit_person_feedback',
connectionName: 'leadiq',
identifier: 'user_123',
toolInput: {
value: 'jane.doe@acme.com',
status: 'Invalid',
type: 'WorkEmail',
invalid_reason: 'EmailBounceCode550',
},
});

Pass the exact tool name from the list below when you call executeTool (Node.js) or execute_tool (Python).

leadiq_add_prospect_to_list # Add a contact to an existing LeadIQ prospect list. Provide first name, last name, and any known contact details. Use Get Prospect Lists to find the list ID. 13 params

Add a contact to an existing LeadIQ prospect list. Provide first name, last name, and any known contact details. Use Get Prospect Lists to find the list ID.

Name Type Required Description
list_id string required ID of the prospect list to add the contact to
first_name string required First name of the prospect
last_name string required Last name of the prospect
work_email string optional Work email address of the prospect
work_phone string optional Work phone number of the prospect
mobile_phone string optional Mobile phone number of the prospect
title string optional Job title of the prospect
seniority string optional Seniority level of the prospect
company string optional Current company name of the prospect
company_domain string optional Website domain of the prospect's company
company_industry string optional Industry of the prospect's company
linkedin_url string optional LinkedIn profile URL of the prospect
notes string optional Internal notes about this prospect
leadiq_create_list # Create a new prospect list in LeadIQ to organize contacts for outreach campaigns. Returns the created list ID for use with Add Prospect to List. 2 params

Create a new prospect list in LeadIQ to organize contacts for outreach campaigns. Returns the created list ID for use with Add Prospect to List.

Name Type Required Description
name string required Name of the prospect list
description string optional Optional description of the prospect list
leadiq_get_account # Retrieve the current LeadIQ account details including active plans, product subscriptions, billing status, and credit usage (available and used). Use this to check remaining search credits before making enrichment calls. 0 params

Retrieve the current LeadIQ account details including active plans, product subscriptions, billing status, and credit usage (available and used). Use this to check remaining search credits before making enrichment calls.

leadiq_get_list # Retrieve a specific prospect list by ID, including its contacts with name, title, company, email, and LinkedIn URL. Use Get Prospect Lists first to find the list ID. 3 params

Retrieve a specific prospect list by ID, including its contacts with name, title, company, email, and LinkedIn URL. Use Get Prospect Lists first to find the list ID.

Name Type Required Description
id string required ID of the prospect list to retrieve
prospects_limit integer optional Maximum number of prospects to return from the list (default 25)
prospects_cursor string optional Pagination cursor from a previous response to get the next batch of prospects
leadiq_get_lists # Retrieve all prospect lists in the LeadIQ account. Returns list metadata including name, status, and timestamps. Use the returned list IDs with Get Prospect List to fetch contacts. 2 params

Retrieve all prospect lists in the LeadIQ account. Returns list metadata including name, status, and timestamps. Use the returned list IDs with Get Prospect List to fetch contacts.

Name Type Required Description
limit integer optional Maximum number of lists to return per page
cursor string optional Pagination cursor from a previous response's nextCursor field
leadiq_get_prospect # Retrieve a single prospect record by ID, including full contact details: emails, phones, LinkedIn, title, company, and location. 1 param

Retrieve a single prospect record by ID, including full contact details: emails, phones, LinkedIn, title, company, and location.

Name Type Required Description
id string required ID of the prospect to retrieve
leadiq_get_usage # Retrieve API credit usage for the current billing period — plan credit counts, usage caps, trial usage, and subscription status. Use this to monitor quota before making credit-consuming calls. 0 params

Retrieve API credit usage for the current billing period — plan credit counts, usage caps, trial usage, and subscription status. Use this to monitor quota before making credit-consuming calls.

leadiq_search_company # Search for a company by name, domain, or LinkedIn URL. Returns firmographic data including employee count, industry, headquarters location, and funding information. 5 params

Search for a company by name, domain, or LinkedIn URL. Returns firmographic data including employee count, industry, headquarters location, and funding information.

Name Type Required Description
name string optional Company name to search for
domain string optional Company website domain
linkedin_url string optional LinkedIn company page URL
linkedin_id string optional LinkedIn company numeric ID
strict boolean optional Enable strict matching — only return exact name or domain matches
leadiq_search_people # Search for a person by LinkedIn URL, email, or name + company. At least one of: linkedin_url, email, or first_name+last_name must be provided. Returns verified work emails, direct dials, and current job details. Consumes LeadIQ credits per result. 10 params

Search for a person by LinkedIn URL, email, or name + company. At least one of: linkedin_url, email, or first_name+last_name must be provided. Returns verified work emails, direct dials, and current job details. Consumes LeadIQ credits per result.

Name Type Required Description
first_name string optional First name of the person to search for
last_name string optional Last name of the person to search for
full_name string optional Full name of the person (alternative to first_name + last_name)
email string optional Known email address of the person
linkedin_url string optional LinkedIn profile URL of the person
company_name string optional Current company name of the person
company_domain string optional Domain of the person's current company
contains_work_contact_info boolean optional Only return results that have at least one work email or work phone
skip integer optional Number of results to skip for pagination (default 0)
limit integer optional Maximum number of results to return (default 10, max 25)
leadiq_search_people_preview # Check whether LeadIQ has a work email or phone number for a person without consuming credits. Use this before calling Search People to avoid wasting credits on contacts with no data. 7 params

Check whether LeadIQ has a work email or phone number for a person without consuming credits. Use this before calling Search People to avoid wasting credits on contacts with no data.

Name Type Required Description
linkedin_url string optional LinkedIn profile URL of the person
email string optional Known email address of the person
full_name string optional Full name of the person
first_name string optional First name of the person
last_name string optional Last name of the person
company_name string optional Current company name of the person
company_domain string optional Domain of the person's current company
leadiq_submit_person_feedback # Report incorrect or outdated contact data back to LeadIQ to improve data quality. Mark an email or phone as correct or invalid, and optionally provide a correction or bounce reason. 9 params

Report incorrect or outdated contact data back to LeadIQ to improve data quality. Mark an email or phone as correct or invalid, and optionally provide a correction or bounce reason.

Name Type Required Description
value string required The contact info value being reported (email address or phone number)
status string optional Whether the contact info is correct or invalid
type string optional Type of contact information being reported
person_id string optional LeadIQ person ID associated with the contact info
linkedin_url string optional LinkedIn URL of the person the feedback is about
company_name string optional Company name for additional context
company_domain string optional Company domain for additional context
title string optional Job title of the person at the time the contact info was used
invalid_reason string optional Specific bounce or invalidity reason code (for invalid emails)