Platform Dashboard
Account snapshot · API health · recent activity
All systems operational
Account Overview
Plan
Guest
Current subscription
Web Credits Used
0 / 50
API Credits Used
0 / 0
API Health
Optimal
Latency: 42ms
Global Developer Credentials
Use this key to authenticate all platform tools via REST or WebSocket.
sk-••••••••••••••••••••••••••••••••
Quick Launch Tools
Maps Scraper
Maps Reviews
Facebook Page
Facebook Ads
YouTube Scraper
Reddit Scraper
TikTok Scraper
Twitter / X Scraper
LinkedIn Scraper
Email Verifier
YouTube DL
Instagram DL
TikTok DL
Snapchat DL
Actor runs
View all runs
Status Actor Task Results Started Duration
Loading runs…
Google Maps Scraper
Extract B2B leads — name, phone, email, website & more
Extraction Parameters
Developer Reference
cURL
Node.js
Python
Swift
Kotlin
Java
Flutter
curl -X POST "/api/scrape" \
  -H "X-API-Key: " \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "50 lawyers in NYC",
    "max_results": 50,
    "deep_scan": false
  }'
const axios = require('axios');

axios.post('/api/scrape', {
  prompt: '50 lawyers in NYC',
  max_results: 50,
  deep_scan: false
}, {
  headers: {
    'X-API-Key': '',
    'Content-Type': 'application/json'
  }
}).then(res => console.log(res.data));
import requests

response = requests.post(
    '/api/scrape',
    headers={
        'X-API-Key': '',
        'Content-Type': 'application/json'
    },
    json={
        'prompt': '50 lawyers in NYC',
        'max_results': 50,
        'deep_scan': False
    }
)
print(response.json())
import Foundation

let payload: [String: Any] = [
  "prompt": "50 lawyers in NYC",
  "max_results": 50,
  "deep_scan": false
]
var req = URLRequest(url: URL(string: "/api/scrape")!)
req.httpMethod = "POST"
req.setValue("", forHTTPHeaderField: "X-API-Key")
req.setValue("application/json", forHTTPHeaderField: "Content-Type")
req.httpBody = try? JSONSerialization.data(withJSONObject: payload)
val client = OkHttpClient()
val json = """
  {
    "prompt": "50 lawyers in NYC",
    "max_results": 50,
    "deep_scan": false
  }
""".trimIndent()
val body = json.toRequestBody("application/json".toMediaType())
val request = Request.Builder()
  .url("/api/scrape")
  .addHeader("X-API-Key", "")
  .post(body)
  .build()
OkHttpClient client = new OkHttpClient();
String json = "{\"prompt\":\"50 lawyers in NYC\","
  + "\"max_results\":50,"
  + "\"deep_scan\":false}";
RequestBody body = RequestBody.create(json, MediaType.get("application/json"));
Request request = new Request.Builder()
  .url("/api/scrape")
  .addHeader("X-API-Key", "")
  .post(body)
  .build();
import 'package:http/http.dart' as http;
import 'dart:convert';

final resp = await http.post(
  Uri.parse('/api/scrape'),
  headers: {
    'X-API-Key': '',
    'Content-Type': 'application/json',
  },
  body: jsonEncode({
    'prompt': '50 lawyers in NYC',
    'max_results': 50,
    'deep_scan': false,
  }),
);
Status Run ID Leads Found Started At Actions
No runs found for this tool

Start your first scrape to see the results appear here in real-time.

API STATUS
OPERATIONAL
AVG LATENCY
42ms
PROXY UPLINK
100% SECURE
Extraction Telemetry

The extraction engine is currently connected to Global Fleet Nodes. All requests are proxied through residential IPs to ensure maximum reliability and bypass rate limits.

Initializing…
0 Leads
# Business Location Category Rating Contact Info Status
Searching Google Maps...
My Workspaces
Manage your leads organized by scrape folders.

Loading…

Introduction

The LeadGen AI REST API lets you programmatically launch scraping jobs, poll for results, and download leads. Authenticate every request with your personal API key shown below.

Your API Key
BASE URL

Plan Limits

Limits are set by the admin and apply to every run. Your current plan is highlighted.

Loading plan limits…

POST /api/scrape

Starts a new scraping job. Returns a job_id you can use to poll for status or connect via WebSocket for real-time updates.

