Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

ai.spideriq/leads

NPM · @SPIDERIQ/MCP-LEADS · SCANNED AUG 3

SpiderIQ Leads: lead-gen MCP (jobs, campaigns, IDAP, Maps, People, Verify, company intel, spiderPR)

Available components

+41 this week 60 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security87
  • No malware found by supply-chain analysis.Pass
  • Only part of the dependency tree could be resolved (100 of 104), so this covers what we could see, not the whole tree.Partial
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (100 of 104), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency19
  • Repository check failed: the declared repository URL returned HTTP 404. See how to fix → View diagnostics → Fail
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 7 days ago).Pass
  • Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability57
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 9196 tokens (~180/item across 51 items; 51 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage99
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 98% of tool parameters carry a description.Partial
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · @spideriq/mcp-leads

# add to Claude Code
claude mcp add ai-spideriq-leads -- npx -y @spideriq/mcp-leads
# add to Codex CLI
codex mcp add ai-spideriq-leads -- npx -y @spideriq/mcp-leads
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ai-spideriq-leads": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@spideriq/mcp-leads"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add ai-spideriq-leads --command npx --arg -y --arg @spideriq/mcp-leads
# ~/.hermes/config.yaml
mcp_servers:
  ai-spideriq-leads:
    command: "npx"
    args: ["-y", "@spideriq/mcp-leads"]
// mcp.json
{
  "mcpServers": {
    "ai-spideriq-leads": {
      "command": "npx",
      "args": [
        "-y",
        "@spideriq/mcp-leads"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 2 Aug 26 +47
    • Provenance: unverified → fail security
    • Install scripts: unverified → pass security
    • Known CVEs: unverified → partial security
    • Malware scan: unverified → pass security
    • Tool coverage: 100 → unverified functional
    • License: unverified → pass functional
    • Maintenance: unverified → pass functional
    • MCP protocol: unverified → pass functional
    • Stability: unverified → 0.23 functional
    • Schema quality: unverified → good functional
    • Dependency health: unverified → partial functional
    • Licence: MIT functional
  • 1 Aug 26 +13
    • Tool coverage: unverified → 100 functional
  • 31 Jul 26 −19
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 27 Jul 26 19

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Analysed npm/@spideriq/[email protected]

Provenance none

Ecosystem: npm · Outcome: none

Dependencies 100 packages

100 packages in the resolved dependency tree · 100 deprecated · 29 stale · 1 without a linked repository.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 51 exposed · ~9,196 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
cancel_job ~40

Cancel a pending or queued job.

NameTypeReqDescription
job_idstringyesJob ID to cancel
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

capture_landing_page ~223

Capture a landing page — screenshots, HTML bundle, and AI-extracted marketing content. Useful for competitive analysis, ad tracking, and archiving landing pages. This is a convenience wrapper for submit_job with type=spiderLanding.

NameTypeReqDescription
ad_idstringFacebook Ad ID for correlation with ad library data
capture_full_pagebooleanCapture full-page screenshot (default: true)
capture_html_bundlebooleanDownload self-contained HTML (default: true)
capture_screenshotbooleanCapture above-fold screenshot (default: true)
dismiss_popupsbooleanDismiss cookie/popup banners via AI (default: true)
extract_contentbooleanAI-extract marketing content (default: true)
testbooleanRoute to test queue (default: false)
timeout_secondsnumberMax capture time 10-300 seconds (default: 60)
urlstringyesLanding page URL to capture
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

check_access_status ~152

Check the status of a PAT access request. Returns 'pending', 'active', 'denied', 'expired', or 'revoked' (matches the backend PATRequestStatus enum). Once status==='active', the token is saved to ~/.spideriq/credentials.json automatically. Multi-brand approvals save one entry per workspace under client_id, with the first aliased as 'default' so existing tools (upload_local_file, etc.) keep working without --workspace.

NameTypeReqDescription
api_urlstringAPI URL (default: https://spideriq.ai)
poll_tokenstringyesPoll token from request_access
request_idstringyesRequest ID from request_access

No output schema declared.

No examples provided.

company_intel_batch ~150

Research multiple companies in batch (max 50). Same pipeline as single but processes all companies in parallel. Returns job_id to poll.

NameTypeReqDescription
companiesarrayyesArray of companies to research. Each: { company_name (required), city?, country_code?, domain?, linkedin_url? }
configobjectAdvanced pipeline config applied to all companies
max_employeesnumberMax employees per company (1-2000, default 20)
profile_modestringEmployee detail level for all companies: 'short', 'full', 'full_email'. Default: short
testbooleanRoute to test queue
workspacestring

No output schema declared.

No examples provided.

company_intel_research ~275

Research a single company through the full intelligence pipeline: Perplexity discovery → website crawl → company registry → email verification → people/LinkedIn. Returns job_id to poll for results.

NameTypeReqDescription
citystringCity/location hint (helps discovery)
company_namestringyesCompany name to research (required)
configobjectAdvanced pipeline config — toggle steps: { discovery: { enabled }, site: { enabled, mode, max_pages }, company_data: { enabled }, verify: { enabled }, people: { enabled } }
country_codestringISO 2-letter country code (e.g. "US", "DE")
domainstringKnown domain — skips Perplexity discovery step
linkedin_urlstringKnown LinkedIn company URL
max_employeesnumberMax employees to extract per company (1-2000, default 20)
profile_modestringEmployee detail level: 'short' = name+title+location ($4/1K), 'full' = +skills/education/experience ($8/1K), 'full_email' = +email discovery ($12/1K). Default: short
testbooleanRoute to test queue
workspacestring

No output schema declared.

No examples provided.

continue_campaign ~40

Resume a stopped or paused campaign.

NameTypeReqDescription
campaign_idstringyesCampaign ID to resume
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

create_campaign ~578

Create a new multi-location scraping campaign. Campaigns orchestrate Google Maps searches across multiple locations with optional website scraping and email verification. The backend automatically selects the appropriate WindMill workflow: - Maps + Site + Verify: Full pipeline (default) - Maps + Site: Skip email verification - Maps only: Quick business search without site scraping Provide a search query, country code, and optionally a workflow config to control which steps run. SMARTLEAD EXPORT (push leads to an outreach campaign automatically): set workflow.smartlead = { enabled: true, connection_id, remote_campaign_id }. When enabled, the campaign's VERIFIED leads are pushed into that SmartLead campaign automatically when the run finishes (no separate push step). You MUST discover the two ids first: call list_outreach_connections (→ connection_id) then list_outreach_campaigns(connection_id) (→ remote_campaign_id). Those two tools live in the SpiderMail slice / kitchen-sink @spideriq/mcp. field_map is optional (backend defaults already map location + VayaPin pin_name). Only leads with a verified email are exported; set only_with_vayapin_seo:true to restrict to businesses that got a VayaPin SEO pin. SCOPING US ZIP CAMPAIGNS ("state = country"): the US is too large to scrape whole. To run a US ZIP campaign, scope it to ONE STATE: set filter = { mode: "regions", admin_regions: ["Texas"], include_postcodes: true }. Discover valid state names with list_regions(country_code="US") (or list_countries, which lists the 50 states as country-equivalent units). One state runs every ZIP in it as its own Maps search — list_regions returns each state's postcode_count so you can size it first. Scoping a postcode (ZIP) run to all of the US — or omitting the state — is rejected by the API (422, >10K location cap). Pick exactly one state per campaign.

NameTypeReqDescription
country_codestringyes2-letter ISO country code (e.g., "US", "DE", "IL")
filterobjectLocation filter configuration. For a US ZIP campaign, scope to ONE state: { mode: "regions", admin_regions: ["Texas"], include_postcodes: true }.
max_resultsnumberMax results per location (1-500, default: 100)
namestringCampaign name (auto-generated if not provided)
search_querystringyesWhat to search for (e.g., "restaurants", "dentists", "plumbers")
testbooleanRoute to test queue (default: false)
workflowobjectWorkflow configuration to control which pipeline steps run
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

create_video ~234

Stitch AI-generated video scenes into a final video with transitions and music. Supports portrait (9:16) and landscape (16:9), fade transitions, background music, and SpiderMedia upload. This is a convenience wrapper for submit_job with type=spiderVideo.

NameTypeReqDescription
aspect_ratiostringAspect ratio (default: 9:16 portrait)
music_urlstringBackground music URL (mp3, wav)
music_volumenumberMusic volume 0-1 (default: 0.3)
preprocessbooleanAuto-fix invalid formats with FFmpeg (default: false)
project_namestringyesOutput filename without extension
scenesarrayyesVideo scenes to stitch (1-50)
testbooleanRoute to test queue (default: false)
transition_framesnumberFade transition in frames (default: 15 = 0.5s at 30fps)
uploadbooleanUpload result to SpiderMedia (default: false)
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

delete_campaign ~82

Delete a campaign and all of its data. Irreversible. The campaign must be STOPPED first — this fails with a 409 if it still has active jobs. Call stop_campaign, wait for in-flight jobs to settle, then delete.

NameTypeReqDescription
campaign_idstringyesCampaign ID to delete
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

get_api_info ~33

Get information about the SpiderIQ API and your connection.

NameTypeReqDescription
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

get_auth_status ~33

Check if you are authenticated and get current user info.

NameTypeReqDescription
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

get_campaign_status ~95

Get detailed status and progress of a campaign. Returns: - Campaign configuration (query, country, workflow settings) - Progress: completed/failed/pending locations and percentage - Total businesses found - Which WindMill workflow is being used

NameTypeReqDescription
campaign_idstringyesCampaign ID to check
formatstringResponse format (default: json)
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

get_company_data ~296

Look up company data from public registries (US SEC EDGAR, UK Companies House, EU VIES VAT). Modes: - search: Search by company name (e.g., "Apple Inc" in US) - lookup: Look up by registry ID (e.g., CIK "0000320193" in US) - vat: Validate EU VAT number (e.g., "GB123456789") This is a convenience wrapper for submit_job with type=spiderCompanyData.

NameTypeReqDescription
countrystringCountry code ISO 3166-1 alpha-2 (US, GB, EU, etc.)
financials_modestringFinancials extraction method (UK only, default: auto)
identifierstringRegistry-specific company ID — CIK (US), Company Number (UK)
include_financialsbooleanExtract financial data from filings (UK only)
limitnumberMax results 1-100 (default: 10, search mode only)
modestringOperation mode (default: search)
namestringCompany name to search for (required for search mode)
testbooleanRoute to test queue (default: false)
vat_numberstringEU VAT number with country prefix (e.g., "GB123456789")
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

get_event_status ~35

Get event stream status — service health, active subscriptions, and whether your client is currently connected.

NameTypeReqDescription
workspacestring

No output schema declared.

No examples provided.

get_job_results ~57

Get the results of a completed job.

NameTypeReqDescription
formatstringResponse format (default: json)
job_idstringyesJob ID to get results for
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

get_job_status ~55

Get the current status of a job.

NameTypeReqDescription
formatstringResponse format (default: json)
job_idstringyesJob ID to check
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

get_queue_stats ~48

Get statistics about job queues (pending jobs, consumers, etc.).

NameTypeReqDescription
formatstringResponse format (default: json)
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

health_check ~51

Check if the SpiderIQ API is healthy and responsive.

NameTypeReqDescription
api_urlstringAPI URL (default: https://spideriq.ai)
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

idap_batch_fetch ~144

Batch fetch up to 100 resources by their idap:// refs. Accepts an array of ref strings (e.g., "idap://businesses/uuid1", "idap://emails/uuid2"). Returns results keyed by ref, plus errors for missing/invalid refs. Efficient for board views or CRM sync — one call instead of N individual fetches.

NameTypeReqDescription
fieldsstringComma-separated fields to return
includestringComma-separated related types to include
refsarrayyesArray of idap:// ref strings (max 100)
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

idap_delete_business ~724

🔴 DESTRUCTIVE — delete a business + cascade across per-tenant tables. IRREVERSIBLE. Hard-deletes the business row in norm_cli_<client>.businesses AND cascades to linked tables (pins, business_contacts, business_registry, company_registry, contacts, phones, domains, linkedin_profiles). Transactional — all-or-nothing. Audit row written to public.idap_deletions_audit in the same transaction. WHEN TO USE: - Surfacing a duplicate via idap_resolve_resource + manual review, then cleaning up the duplicate. - Tenant cleanup of stale/incorrect business records. - Cascading removal of contact/email/phone associations for a business. RECOMMENDED FLOW: 1. Resolve target with idap_resolve_resource (e.g. {resource_type: 'businesses', domain: 'example.com'}) → get the canonical business_id (UUID). 2. (Optional) idap_find_duplicates (D.1) to confirm this isn't unique-data destruction. 3. Call idap_delete_business with the resolved UUID + a short audit reason. ⚠️ DOES NOT TOUCH cs.vayapin.com. VayaPin pin pages are permanent per VayaPin §10. Response includes vayapin_pins_remain_external (boolean) + vayapin_pin_data_set_ids_orphaned (array). Tell the user about any remaining external URLs. ⚠️ DOES NOT CASCADE THE 'emails' TABLE. emails is a tenant-wide canonical store (UNIQUE on the email column) shared across businesses via business_contacts (M:N). Only the link row is removed; the email's verification metadata stays. Other businesses still reference the same email. WHAT AUTO-CASCADES (Postgres ON DELETE CASCADE): booking_flows, services — surfaced in response.auto_cascaded {table: count}. WHAT BLOCKS THE DELETE (returns 409 Conflict, never partial): bookings rows referencing this business or its contacts via ON DELETE NO ACTION FK. Response.detail.blocking_booking_ids lists up to 50 blocking IDs. Caller must re-point or delete those bookings before retrying. AUTH: Tenant-owner only — caller's client_id IS the tenant scope. No super-admin override in V1. Second DELETE on t…

NameTypeReqDescription
business_idstringyesUUID of the business to delete. Resolve alternate keys via idap_resolve_resource first.
reasonstringOptional free-text reason recorded in the audit log (max 500 chars). e.g. "duplicate of <other_uuid>".
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

idap_fetch_resource ~223

Fetch a single resource from the client's normalized data store. Returns the resource data with active flags and optional related resources. Use field projection (`fields`) to reduce token usage. Use `include` to fetch related data in one call (e.g., a business + its emails and phones). Resource types: businesses, domains, contacts, emails, phones, company_registry, linkedin_profiles, media. Example ref format: idap://businesses/550e8400-e29b-41d4-a716-446655440000

NameTypeReqDescription
fieldsstringComma-separated fields to return (projection). E.g., "name,domain,email"
includestringComma-separated related types to include. E.g., "emails,phones" for businesses
resource_idstringyesUUID of the resource
resource_typestringyesIDAP resource type: businesses, domains, contacts, emails, phones, company_registry, linkedin_profiles, media, pins
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

idap_find_duplicates ~379

Find duplicate resources sharing a common external key. Used in dedupe workflows before calling the (future) delete endpoint. Returns clusters where two or more resources share the same value for a whitelisted key. Each cluster has `count >= 2` (single-occurrence values are filtered out server-side). Whitelisted `key` values per `resource_type` (Wave D.1, 2026-05-24): - businesses → google_place_id, domain, phone_e164 (direct columns on businesses) vat, registration_number, lei, tax_id (joined via company_registry.business_id) Other resource types are not yet supported (returns 400 with the list of currently-supported types). Response shape: ``` { "resource_type": "businesses", "key": "google_place_id", "clusters": [ { "key_value": "ChIJ...", "count": 3, "resource_ids": ["uuid", "uuid", "uuid"] }, ... ], "total_clusters": N } ``` Default `limit` = 100; max = 500. Clusters are ordered by count DESC, then key_value ASC. Use this BEFORE the (forthcoming) DELETE endpoint to confirm which duplicates to remove.

NameTypeReqDescription
keystringyesClustering key. For businesses (Wave D.1): google_place_id, domain, phone_e164 (direct columns) or vat, registration_number, lei, tax_id (joined via company_registry).
limitintegerMaximum clusters to return (1..500). Default 100.
resource_typestringyesIDAP resource type: businesses, domains, contacts, emails, phones, company_registry, linkedin_profiles, media, pins
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

idap_list_resources ~311

List resources from the client's normalized data with filtering and cursor-based pagination. Supports incremental sync via `since` parameter — only returns resources modified after that timestamp. Use `flags` to filter (e.g., "qualified" for flagged-only, or "-rejected" to exclude rejected). Returns items array, cursor for next page, and has_more boolean.

NameTypeReqDescription
campaign_idstringFilter by campaign ID
cursorstringPagination cursor from previous response
fieldsstringComma-separated fields to return
flagsstringFilter by flags. "qualified" = must have flag. "-rejected" = exclude flag
includestringComma-separated related types to include
limitnumberMax results per page (1-500, default: 100)
orderstringSort order (default: desc)
resource_typestringyesIDAP resource type: businesses, domains, contacts, emails, phones, company_registry, linkedin_profiles, media, pins
sincestringISO 8601 datetime — only resources modified after this time
sortstringSort column (e.g., created_at, name)
sourcestringFilter by source worker (e.g., spiderMaps, spiderSite)
untilstringISO 8601 datetime — only resources modified before this time
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

idap_media ~160

Get the URL for an IDAP media resource (screenshot, photo, document). Returns a URL to the media proxy endpoint — does not return binary data. The URL supports: - ?thumb=true — 400px thumbnail - ?download=true — Content-Disposition: attachment - Conditional requests (If-None-Match, If-Modified-Since → 304) Use the URL in markdown, HTML, or pass it to other tools.

NameTypeReqDescription
downloadbooleanReturn download URL with Content-Disposition header (default: false)
media_idstringyesUUID of the media resource
thumbbooleanReturn 400px thumbnail URL (default: false)
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

idap_resolve_resource ~644

Resolve a single resource by external identifier instead of UUID. Use this when you have an external identifier (Google place_id, domain, email, VAT, LEI, etc.) and need the canonical IDAP record without first listing or searching. Accepted (resource_type, identifier) pairs — server enforces this allowlist: - businesses → place_id, domain pin_name, pin_data_set_id, account_id, pin_subscription_id (Wave D.1 — joined via pins.business_id) - domains → domain - emails → email - contacts → email, linkedin, twitter - linkedin_profiles → url - company_registry → vat, registration_number, lei, tax_id, source_id - pins → pin_name, pin_data_set_id, account_id, pin_subscription_id (IDAP PR 2) Wave D.1 (2026-05-24): the 4 VayaPin pin keys now also resolve a `businesses` row directly — the service joins through `pins.business_id` so you can look up a business by any of the pin identifiers without first resolving the pin and then the business. Exactly ONE identifier must be supplied — supplying two or zero returns a 400 envelope. Supplying an identifier that isn't valid for the resource_type returns a 400 envelope listing the allowed keys. Returns 404 if no row matches in the client's tenant scope. Added by IDAP PR 1 (2026-05-19); pins resource added by PR 2 (2026-05-24); businesses-by-pin-key joined lookup added by Wave D.1 (2026-05-24).

NameTypeReqDescription
account_idstringVayaPin account UUID (pins)
domainstringDomain name (businesses, domains)
emailstringEmail address (emails, contacts)
fieldsstringComma-separated field projection
includestringComma-separated related types to include
leistringLegal Entity Identifier (company_registry)
linkedinstringLinkedIn profile URL on a contact
pin_data_set_idstringVayaPin data set UUID (pins)
pin_namestringVayaPin PIN name e.g. "BB:TAPAS" (pins)
pin_subscription_idstringVayaPin subscription UUID (pins)
place_idstringGoogle Place ID (businesses)
registration_numberstringNational registration number (company_registry)
resource_typestringyesIDAP resource type: businesses, domains, contacts, emails, phones, company_registry, linkedin_profiles, media, pins
source_idstringRegistry source id (company_registry, dev/admin only)
tax_idstringNational tax id (company_registry)
twitterstringTwitter profile URL on a contact
urlstringLinkedIn URL (linkedin_profiles)
vatstringVAT number (company_registry)
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

idap_search ~176

Full-text search within a resource type. Uses PostgreSQL tsvector for relevance-ranked results. Search fields vary by type: - businesses: name, address, category - domains: domain, title - contacts: name, email, title - emails: address - phones: phone_number Returns the same format as idap_list_resources.

NameTypeReqDescription
fieldsstringComma-separated fields to return
flagsstringFilter by flags
limitnumberMax results (1-500, default: 20)
qstringyesSearch query string
resource_typestringyesIDAP resource type: businesses, domains, contacts, emails, phones, company_registry, linkedin_profiles, media, pins
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

idap_stats ~105

Get aggregate statistics for a resource type. Returns total count, flag distribution (how many resources have each flag), source breakdown (which workers generated the data), and last-24h activity counts. Useful for dashboards, health checks, and understanding data coverage.

NameTypeReqDescription
resource_typestringyesIDAP resource type: businesses, domains, contacts, emails, phones, company_registry, linkedin_profiles, media, pins
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

idap_write_flags ~253

Add or remove flags on a resource. Flags are bidirectional metadata for lead qualification, workflow control, and agent coordination. Common flags: qualified, priority, rejected, do_not_contact, duplicate, reviewed, needs_enrichment. Behavioral flags: - "rejected" → excluded from default list responses - "do_not_contact" → respected by outreach workers - "duplicate" → triggers FuzzIQ merge Flags are idempotent (adding an existing flag is a no-op). Removes are soft-deletes (history preserved).

NameTypeReqDescription
addarrayFlags to add (e.g., ["qualified", "priority"])
flagged_bystringWho is flagging (e.g., "agent:claude-code", "user:martin")
reasonstringReason for flagging
removearrayFlags to remove (e.g., ["needs_enrichment"])
resource_idstringyesUUID of the resource to flag
resource_typestringyesIDAP resource type: businesses, domains, contacts, emails, phones, company_registry, linkedin_profiles, media, pins
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

lead_search ~215

Find leads for a search query in a location. Full pipeline: Google Maps → website crawl → email verification → VayaPin profile. Returns job_id to poll for results via get_job_results.

NameTypeReqDescription
country_codestringISO 2-letter country code (default: "US")
langstringLanguage code for results (default: "en")
locationstringLocation to search in (e.g. "Berlin", "Boston, MA"). If omitted, include location in search_query.
max_resultsnumberMax businesses to find (default: 20, max: 500)
search_querystringyesWhat to search for (e.g. "restaurants", "plumbers", "software companies")
testbooleanRoute to test queue
workflowobjectPipeline config: { spidersite: { enabled, mode }, spiderverify: { enabled }, vayapin: { enabled } }. Defaults to full pipeline.
workspacestring

No output schema declared.

No examples provided.

list_campaigns ~100

List your campaigns with optional status filtering.

NameTypeReqDescription
country_codestringFilter by country code
formatstringResponse format (default: json)
pagenumberPage number (default: 1)
page_sizenumberResults per page (1-100, default: 20)
statusstringFilter by campaign status
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

list_countries ~88

List available countries (with location counts) you can target with a campaign. To target the US by ZIP, pick a STATE instead (the US is too large to scrape whole) — use list_regions(country_code="US"), or list_selectable_units which returns the 50 US states as country-equivalent units alongside real countries.

NameTypeReqDescription
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

list_jobs ~93

List your submitted jobs with optional filtering.

NameTypeReqDescription
formatstringResponse format (default: json)
pagenumberPage number (default: 1)
per_pagenumberResults per page (default: 20)
statusstringFilter by status
typestringFilter by job type
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

list_regions ~122

List the admin regions (US states / provinces) of a country, each with its city_count and postcode_count. This is how you discover valid state names for a US ZIP campaign: pick ONE state, then create_campaign with filter { mode: "regions", admin_regions: [state], include_postcodes: true }. A state's postcode_count is roughly how many Maps searches the ZIP run fans out into.

NameTypeReqDescription
country_codestringyes2-letter ISO country code, e.g. "US".
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

list_selectable_units ~166

List selectable geo units for a typeahead picker — countries plus, by default, the 50 US states as top-level "country-equivalent" units (so you target "Florida" the same way as "Germany"). Each unit has unit_id ("DE" or "US:Florida"), label, and kind ("country"|"state"). With states_as_units=true (default), "all of US" is intentionally NOT selectable (a US ZIP campaign must scope to one state). Set states_as_units=false to get plain countries (US as a whole) for non-ZIP use.

NameTypeReqDescription
states_as_unitsbooleanWhen true (default), replace the US with its 50 states as top-level units.
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

list_workspaces ~19

List all configured workspaces and their authentication status.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

logout ~25

Remove stored authentication credentials.

NameTypeReqDescription
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

pr_get_result ~93

Get the SpiderPR wire-distribution result for a job — provider order id, distribution status (queued|submitted|published|failed), published URL, and wire report URL. Convenience wrapper for get_job_results.

NameTypeReqDescription
formatstringResponse format (default: json).
job_idstringyesSpiderPR job ID to get results for.
workspacestringWorkspace name (default: default).

No output schema declared.

No examples provided.

pr_submit ~324

Submit a press release to the wire for distribution (SpiderPR). You author the release (title + body, plus optional summary/category/tags/contact); the job is dispatched to the SpiderPR wire worker, which renders it to wire-ready HTML, submits it to the provider, and polls until it is published. This is a convenience wrapper for submit_job with type=spiderPR. Poll get_job_results (or pr_get_result) for the {provider_order_id, status, published_url, wire_report_url}. Status flows queued → submitted → published (or failed).

NameTypeReqDescription
bodystringyesFull body of the release, plain text or HTML (required, max 50000 chars).
categorystringRelease category/topic (e.g. 'Technology', 'Finance').
contactobjectMedia/press contact carried on the release (all fields optional).
formatstringResponse format (default: json).
prioritynumberJob priority 0 (lowest) to 10 (highest). Default 5.
scheduled_release_atstringRequested wire release time (ISO 8601). Omit for ASAP.
summarystringShort summary / subheadline of the release.
tagsarrayKeyword tags for the release (max 25).
testbooleanRoute to the test queue (default: false).
titlestringyesHeadline of the press release (required, max 300 chars).
workspacestringWorkspace name (default: default).

No output schema declared.

No examples provided.

request_access ~157

Request access to SpiderIQ API. This sends an approval email to the admin. After calling this, use check_access_status to poll for approval. Once approved, the token is automatically saved for subsequent API calls.

NameTypeReqDescription
api_urlstringAPI URL (default: https://spideriq.ai)
emailstringyesAdmin email address (the person who will approve access)
projectstringProject name (shown in approval email)
recover_asstringRecover an existing agent by its OPVS address (username). Only takes effect when NO PAT is stored — a held PAT always rotates the SAME account.
scopesarrayRequested permission scopes (default: jobs:submit, jobs:read)

No output schema declared.

No examples provided.

retry_campaign_location ~157

Retry one location in a campaign (re-dispatches worker jobs). Use the location's `id` from list_campaign_jobs (campaign_locations.id), NOT the job_id. - retry_mode "full": re-run the whole workflow from SpiderMaps - retry_mode "site": keep Maps results, re-run SpiderSite + SpiderVerify - retry_mode "verify": keep Site results, re-run SpiderVerify only Max 3 retries per location.

NameTypeReqDescription
campaign_idstringyesCampaign ID
location_idnumberyescampaign_locations.id (the `id` from list_campaign_jobs)
retry_modestringRetry depth (default: full)
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

retry_failed_locations ~98

Retry every failed location in a campaign (up to max_locations, default 10). Locations that already hit the 3-retry cap are skipped, not errored. Useful after a campaign finishes with some failed locations.

NameTypeReqDescription
campaign_idstringyesCampaign ID
max_locationsnumberMax locations to retry, 1-50 (default: 10)
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

scrape_website ~128

Scrape a website to extract contact information, social links, and content. This is a convenience wrapper for submit_job with type=spiderSite.

NameTypeReqDescription
extract_emailsbooleanExtract email addresses (default: true)
extract_phonesbooleanExtract phone numbers (default: true)
extract_socialbooleanExtract social media links (default: true)
max_pagesnumberMaximum pages to crawl (default: 10)
urlstringyesWebsite URL to scrape
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

search_google_maps ~79

Search Google Maps for businesses. This is a convenience wrapper for submit_job with type=spiderMaps.

NameTypeReqDescription
max_resultsnumberMaximum results to return (default: 20)
search_querystringyesSearch query (e.g., "restaurants in New York")
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

search_people ~314

Search for people on LinkedIn — profile lookup, search, research, or company employee extraction. Modes: - profile: Get a single LinkedIn profile by URL - search: Search people by natural language query (e.g., "CTO fintech Israel") - research: Deep research on a LinkedIn profile - company: Extract employees from a LinkedIn company page This is a convenience wrapper for submit_job with type=spiderPeople.

NameTypeReqDescription
company_urlstringLinkedIn company URL (required for company mode)
icp_descriptionstringIdeal Customer Profile for lead scoring
linkedin_urlstringLinkedIn profile URL (required for profile/research modes)
max_employeesnumberMax employees to extract 1-2000 (default: 100)
modestringyesOperation mode
person_namestringPerson name (optional, extracted from LinkedIn if not provided)
product_descriptionstringYour product description for lead scoring
profile_modestringEmployee detail level: short ($4/1K), full ($8/1K), full_email ($12/1K)
search_limitnumberMax profiles in search 1-50 (default: 10)
search_querystringNatural language search query (required for search mode)
testbooleanRoute to test queue (default: false)
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

stop_campaign ~46

Stop an active campaign. Can be resumed later with continue_campaign.

NameTypeReqDescription
campaign_idstringyesCampaign ID to stop
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

submit_job ~254

Submit a new scraping job to SpiderIQ. Available job types: - spiderSite: Scrape website content and extract contact info - spiderMaps: Search Google Maps for businesses - spiderMapsEnrich: Enrich Google Maps place with details - spiderVerify: Verify email addresses - spiderPeople: Find people information - spiderPhone: Extract phone-related data - spiderFacebookPage: Scrape Facebook pages - spiderPublicInstagram: Scrape public Instagram profiles - spiderPublicLinkedin: Scrape public LinkedIn profiles - spiderLanding: Capture landing page screenshots - spiderVideo: Generate video content - spiderMail: Send emails - spiderCompanyData: Research company information - spiderVayapin: VayaPin export - spiderSocial: Social Media Enrichment — recover a missing email/phone/website/socials for one business from its social handles Each job type requires different payload fields. See API documentation for details.

NameTypeReqDescription
formatstringResponse format (default: json)
payloadobjectyesJob payload (varies by job type)
typestringyesJob type to submit
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

submit_social_enrichment ~521

Recover a missing email / phone / real website / social links for ONE business from its public social handles (Social Media Enrichment). Given the business's known social handles (Facebook preferred, then Instagram) and optionally a single social-only website (linktr.ee / facebook / instagram URL), the job recovers whatever contact info it can and folds it in additively (never overwrites what you passed). If the business already has a usable email, the job self-skips (`has_email`) — recovery is only spent where it's needed. Requires the account's **Social Media Enrichment** plan to be enabled (entitlement-gated). Provide at least one social handle or a social-only website, or the job self-skips (`no_social_handle`). This is a convenience wrapper for submit_job with type=spiderSocial. Poll get_job_results for the recovered {email, phone, website, socials} — or the typed skip reason.

NameTypeReqDescription
business_namestringBusiness name (context only).
campaign_idstringCampaign context — scopes the per-campaign usage cap. Usually omitted for standalone submissions.
country_codestringISO-2 country code, e.g. "US", "DE" (context only).
emailstringAn email already known for the business. If present, the job self-skips (has_email).
facebookstringFacebook page URL or handle (preferred source).
formatstringResponse format (default: json).
instagramstringInstagram profile URL or handle.
linkedinstringLinkedIn page URL or handle.
phonestringA phone already known for the business (folded, never overwritten).
place_idstringStable business identifier (Google place_id). Used as the exactly-once recovery key.
social_mediaobjectAlternative to the individual handle fields: a map of {platform: url|handle}, e.g. {"facebook": "https://facebook.com/acme", "instagram": "acme"}. Merged with any individual handle fields above.
testbooleanRoute to the test queue (default: false).
tiktokstringTikTok profile URL or handle.
twitterstringTwitter/X profile URL or handle.
websitestringA single social-only website (linktr.ee / facebook / instagram URL), if known.
workspacestringWorkspace name (default: default).

No output schema declared.

No examples provided.

submit_vayapin ~322

Create a VayaPin business profile from enriched data. Requires business basics (name, country, coordinates) and website content (markdown URL or direct content). This is a convenience wrapper for submit_job with type=spiderVayapin.

NameTypeReqDescription
business_addressstringFull business address
business_namestringyesBusiness name for the VayaPin profile
business_phonestringBusiness phone number
country_codestringyes2-letter ISO country code (e.g., "DK", "US", "DE")
domainstringWebsite domain (e.g., "example.com")
emails_verifiedarrayVerified emails from SpiderVerify [{email, status, source}]
facebookstringFacebook page URL
gmaps_linkstringGoogle Maps URL
instagramstringInstagram profile URL
latitudenumberyesLatitude from Google Maps
linkedinstringLinkedIn page URL
logostringLogo image URL
longitudenumberyesLongitude from Google Maps
markdown_compendiumstringDirect markdown content (alternative to markdown_url)
markdown_urlstringURL to crawled website markdown file (from SpiderSite/SpiderMedia)
original_websitestringOriginal website URL
testbooleanRoute to test queue (default: false)
twitterstringTwitter/X profile URL
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.

subscribe_events ~99

Subscribe to real-time job events (SSE). Opens a short-lived connection and returns a buffer of recent events. Event types: job.queued, job.started, job.completed, job.failed, connected.

NameTypeReqDescription
duration_secondsnumberHow long to listen for events (default: 5, max: 30)
max_eventsnumberMax events to collect before returning (default: 50)
workspacestring

No output schema declared.

No examples provided.

update_campaign ~123

Update a campaign's configuration. Workflow config changes are merged with existing settings. Use this to change the search query, max results, or toggle workflow steps (site scraping, email verification) on an active campaign.

NameTypeReqDescription
campaign_idstringyesCampaign ID to update
max_resultsnumberNew max results per location
namestringNew campaign name
search_querystringNew search query
workflowobjectUpdated workflow configuration (merged with existing)
workspacestringWorkspace name (default: default)

No output schema declared.

No examples provided.