scrapercity 1.0.6 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENT_DOCS.txt +26 -0
- package/README.md +25 -0
- package/SKILL.md +25 -0
- package/bin/cli.mjs +10 -63
- package/bin/mcp.mjs +64 -426
- package/lib/catalog.generated.mjs +658 -0
- package/lib/client.mjs +26 -29
- package/package.json +6 -2
package/AGENT_DOCS.txt
CHANGED
|
@@ -1,6 +1,32 @@
|
|
|
1
1
|
SCRAPERCITY API REFERENCE - FOR AI AGENTS
|
|
2
2
|
==========================================
|
|
3
3
|
|
|
4
|
+
|
|
5
|
+
PRICING (auto-generated from the live catalog - do not edit)
|
|
6
|
+
|
|
7
|
+
<!-- GENERATED:pricing:start -->
|
|
8
|
+
| Tool | Endpoint | Price |
|
|
9
|
+
|------|----------|-------|
|
|
10
|
+
| `scrape_apollo` | /api/v1/scrape/apollo | $0.0039 per lead |
|
|
11
|
+
| `scrape_website_finder` | /api/v1/scrape/website-finder | $0.0499 per contact found |
|
|
12
|
+
| `find_people` | /api/v1/scrape/skip-trace | $0.0199 per result (searches with 0 matches are billed as 1 result) |
|
|
13
|
+
| `scrape_distress_list` | /api/v1/scrape/distress-list | $0.05 per property |
|
|
14
|
+
| `validate_emails` | /api/v1/scrape/email-validator | $0.0072 per email |
|
|
15
|
+
| `scrape_maps` | /api/v1/scrape/maps | $0.01 per business |
|
|
16
|
+
| `scrape_airbnb` | /api/v1/scrape/airbnb-email | $0.019 per result ($19.00 per 1,000) |
|
|
17
|
+
| `scrape_bizbuysell` | /api/v1/scrape/bizbuysell-scraper | $0.0099 per listing |
|
|
18
|
+
| `scrape_crexi` | /api/v1/scrape/crexi-scraper | $0.029 per property |
|
|
19
|
+
| `scrape_angi` | /api/v1/scrape/angi-angies-list-scraper | $0.0099 per listing |
|
|
20
|
+
| `scrape_yelp` | /api/v1/scrape/yelp-scraper | $0.0099 per result |
|
|
21
|
+
| `scrape_zillow_agents` | /api/v1/scrape/zillow-agents | $0.029 per agent |
|
|
22
|
+
| `scrape_property_lookup` | /api/v1/scrape/property-lookup | $0.15 per property (+$0.10 for owner contact) |
|
|
23
|
+
| `search_criminal_records` | /api/v1/scrape/criminal-records | .00 per search (only charged if records found) |
|
|
24
|
+
| `scrape_store_leads` | /api/v1/scrape/store-leads | $0.0039 per lead |
|
|
25
|
+
| `scrape_builtwith` | /api/v1/scrape/techstack | $4.99 per technology |
|
|
26
|
+
| `find_emails` | /api/v1/scrape/email-finder | $0.05 per email found (FREE if not found) |
|
|
27
|
+
| `find_mobiles` | /api/v1/scrape/mobile-finder | $0.25 per number found (FREE if not found) |
|
|
28
|
+
<!-- GENERATED:pricing:end -->
|
|
29
|
+
|
|
4
30
|
BASE: https://app.scrapercity.com
|
|
5
31
|
AUTH: Authorization: Bearer <api_key>
|
|
6
32
|
ALL RESPONSES: JSON
|
package/README.md
CHANGED
|
@@ -66,6 +66,31 @@ curl -O https://app.scrapercity.com/api/downloads/RUN_ID \
|
|
|
66
66
|
-H "Authorization: Bearer $SCRAPERCITY_API_KEY"
|
|
67
67
|
```
|
|
68
68
|
|
|
69
|
+
## Pricing (auto-generated from the live catalog — do not edit)
|
|
70
|
+
|
|
71
|
+
<!-- GENERATED:pricing:start -->
|
|
72
|
+
| Tool | Endpoint | Price |
|
|
73
|
+
|------|----------|-------|
|
|
74
|
+
| `scrape_apollo` | /api/v1/scrape/apollo | $0.0039 per lead |
|
|
75
|
+
| `scrape_website_finder` | /api/v1/scrape/website-finder | $0.0499 per contact found |
|
|
76
|
+
| `find_people` | /api/v1/scrape/skip-trace | $0.0199 per result (searches with 0 matches are billed as 1 result) |
|
|
77
|
+
| `scrape_distress_list` | /api/v1/scrape/distress-list | $0.05 per property |
|
|
78
|
+
| `validate_emails` | /api/v1/scrape/email-validator | $0.0072 per email |
|
|
79
|
+
| `scrape_maps` | /api/v1/scrape/maps | $0.01 per business |
|
|
80
|
+
| `scrape_airbnb` | /api/v1/scrape/airbnb-email | $0.019 per result ($19.00 per 1,000) |
|
|
81
|
+
| `scrape_bizbuysell` | /api/v1/scrape/bizbuysell-scraper | $0.0099 per listing |
|
|
82
|
+
| `scrape_crexi` | /api/v1/scrape/crexi-scraper | $0.029 per property |
|
|
83
|
+
| `scrape_angi` | /api/v1/scrape/angi-angies-list-scraper | $0.0099 per listing |
|
|
84
|
+
| `scrape_yelp` | /api/v1/scrape/yelp-scraper | $0.0099 per result |
|
|
85
|
+
| `scrape_zillow_agents` | /api/v1/scrape/zillow-agents | $0.029 per agent |
|
|
86
|
+
| `scrape_property_lookup` | /api/v1/scrape/property-lookup | $0.15 per property (+$0.10 for owner contact) |
|
|
87
|
+
| `search_criminal_records` | /api/v1/scrape/criminal-records | .00 per search (only charged if records found) |
|
|
88
|
+
| `scrape_store_leads` | /api/v1/scrape/store-leads | $0.0039 per lead |
|
|
89
|
+
| `scrape_builtwith` | /api/v1/scrape/techstack | $4.99 per technology |
|
|
90
|
+
| `find_emails` | /api/v1/scrape/email-finder | $0.05 per email found (FREE if not found) |
|
|
91
|
+
| `find_mobiles` | /api/v1/scrape/mobile-finder | $0.25 per number found (FREE if not found) |
|
|
92
|
+
<!-- GENERATED:pricing:end -->
|
|
93
|
+
|
|
69
94
|
## Available Tools
|
|
70
95
|
|
|
71
96
|
| Tool | What it does | Cost |
|
package/SKILL.md
CHANGED
|
@@ -15,6 +15,31 @@ GET /api/downloads/{runId} → CSV file
|
|
|
15
15
|
```
|
|
16
16
|
Auth: `Authorization: Bearer $SCRAPERCITY_API_KEY` on all requests.
|
|
17
17
|
|
|
18
|
+
## Pricing (auto-generated from the live catalog — do not edit)
|
|
19
|
+
|
|
20
|
+
<!-- GENERATED:pricing:start -->
|
|
21
|
+
| Tool | Endpoint | Price |
|
|
22
|
+
|------|----------|-------|
|
|
23
|
+
| `scrape_apollo` | /api/v1/scrape/apollo | $0.0039 per lead |
|
|
24
|
+
| `scrape_website_finder` | /api/v1/scrape/website-finder | $0.0499 per contact found |
|
|
25
|
+
| `find_people` | /api/v1/scrape/skip-trace | $0.0199 per result (searches with 0 matches are billed as 1 result) |
|
|
26
|
+
| `scrape_distress_list` | /api/v1/scrape/distress-list | $0.05 per property |
|
|
27
|
+
| `validate_emails` | /api/v1/scrape/email-validator | $0.0072 per email |
|
|
28
|
+
| `scrape_maps` | /api/v1/scrape/maps | $0.01 per business |
|
|
29
|
+
| `scrape_airbnb` | /api/v1/scrape/airbnb-email | $0.019 per result ($19.00 per 1,000) |
|
|
30
|
+
| `scrape_bizbuysell` | /api/v1/scrape/bizbuysell-scraper | $0.0099 per listing |
|
|
31
|
+
| `scrape_crexi` | /api/v1/scrape/crexi-scraper | $0.029 per property |
|
|
32
|
+
| `scrape_angi` | /api/v1/scrape/angi-angies-list-scraper | $0.0099 per listing |
|
|
33
|
+
| `scrape_yelp` | /api/v1/scrape/yelp-scraper | $0.0099 per result |
|
|
34
|
+
| `scrape_zillow_agents` | /api/v1/scrape/zillow-agents | $0.029 per agent |
|
|
35
|
+
| `scrape_property_lookup` | /api/v1/scrape/property-lookup | $0.15 per property (+$0.10 for owner contact) |
|
|
36
|
+
| `search_criminal_records` | /api/v1/scrape/criminal-records | .00 per search (only charged if records found) |
|
|
37
|
+
| `scrape_store_leads` | /api/v1/scrape/store-leads | $0.0039 per lead |
|
|
38
|
+
| `scrape_builtwith` | /api/v1/scrape/techstack | $4.99 per technology |
|
|
39
|
+
| `find_emails` | /api/v1/scrape/email-finder | $0.05 per email found (FREE if not found) |
|
|
40
|
+
| `find_mobiles` | /api/v1/scrape/mobile-finder | $0.25 per number found (FREE if not found) |
|
|
41
|
+
<!-- GENERATED:pricing:end -->
|
|
42
|
+
|
|
18
43
|
## All Scrapers (POST to /api/v1/scrape/{slug})
|
|
19
44
|
|
|
20
45
|
| Slug | Input | Cost | Speed |
|
package/bin/cli.mjs
CHANGED
|
@@ -97,40 +97,6 @@ async function main() {
|
|
|
97
97
|
break
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
-
// ── Apollo Filters ────────────────────────────────────
|
|
101
|
-
case 'apollo-filters': {
|
|
102
|
-
const filters = {}
|
|
103
|
-
for (const f of ['--seniority', '--function', '--industry', '--country', '--state',
|
|
104
|
-
'--company-country', '--company-state', '--company-size', '--count', '--name', '--has-phone']) {
|
|
105
|
-
const v = flag(f)
|
|
106
|
-
if (v === undefined) continue
|
|
107
|
-
const key = {
|
|
108
|
-
'--seniority': 'seniorityLevel', '--function': 'functionDept',
|
|
109
|
-
'--industry': 'companyIndustry', '--country': 'personCountry',
|
|
110
|
-
'--state': 'personState', '--company-country': 'companyCountry',
|
|
111
|
-
'--company-state': 'companyState', '--company-size': 'companySize',
|
|
112
|
-
'--count': 'count', '--name': 'fileName', '--has-phone': 'hasPhone'
|
|
113
|
-
}[f]
|
|
114
|
-
filters[key] = f === '--has-phone' ? true : (f === '--count' ? +v : v)
|
|
115
|
-
}
|
|
116
|
-
// Array flags
|
|
117
|
-
for (const f of ['--titles', '--domains', '--keywords', '--person-cities', '--company-cities']) {
|
|
118
|
-
const v = flag(f)
|
|
119
|
-
if (!v) continue
|
|
120
|
-
const key = { '--titles': 'personTitles', '--domains': 'companyDomains',
|
|
121
|
-
'--keywords': 'companyKeywords', '--person-cities': 'personCities',
|
|
122
|
-
'--company-cities': 'companyCities' }[f]
|
|
123
|
-
filters[key] = v.split(',').map(s => s.trim())
|
|
124
|
-
}
|
|
125
|
-
if (!Object.keys(filters).length) die('At least one filter required. Example: scrapercity apollo-filters --industry "computer software" --country "United States" --count 1000')
|
|
126
|
-
const r = await sc.apolloFilters(filters)
|
|
127
|
-
console.log(`✓ Apollo filter search started`)
|
|
128
|
-
console.log(` Run ID: ${r.runId}`)
|
|
129
|
-
console.log(` ${r.message || ''}`)
|
|
130
|
-
console.log(` Note: Apollo takes up to 4 days. Set up a webhook to get notified.`)
|
|
131
|
-
break
|
|
132
|
-
}
|
|
133
|
-
|
|
134
100
|
// ── Maps ──────────────────────────────────────────────
|
|
135
101
|
case 'maps': {
|
|
136
102
|
const query = flag('--query') || flag('-q')
|
|
@@ -300,21 +266,6 @@ async function main() {
|
|
|
300
266
|
break
|
|
301
267
|
}
|
|
302
268
|
|
|
303
|
-
// ── YouTube Email ─────────────────────────────────────
|
|
304
|
-
case 'youtube-email': {
|
|
305
|
-
let channels = args.filter(a => !a.startsWith('-'))
|
|
306
|
-
const file = flag('--file')
|
|
307
|
-
if (file) {
|
|
308
|
-
channels = [...channels, ...fs.readFileSync(file, 'utf-8').split('\n').map(l => l.trim()).filter(Boolean)]
|
|
309
|
-
}
|
|
310
|
-
if (!channels.length) die('Usage: scrapercity youtube-email @ChannelHandle https://youtube.com/@Channel OR --file channels.txt')
|
|
311
|
-
const r = await sc.youtubeEmail(channels)
|
|
312
|
-
console.log(`✓ YouTube email scrape started`)
|
|
313
|
-
console.log(` Run ID: ${r.runId}`)
|
|
314
|
-
console.log(` Poll: scrapercity status ${r.runId}`)
|
|
315
|
-
break
|
|
316
|
-
}
|
|
317
|
-
|
|
318
269
|
// ── Website Finder ────────────────────────────────────
|
|
319
270
|
case 'website-finder': {
|
|
320
271
|
let domains = args.filter(a => !a.startsWith('-'))
|
|
@@ -400,17 +351,15 @@ async function main() {
|
|
|
400
351
|
break
|
|
401
352
|
}
|
|
402
353
|
|
|
403
|
-
// ──
|
|
404
|
-
case '
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
const
|
|
408
|
-
if (
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
const r = await sc.propertyLookup(addresses, ownerContact)
|
|
413
|
-
console.log(`✓ Property lookup started for ${addresses.length} addresses`)
|
|
354
|
+
// ── Deal Finder (distressed properties) ───────────────
|
|
355
|
+
case 'distress-list': {
|
|
356
|
+
const search = args.find(a => !a.startsWith('-'))
|
|
357
|
+
if (!search) die('Usage: scrapercity distress-list "Tampa, FL" [--types preForeclosure,auction] [--max 100]')
|
|
358
|
+
const body = { search }
|
|
359
|
+
const types = flag('--types'); if (types) body.distressTypes = types.split(',').map(s => s.trim())
|
|
360
|
+
const max = flag('--max'); if (max) body.maxItems = +max
|
|
361
|
+
const r = await sc.distressList(body)
|
|
362
|
+
console.log(`✓ Deal Finder scrape started`)
|
|
414
363
|
console.log(` Run ID: ${r.runId}`)
|
|
415
364
|
console.log(` Poll: scrapercity status ${r.runId}`)
|
|
416
365
|
break
|
|
@@ -466,7 +415,6 @@ ScraperCity CLI - B2B lead generation from your terminal
|
|
|
466
415
|
|
|
467
416
|
Scrapers:
|
|
468
417
|
scrapercity apollo <url> [--count N] Apollo scrape (URL-based, ~4 day delivery)
|
|
469
|
-
scrapercity apollo-filters [filters] Apollo scrape (filter-based)
|
|
470
418
|
scrapercity maps -q <query> -l <loc> Google Maps scrape
|
|
471
419
|
scrapercity email-validate <emails> Validate email addresses
|
|
472
420
|
scrapercity email-find --first X --last Y --domain Z Find business emails
|
|
@@ -476,14 +424,13 @@ ScraperCity CLI - B2B lead generation from your terminal
|
|
|
476
424
|
scrapercity builtwith "Technology" Sites using a technology
|
|
477
425
|
scrapercity criminal --name "X" Criminal records search
|
|
478
426
|
scrapercity airbnb --city "Miami, FL" Airbnb host emails
|
|
479
|
-
scrapercity youtube-email @Channel YouTuber business emails
|
|
480
427
|
scrapercity website-finder acme.com Contact info from domains
|
|
481
428
|
scrapercity yelp -q "query" -l "City" Yelp business scraper
|
|
482
429
|
scrapercity angi -q "query" --zips X Angi (Angie's List) scraper
|
|
483
430
|
scrapercity zillow-agents -l "City" Zillow real estate agents
|
|
484
431
|
scrapercity bizbuysell <url> BizBuySell listings
|
|
485
432
|
scrapercity crexi <url> Crexi commercial real estate
|
|
486
|
-
scrapercity
|
|
433
|
+
scrapercity distress-list \"City, ST\" Distressed / motivated-seller properties
|
|
487
434
|
|
|
488
435
|
Status:
|
|
489
436
|
scrapercity status <runId> Check run status
|