ParameterDescription
prompt
string
Natural language request, e.g. "Coffee shops in Dubai with >4 stars".
query
string
Direct search query (used if prompt is empty).
max_results
integer
Cap on leads to collect. Default: 100.
deep_scan
boolean
Interactive Configuration
cURL
Node.js
Python
Swift
Kotlin
Java
Flutter
curl -X POST "/api/scrape" \
  -H "X-API-Key: " \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Plumbers in Austin TX",
    "max_results": 50,
    "deep_scan": false
  }'
const axios = require('axios');

axios.post('/api/scrape', {
    prompt: 'Plumbers in Austin TX',
    max_results: 50,
    deep_scan: false
}, {
    headers: { 'X-API-Key': '' }
}).then(res => console.log(res.data));
import requests

url = "/api/scrape"
headers = { "X-API-Key": "", "Content-Type": "application/json" }
payload = {
    "prompt": "Plumbers in Austin TX",
    "max_results": 50,
    "deep_scan": False
}

response = requests.post(url, headers=headers, json=payload)
print(response.json())
import Foundation
let url = URL(string: "/api/scrape")!
var req = URLRequest(url: url)
req.httpMethod = "POST"
req.addValue("", forHTTPHeaderField: "X-API-Key")
req.httpBody = // ... JSON body ...
val client = OkHttpClient()
val body = "{\\"prompt\\":\\"...\\"}".toRequestBody("application/json".toMediaType())
val request = Request.Builder()
  .url("/api/scrape")
  .addHeader("X-API-Key", "")
  .post(body).build()
OkHttpClient client = new OkHttpClient();
RequestBody body = RequestBody.create("...", MediaType.get("application/json"));
Request request = new Request.Builder()
  .url("/api/scrape")
  .addHeader("X-API-Key", "")
  .post(body).build();
import 'package:http/http.dart' as http;
final resp = await http.post(
  Uri.parse('/api/scrape'),
  headers: {'X-API-Key': ''},
  body: {'prompt': '...'}
);
ParameterDescription
webhook_url
string
POST callback URL when the job completes (for n8n / automation).

GET /api/jobs

Returns a list of all scraping jobs associated with your API key, ordered newest first.

cURL
Python
Node.js
curl "/api/jobs" \
  -H "X-API-Key: "
import requests
resp = requests.get(
    "/api/jobs",
    headers={"X-API-Key": ""}
)
print(resp.json())
const res = await fetch('/api/jobs', {
  headers: { 'X-API-Key': '' }
});
console.log(await res.json());

GET /api/jobs/{job_id}/results

Fetch all leads collected for a completed job.

cURL
curl "/api/jobs/JOB_ID/results" \
  -H "X-API-Key: "

GET /api/download/{job_id}/{format}

Download leads as a file. format can be csv, xlsx, or json.

cURL
curl "/api/download/JOB_ID/csv?api_key=" \
  -o leads.csv

WebSocket (Real-time)

Connect to the WebSocket to receive leads as they are scraped, without polling.

JavaScript
const ws = new WebSocket('wss://YOUR_HOST/ws/JOB_ID');
ws.onmessage = (e) => {
  const msg = JSON.parse(e.data);
  if (msg.type === 'lead')   console.log('New lead:', msg.data);
  if (msg.type === 'done')   console.log('Complete:', msg.records, 'leads');
  if (msg.type === 'error')  console.error('Error:', msg.message);
};
Facebook Page Scraper
Extract emails, phones & websites from Facebook pages
Input Configuration
Developer Reference
cURL
Python
Node.js
curl -X POST "/api/facebook-page/scrape" \
  -H "X-API-Key: " \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://facebook.com/zuck"
  }'
import requests

response = requests.post(
    '/api/facebook-page/scrape',
    headers={
        'X-API-Key': '',
        'Content-Type': 'application/json'
    },
    json={'url': 'https://facebook.com/zuck'}
)
print(response.json())
const axios = require('axios');

axios.post('/api/facebook-page/scrape', {
  url: 'https://facebook.com/zuck'
}, {
  headers: {
    'X-API-Key': '',
    'Content-Type': 'application/json'
  }
}).then(res => console.log(res.data));
Status Run ID Leads Found Started At Actions
No runs found
API STATUS
OPERATIONAL
FB LINK
STABLE
HEALTH
100%
Facebook Ad Library
Scrape Meta ad creatives, spend data & targeting info
Input Configuration
Developer Reference
cURL
Python
Node.js
curl -X POST "/api/facebook-ads/search" \
  -H "X-API-Key: " \
  -H "Content-Type: application/json" \
  -d '{
    "query": "fitness supplements",
    "country": "US",
    "ad_type": "ALL",
    "status": "active",
    "max_results": 20
  }'
