SSpiderIQ
SSpiderIQ

Docs / api-reference/lead-search

Lead Search

1 endpoints from the published OpenAPI import.

POST/api/v1/lead-search

Submit a single-location lead search

Run the full lead generation pipeline for a single search query. SpiderMaps → SpiderSite → SpiderVerify → VayaPin. Returns a job_id — poll /api/v1/jobs/{job_id}/results for the aggregated pipeline output. Unlike campaigns (which fan out across a country), this triggers one WindMill flow for one location. Disable pipeline stages via the workflow field in the request body.

Try it

Examples

cURL
curl -X POST 'https://spideriq.ai/api/v1/lead-search' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "search_query": "string",
  "country_code": "US",
  "location": "string",
  "max_results": 20,
  "lang": "en",
  "workflow": {
    "spidersite": {
      "enabled": false,
      "mode": {},
      "max_pages": 25,
      "crawl_strategy": "bestfirst",
      "target_pages": [
        "contact",
        "about",
        "team",
        "news",
        "blog"
      ],
      "enable_spa": true,
      "spa_timeout": 30,
      "extract_team": false,
      "extract_company_info": false,
      "extract_pain_points": false,
      "product_description": {},
      "icp_description": {},
      "compendium": {},
      "timeout": 30
    },
    "spiderverify": {
      "enabled": false,
      "check_gravatar": false,
      "check_dnsbl": false,
      "smtp_timeout_secs": 45,
      "max_emails_per_business": 10
    },
    "vayapin": {
      "enabled": false
    },
    "social_media_enrichment": {
      "enabled": true
    },
    "smartlead": {
      "enabled": false,
      "connection_id": {},
      "remote_campaign_id": {},
      "remote_campaign_name": {},
      "limit": {},
      "only_with_vayapin_seo": false,
      "only_with_vayapin_pin": false,
      "field_map": {}
    },
    "filter_social_media": true,
    "filter_review_sites": true,
    "filter_directories": true,
    "filter_maps": true
  },
  "test": false
}'
Python
import httpx

resp = httpx.post(
    "https://spideriq.ai/api/v1/lead-search",
    headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
    json={"search_query": "string", "country_code": "US", "location": "string", "max_results": 20, "lang": "en", "workflow": {"spidersite": {"enabled": false, "mode": {}, "max_pages": 25, "crawl_strategy": "bestfirst", "target_pages": ["contact", "about", "team", "news", "blog"], "enable_spa": true, "spa_timeout": 30, "extract_team": false, "extract_company_info": false, "extract_pain_points": false, "product_description": {}, "icp_description": {}, "compendium": {}, "timeout": 30}, "spiderverify": {"enabled": false, "check_gravatar": false, "check_dnsbl": false, "smtp_timeout_secs": 45, "max_emails_per_business": 10}, "vayapin": {"enabled": false}, "social_media_enrichment": {"enabled": true}, "smartlead": {"enabled": false, "connection_id": {}, "remote_campaign_id": {}, "remote_campaign_name": {}, "limit": {}, "only_with_vayapin_seo": false, "only_with_vayapin_pin": false, "field_map": {}}, "filter_social_media": true, "filter_review_sites": true, "filter_directories": true, "filter_maps": true}, "test": false},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/lead-search", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>", "Content-Type": "application/json" },
  body: JSON.stringify({"search_query": "string", "country_code": "US", "location": "string", "max_results": 20, "lang": "en", "workflow": {"spidersite": {"enabled": false, "mode": {}, "max_pages": 25, "crawl_strategy": "bestfirst", "target_pages": ["contact", "about", "team", "news", "blog"], "enable_spa": true, "spa_timeout": 30, "extract_team": false, "extract_company_info": false, "extract_pain_points": false, "product_description": {}, "icp_description": {}, "compendium": {}, "timeout": 30}, "spiderverify": {"enabled": false, "check_gravatar": false, "check_dnsbl": false, "smtp_timeout_secs": 45, "max_emails_per_business": 10}, "vayapin": {"enabled": false}, "social_media_enrichment": {"enabled": true}, "smartlead": {"enabled": false, "connection_id": {}, "remote_campaign_id": {}, "remote_campaign_name": {}, "limit": {}, "only_with_vayapin_seo": false, "only_with_vayapin_pin": false, "field_map": {}}, "filter_social_media": true, "filter_review_sites": true, "filter_directories": true, "filter_maps": true}, "test": false})
});
const data = await resp.json();
console.log(data);
Go
package main

import (
	"net/http"
	"strings"
)

func main() {
	body := strings.NewReader(`{"search_query": "string", "country_code": "US", "location": "string", "max_results": 20, "lang": "en", "workflow": {"spidersite": {"enabled": false, "mode": {}, "max_pages": 25, "crawl_strategy": "bestfirst", "target_pages": ["contact", "about", "team", "news", "blog"], "enable_spa": true, "spa_timeout": 30, "extract_team": false, "extract_company_info": false, "extract_pain_points": false, "product_description": {}, "icp_description": {}, "compendium": {}, "timeout": 30}, "spiderverify": {"enabled": false, "check_gravatar": false, "check_dnsbl": false, "smtp_timeout_secs": 45, "max_emails_per_business": 10}, "vayapin": {"enabled": false}, "social_media_enrichment": {"enabled": true}, "smartlead": {"enabled": false, "connection_id": {}, "remote_campaign_id": {}, "remote_campaign_name": {}, "limit": {}, "only_with_vayapin_seo": false, "only_with_vayapin_pin": false, "field_map": {}}, "filter_social_media": true, "filter_review_sites": true, "filter_directories": true, "filter_maps": true}, "test": false}`)
	req, _ := http.NewRequest("POST", "https://spideriq.ai/api/v1/lead-search", body)
	req.Header.Set("Authorization", "Bearer <token>")
	req.Header.Set("Content-Type", "application/json")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

StatusDescription
201Job created and queued successfully
401Authentication failed
403Client account is inactive
422Validation error - Invalid payload
429Rate limit exceeded
500Internal server error
503Queue service unavailable