import requests

response = requests.post(
    '/api/facebook-ads/search',
    headers={
        'X-API-Key': '',
        'Content-Type': 'application/json'
    },
    json={
        'query': 'fitness supplements',
        'country': 'US',
        'ad_type': 'ALL',
        'status': 'active',
        'max_results': 20
    }
)
print(response.json())
const axios = require('axios');

axios.post('/api/facebook-ads/search', {
  query: 'fitness supplements',
  country: 'US',
  ad_type: 'ALL',
  status: 'active',
  max_results: 20
}, {
  headers: {
    'X-API-Key': '',
    'Content-Type': 'application/json'
  }
}).then(res => console.log(res.data));
StatusRun IDLeads FoundStarted AtActions

No runs found.

API STATUS
OPERATIONAL
ADS INDEX
ACTIVE
SCRAPE HEALTH
EXCELLENT
YouTube Intelligence
Channel stats, video data & competitor analysis
Input Configuration
Auto-detects video vs. channel from URL
Developer Reference
cURL — Video
cURL — Channel
Python
Node.js
curl -X POST "/api/youtube/video-info" \
  -H "X-API-Key: " \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
  }'
curl -X POST "/api/youtube/channel-info" \
  -H "X-API-Key: " \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://www.youtube.com/@MrBeast",
    "max_videos": 30
  }'
import requests

# Video info
video_resp = requests.post(
    '/api/youtube/video-info',
    headers={'X-API-Key': ''},
    json={'url': 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'}
)

# Channel info
channel_resp = requests.post(
    '/api/youtube/channel-info',
    headers={'X-API-Key': ''},
    json={'url': 'https://www.youtube.com/@MrBeast', 'max_videos': 30}
)
print(channel_resp.json())
const axios = require('axios');
const headers = {
  'X-API-Key': '',
  'Content-Type': 'application/json'
};

// Video info
const video = await axios.post('/api/youtube/video-info',
  { url: 'https://www.youtube.com/watch?v=dQw4w9WgXcQ' }, { headers });

// Channel info
const channel = await axios.post('/api/youtube/channel-info',
  { url: 'https://www.youtube.com/@MrBeast', max_videos: 30 }, { headers });
console.log(channel.data);
StatusRun IDLeads FoundStarted AtActions
No runs found
API STATUS
OPERATIONAL
YT UPLINK
SECURE
LATENCY
1.2s
YouTube Competitor Analyzer
Compare up to 5 channels side-by-side — subs, views, recent uploads, top videos
Input Configuration
Paste 1–5 YouTube channel URLs (one per line). Each is analyzed in parallel and the results are stitched into a side-by-side comparison.
Live Result
Run a comparison to see channel data here.
Developer Reference

POST to /api/youtube/competitor with up to 5 channel URLs. Returns a channels array — one entry per channel — with subscriber count, total views, upload count, top viewed videos, latest uploads and oldest videos.

cURL
Python
Node.js
curl -X POST "/api/youtube/competitor" \
  -H "X-API-Key: " \
  -H "Content-Type: application/json" \
  -d '{
    "urls": [
      "https://www.youtube.com/@MrBeast",
      "https://www.youtube.com/@PewDiePie"
    ],
    "max_videos": 20
  }'
import requests

response = requests.post(
    '/api/youtube/competitor',
    headers={
        'X-API-Key': '',
        'Content-Type': 'application/json'
    },
    json={
        'urls': [
            'https://www.youtube.com/@MrBeast',
            'https://www.youtube.com/@PewDiePie'
        ],
        'max_videos': 20
    }
)
data = response.json()
for ch in data['channels']:
    print(ch['channel_name'], '—', ch['subscriber_count'], 'subs')
const axios = require('axios');

axios.post('/api/youtube/competitor', {
  urls: [
    'https://www.youtube.com/@MrBeast',
    'https://www.youtube.com/@PewDiePie'
  ],
  max_videos: 20
}, {
  headers: {
    'X-API-Key': '',
    'Content-Type': 'application/json'
  }
}).then(res => {
  res.data.channels.forEach(ch =>
    console.log(ch.channel_name, '—', ch.subscriber_count, 'subs')
  );
});
Response Schema
{
  "channels": [
    {
      "channel_url":       "https://www.youtube.com/@MrBeast",
      "channel_name":      "MrBeast",
      "channel_id":        "UCX6OQ3DkcsbYNE6H8uQQuVA",
      "description":       "...",
      "subscriber_count":  250000000,
      "view_count":        50000000000,
      "video_count":       800,
      "videos_fetched":    20,
      "top_viewed": [
        {
          "title":     "Video Title",
          "url":       "https://www.youtube.com/watch?v=...",
          "views":     500000000,
          "likes":     10000000,
          "published": "2024-01-15",
          "duration":  "14:32",
          "thumbnail": "https://i.ytimg.com/vi/.../maxresdefault.jpg"
        }
      ],
      "latest_videos":  [ /* same shape as top_viewed */ ],
      "oldest_videos":  [ /* same shape as top_viewed */ ]
    }
  ]
}
StatusRun IDRecordsStarted AtActions

No runs found.

API STATUS
OPERATIONAL
PARALLELISM
5 CHANNELS
ENGINE
YT-DLP
Maps Review Extractor
Pull Google Maps ratings, reviews & sentiment data
Input Configuration
Developer Reference
cURL
Python
Node.js
curl -X POST "/api/maps-reviews/scrape" \
  -H "X-API-Key: " \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://www.google.com/maps/place/...",
    "sort_by": "newest",
    "min_rating": 1,
    "max_reviews": 20
  }'
import requests

response = requests.post(
    '/api/maps-reviews/scrape',
    headers={
        'X-API-Key': '',
        'Content-Type': 'application/json'
    },
    json={
        'url': 'https://www.google.com/maps/place/...',
        'sort_by': 'newest',
        'min_rating': 1,
        'max_reviews': 20
    }
)
print(response.json())
const axios = require('axios');

axios.post('/api/maps-reviews/scrape', {
  url: 'https://www.google.com/maps/place/...',
  sort_by: 'newest',
  min_rating: 1,
  max_reviews: 20
}, {
  headers: {
    'X-API-Key': '',
    'Content-Type': 'application/json'
  }
}).then(res => console.log(res.data));
StatusRun IDResults FoundStarted AtActions
No runs found
API STATUS
OPERATIONAL
REVIEW LINK
STABLE
HEALTH
100%
YouTube Downloader
Get video, audio & combined download URLs from any YouTube link
Input Configuration
Developer Reference

Returns available video & audio format URLs — no file is downloaded server-side. Pass the returned url directly to your client or ffmpeg.

cURL
Python
Node.js
curl -X POST "/api/download/youtube" \
  -H "X-API-Key: " \
  -H "Content-Type: application/json" \
  -d '{"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"}'
import requests

resp = requests.post(
    '/api/download/youtube',
    headers={'X-API-Key': ''},
    json={'url': 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'}
)
data = resp.json()
print(data['title'])
# data['formats'] → list of {format_id, ext, height, quality, url, ...}
# data['audio_url'] → best audio-only stream URL
const axios = require('axios');

const { data } = await axios.post(
  '/api/download/youtube',
  { url: 'https://www.youtube.com/watch?v=dQw4w9WgXcQ' },
  { headers: { 'X-API-Key': '' } }
);
console.log(data.title, data.formats);
StatusRun IDRecordsStarted AtActions

No runs found.

API STATUS
OPERATIONAL
ENGINE
YT-DLP
HEALTH
100%
Instagram Downloader
Pull reels, posts & story videos by Instagram URL
Input Configuration
Developer Reference

Supports Reels, Posts, and IGTV. Returns format URLs — pass them to your client or ffmpeg.

cURL
Python
Node.js
curl -X POST "/api/download/instagram" \
  -H "X-API-Key: " \
  -H "Content-Type: application/json" \
  -d '{"url": "https://www.instagram.com/reel/ABC123/"}'
import requests

resp = requests.post(
    '/api/download/instagram',
    headers={'X-API-Key': ''},
    json={'url': 'https://www.instagram.com/reel/ABC123/'}
)
data = resp.json()
print(data['title'], data['formats'])
const axios = require('axios');

const { data } = await axios.post(
  '/api/download/instagram',
  { url: 'https://www.instagram.com/reel/ABC123/' },
  { headers: { 'X-API-Key': '' } }
);
console.log(data.title, data.formats);
StatusRun IDRecordsStarted AtActions

No runs found.

API STATUS
OPERATIONAL
ENGINE
YT-DLP
HEALTH
100%
TikTok Downloader
Download TikTok videos with watermark-free options
Input Configuration
Developer Reference

Supports TikTok video and slideshow URLs. Returns watermark-free format URLs where available.

cURL
Python
Node.js
curl -X POST "/api/download/tiktok" \
  -H "X-API-Key: " \
  -H "Content-Type: application/json" \
  -d '{"url": "https://www.tiktok.com/@user/video/1234567890"}'
import requests

resp = requests.post(
    '/api/download/tiktok',
    headers={'X-API-Key': ''},
    json={'url': 'https://www.tiktok.com/@user/video/1234567890'}
)
data = resp.json()
print(data['title'], data['formats'])
const axios = require('axios');

const { data } = await axios.post(
  '/api/download/tiktok',
  { url: 'https://www.tiktok.com/@user/video/1234567890' },
  { headers: { 'X-API-Key': '' } }
);
console.log(data.title, data.formats);
StatusRun IDRecordsStarted AtActions

No runs found.

API STATUS
OPERATIONAL
ENGINE
YT-DLP
HEALTH
100%
Facebook Downloader
Download public Facebook videos & reels
Input Configuration
Developer Reference

Supports public Facebook Watch videos, Reels, and fb.watch short links.

cURL
Python
Node.js
curl -X POST "/api/download/facebook" \
  -H "X-API-Key: " \
  -H "Content-Type: application/json" \
  -d '{"url": "https://www.facebook.com/watch/?v=1234567890"}'
import requests

resp = requests.post(
    '/api/download/facebook',
    headers={'X-API-Key': ''},
    json={'url': 'https://www.facebook.com/watch/?v=1234567890'}
)
data = resp.json()
print(data['title'], data['formats'])
const axios = require('axios');

const { data } = await axios.post(
  '/api/download/facebook',
  { url: 'https://www.facebook.com/watch/?v=1234567890' },
  { headers: { 'X-API-Key': '' } }
);
console.log(data.title, data.formats);
StatusRun IDRecordsStarted AtActions

No runs found.

API STATUS
OPERATIONAL
ENGINE
YT-DLP
HEALTH
100%
Snapchat Downloader
Save Snapchat Spotlight & Story videos to your device
Input Configuration
Developer Reference

Supports Snapchat Spotlight and public Story video URLs.

cURL
Python
Node.js
curl -X POST "/api/download/snapchat" \
  -H "X-API-Key: " \
  -H "Content-Type: application/json" \
  -d '{"url": "https://www.snapchat.com/spotlight/..."}'
import requests

resp = requests.post(
    '/api/download/snapchat',
    headers={'X-API-Key': ''},
    json={'url': 'https://www.snapchat.com/spotlight/...'}
)
data = resp.json()
print(data['title'], data['formats'])
const axios = require('axios');

const { data } = await axios.post(
  '/api/download/snapchat',
  { url: 'https://www.snapchat.com/spotlight/...' },
  { headers: { 'X-API-Key': '' } }
);
console.log(data.title, data.formats);
StatusRun IDRecordsStarted AtActions

No runs found.

API STATUS
OPERATIONAL
ENGINE
YT-DLP
HEALTH
100%
Twitter / X Scraper
Pull tweets by keyword, profile or direct URL — text, engagement & media
Input Configuration
Pick a scrape mode, then fill the matching input. Search runs the live "Latest" tab; Profile pulls the user's tweets timeline; Direct URL accepts profile / search / status URLs.
Options & Limits
Developer Reference

POST to /api/twitter/scrape. All filter fields are optional — omit them to use defaults. Operator-based filters (lang, date_from, date_until) are injected into the search query string; numeric thresholds are applied server-side after collection.

cURL
Python
Node.js
curl -X POST "/api/twitter/scrape" \
  -H "X-API-Key: " \
  -H "Content-Type: application/json" \
  -d '{
    "mode": "search",
    "queries": ["bitcoin etf"],
    "max_tweets": 50,
    "include_replies": false,
    "include_retweets": true,
    "has_media": false,
    "sort_by": "likes",
    "min_likes": 100,
    "min_retweets": 10,
    "min_views": 0,
    "min_replies": 0,
    "lang": "en",
    "date_from": "2024-01-01",
    "date_until": "2024-12-31"
  }'
import requests

response = requests.post(
    '/api/twitter/scrape',
    headers={
        'X-API-Key': '',
        'Content-Type': 'application/json'
    },
    json={
        'mode': 'search',
        'queries': ['bitcoin etf'],
        'max_tweets': 50,
        'include_replies': False,
        'include_retweets': True,
        'has_media': False,
        'sort_by': 'likes',
        'min_likes': 100,
        'min_retweets': 10,
        'lang': 'en',
        'date_from': '2024-01-01',
        'date_until': '2024-12-31',
    }
)
data = response.json()
print(f"Found {data['total']} tweets")
for t in data['items']:
    print(t['author'], '—', t['likes'], 'likes —', t['text'][:80])
const axios = require('axios');

axios.post('/api/twitter/scrape', {
  mode: 'search',
  queries: ['bitcoin etf'],
  max_tweets: 50,
  include_replies: false,
  include_retweets: true,
  has_media: false,
  sort_by: 'likes',
  min_likes: 100,
  min_retweets: 10,
  lang: 'en',
  date_from: '2024-01-01',
  date_until: '2024-12-31',
}, {
  headers: {
    'X-API-Key': '',
    'Content-Type': 'application/json'
  }
}).then(res => {
  console.log(`Found ${res.data.total} tweets`);
  res.data.items.forEach(t =>
    console.log(`@${t.author} | ❤️ ${t.likes} | 🔁 ${t.retweets} | ${t.text.slice(0,80)}`)
  );
});
StatusRun IDRecordsStarted AtActions

No runs found.

API STATUS
OPERATIONAL
ENGINE
PLAYWRIGHT
HEALTH
100%
LinkedIn Profile Scraper & Email Finder
Find & extract LinkedIn profiles with emails — no login, no cookies. Input URLs, slugs, or a search query.
What to scrape
Provide specific LinkedIn profile URLs or public-identifier slugs, OR describe the people you want via a search query. Inputs are merged — direct URLs take priority over search results.
LinkedIn Profile URLs
LinkedIn Slugs / Public Identifiers
Search query (people search)
Options
Generates likely corporate email patterns (e.g. first.last@company.com) for each profile and validates each via MX records. Adds a few seconds per profile.
Developer Reference
cURL
Python
Node.js
curl -X POST "/api/linkedin/search" \
  -H "X-API-Key: " \
  -H "Content-Type: application/json" \
  -d '{
    "slugs": ["williamhgates", "jeffweiner08"],
    "query": "CTO fintech startup London",
    "max_results": 50,
    "do_email": false
  }'
import requests

response = requests.post(
    '/api/linkedin/search',
    headers={'X-API-Key': ''},
    json={
        'slugs': ['williamhgates'],
        'do_email': True,
        'max_results': 25
    }
)
print(response.json()['items'])
const axios = require('axios');

axios.post('/api/linkedin/search', {
  slugs: ['williamhgates'],
  query: 'CTO fintech London',
  max_results: 50
}, {
  headers: { 'X-API-Key': '' }
}).then(res => console.log(res.data.items));
StatusRun IDRecordsStarted AtActions

No runs found.

API STATUS
OPERATIONAL
DATA SOURCE
JSON-LD + OG
HEALTH
100%
Email Verifier
Validate email addresses — syntax, MX, SMTP, disposable & role-account flags
Input Configuration
Paste up to 100 email addresses (one per line). We'll check syntax, MX records, SMTP deliverability, plus flag disposable / role / free-mail addresses and score each 0–100.
Verification Options
SMTP probes give the strongest deliverability signal but require outbound port 25 and may be inconclusive on big providers (Gmail, Outlook) that don't reveal mailbox existence.
Developer Reference
cURL
Python
Node.js
curl -X POST "/api/email/verify" \
  -H "X-API-Key: " \
  -H "Content-Type: application/json" \
  -d '{
    "emails": ["hello@anthropic.com", "jane.doe@gmail.com"],
    "do_smtp": true,
    "concurrency": 4
  }'
import requests

response = requests.post(
    '/api/email/verify',
    headers={'X-API-Key': ''},
    json={
        'emails': ['hello@anthropic.com', 'jane.doe@gmail.com'],
        'do_smtp': True
    }
)
data = response.json()
print(data['stats'])
for r in data['items']:
    print(r['email'], '→', r['verdict'], '(score:', r['deliverable_score'], ')')
const axios = require('axios');

axios.post('/api/email/verify', {
  emails: ['hello@anthropic.com', 'jane.doe@gmail.com'],
  do_smtp: true
}, {
  headers: { 'X-API-Key': '' }
}).then(res => console.log(res.data.stats));
StatusRun IDRecordsStarted AtActions

No runs found.

API STATUS
OPERATIONAL
CHECKS
SYNTAX · MX · SMTP
HEALTH
100%
Disposable Email Checker
Detect throwaway / temp-mail addresses across 260+ providers — blocklist + pattern + MX-host signature
Input Configuration
Paste up to 200 emails or domains (one per line). Each is checked against 260+ known disposable providers, regex patterns, and (optionally) live MX-host signatures — verdict per row plus aggregate stats.
Detection Options
MX checks resolve each domain's mail servers and match them against known disposable infrastructure. Disable for offline-only blocklist matching.
Live Result
Run a check to see verdicts here.
StatusRun IDRecordsStarted AtActions

No runs found.

API STATUS
OPERATIONAL
LAYERS
BLOCKLIST · PATTERN · MX
PROVIDERS
260+
Reddit Scraper
Search posts, comments & communities by keyword or URL
Input Configuration
Use Search Keywords to find content by topic, or Direct URLs to scrape specific pages. Both can be used together — results are combined.
Search Keywords
Direct URLs
Options & Limits
Developer Reference
cURL
Python
Node.js
curl -X POST "/api/reddit/scrape" \
  -H "X-API-Key: " \
  -H "Content-Type: application/json" \
  -d '{
    "keywords": ["bitcoin"],
    "urls": [],
    "search_posts": true,
    "search_comments": false,
    "search_communities": false,
    "sort_by": "new",
    "time_range": "all",
    "max_posts": 25
  }'
import requests

response = requests.post(
    '/api/reddit/scrape',
    headers={'X-API-Key': ''},
    json={
        'keywords': ['bitcoin'],
        'search_posts': True,
        'max_posts': 25,
        'sort_by': 'new'
    }
)
data = response.json()
print(f"Found {data['total']} results")
const axios = require('axios');

axios.post('/api/reddit/scrape', {
  keywords: ['bitcoin'],
  search_posts: true,
  max_posts: 25,
  sort_by: 'new'
}, {
  headers: { 'X-API-Key': '' }
}).then(res => console.log(res.data));
StatusRun IDRecordsStarted AtActions

No runs found.

API STATUS
OPERATIONAL
DATA SOURCE
REDDIT JSON API
HEALTH
100%
TikTok Scraper
Extract videos, profiles & hashtag feeds via Playwright
Input Configuration
Pick a scrape mode, then fill the matching input below. Hashtag and Search expect keywords; Profile expects @usernames; URL accepts direct TikTok links (videos, profiles, hashtag pages).
Limits
Developer Reference
cURL
Python
Node.js
curl -X POST "/api/tiktok/scrape" \
  -H "X-API-Key: " \
  -H "Content-Type: application/json" \
  -d '{
    "mode": "hashtag",
    "hashtags": ["marketing"],
    "max_videos": 20
  }'
import requests

response = requests.post(
    '/api/tiktok/scrape',
    headers={'X-API-Key': ''},
    json={
        'mode': 'hashtag',
        'hashtags': ['marketing'],
        'max_videos': 20
    }
)
data = response.json()
print(f"Found {data['total']} videos")
const axios = require('axios');

axios.post('/api/tiktok/scrape', {
  mode: 'hashtag',
  hashtags: ['marketing'],
  max_videos: 20
}, {
  headers: { 'X-API-Key': '' }
}).then(res => console.log(res.data));
StatusRun IDRecordsStarted AtActions

No runs found.

API STATUS
OPERATIONAL
ENGINE
PLAYWRIGHT
HEALTH
100%
Account Settings

Display Name

How your name appears in the dashboard.

Change Password

Must be at least 8 characters.

Account Info

Your registered email — contact support to change.
Open a Ticket
My Support History
SubjectStatusPriorityDate