scrapercity 1.0.4 → 1.0.7

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 CHANGED
@@ -1,6 +1,31 @@
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.05 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.0099 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.01 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.01 per listing |
20
+ | `scrape_yelp` | /api/v1/scrape/yelp-scraper | $0.01 per result |
21
+ | `scrape_zillow_agents` | /api/v1/scrape/zillow-agents | $0.029 per agent |
22
+ | `search_criminal_records` | /api/v1/scrape/criminal-records | $1.00 per search (only charged if records found) |
23
+ | `scrape_store_leads` | /api/v1/scrape/store-leads | $0.0039 per lead |
24
+ | `scrape_builtwith` | /api/v1/scrape/techstack | $4.99 per technology |
25
+ | `find_emails` | /api/v1/scrape/email-finder | $0.05 per email found (FREE if not found) |
26
+ | `find_mobiles` | /api/v1/scrape/mobile-finder | $0.25 per number found (FREE if not found) |
27
+ <!-- GENERATED:pricing:end -->
28
+
4
29
  BASE: https://app.scrapercity.com
5
30
  AUTH: Authorization: Bearer <api_key>
6
31
  ALL RESPONSES: JSON
@@ -18,6 +43,14 @@ apollo
18
43
  Cost: $0.0039/lead | Min 500, max 50000
19
44
  DELIVERY: UP TO 4 DAYS. Use webhook, not polling.
20
45
 
46
+ apollo-filters
47
+ Body: { seniorityLevel, functionDept, companyIndustry, personCountry, personState,
48
+ companyCountry, companyState, companySize, personTitles:[], companyDomains:[],
49
+ companyKeywords:[], personCities:[], companyCities:[], hasPhone, count, fileName }
50
+ At least one filter required.
51
+ Returns: { runId, message }
52
+ Cost: $0.0039/lead | DELIVERY: UP TO 4 DAYS.
53
+
21
54
  maps
22
55
  Body: { searchStringsArray: ["plumbers"], locationQuery: "Denver, CO", maxCrawledPlacesPerSearch: 500 }
23
56
  Returns: { runId, datasetId, priceMicro }
@@ -149,9 +182,7 @@ GET /api/v1/apollo-status
149
182
  Returns: { useApify, message } - check if Apollo URL endpoint is available
150
183
 
151
184
  ────────────────────────────────────────
152
- DATABASES (GET, $149+ plans, 100k/day)
153
- This is the recommended path for filter-based B2B people search (by title,
154
- industry, location, seniority, etc). Returns instantly from a cached dataset.
185
+ DATABASES (GET, $649 plan only, 100k/day)
155
186
  ────────────────────────────────────────
156
187
 
157
188
  GET /api/v1/database/leads?title=CTO&country=United States&hasEmail=true&page=1&limit=100
@@ -178,20 +209,19 @@ ERROR CODES
178
209
  WORKFLOW EXAMPLES
179
210
  ────────────────────────────────────────
180
211
 
181
- 1. LEAD DATABASE (instant, recommended for B2B people search):
182
- GET /api/v1/database/leads?title=CTO&industry=computer+software&hasEmail=true&page=1
183
- Loop pages until page > totalPages.
184
- This is the supported path for filter-based B2B contact search ($149+ plans).
185
-
186
- 2. MAPS SCRAPE (fast):
212
+ 1. MAPS SCRAPE (fast):
187
213
  POST /api/v1/scrape/maps → get runId → poll status every 15s → download CSV
188
214
 
189
- 3. APOLLO SCRAPE (slow, only when user provides an apollo.io URL):
215
+ 2. APOLLO SCRAPE (slow):
190
216
  POST /api/v1/scrape/apollo → get runId → configure webhook → wait for callback
191
217
  Do NOT poll Apollo in a tight loop. Check once per hour at most.
192
218
 
193
- 4. ENRICH PIPELINE:
194
- Database/Maps → download CSV → extract emails → POST email-validator → download validated CSV
219
+ 3. ENRICH PIPELINE:
220
+ Apollo/Maps → download CSV → extract emails → POST email-validator → download validated CSV
221
+
222
+ 4. LEAD DATABASE (instant):
223
+ GET /api/v1/database/leads?title=CTO&industry=computer+software&hasEmail=true&page=1
224
+ Loop pages until page > totalPages
195
225
 
196
226
  5. LOCAL BUSINESS PIPELINE:
197
227
  Yelp/Angi/Maps → download CSV → POST email-finder with names+domains → POST mobile-finder
package/README.md CHANGED
@@ -66,6 +66,30 @@ 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.05 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.0099 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.01 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.01 per listing |
84
+ | `scrape_yelp` | /api/v1/scrape/yelp-scraper | $0.01 per result |
85
+ | `scrape_zillow_agents` | /api/v1/scrape/zillow-agents | $0.029 per agent |
86
+ | `search_criminal_records` | /api/v1/scrape/criminal-records | $1.00 per search (only charged if records found) |
87
+ | `scrape_store_leads` | /api/v1/scrape/store-leads | $0.0039 per lead |
88
+ | `scrape_builtwith` | /api/v1/scrape/techstack | $4.99 per technology |
89
+ | `find_emails` | /api/v1/scrape/email-finder | $0.05 per email found (FREE if not found) |
90
+ | `find_mobiles` | /api/v1/scrape/mobile-finder | $0.25 per number found (FREE if not found) |
91
+ <!-- GENERATED:pricing:end -->
92
+
69
93
  ## Available Tools
70
94
 
71
95
  | Tool | What it does | Cost |
package/SKILL.md CHANGED
@@ -15,11 +15,36 @@ 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.05 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.0099 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.01 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.01 per listing |
33
+ | `scrape_yelp` | /api/v1/scrape/yelp-scraper | $0.01 per result |
34
+ | `scrape_zillow_agents` | /api/v1/scrape/zillow-agents | $0.029 per agent |
35
+ | `search_criminal_records` | /api/v1/scrape/criminal-records | $1.00 per search (only charged if records found) |
36
+ | `scrape_store_leads` | /api/v1/scrape/store-leads | $0.0039 per lead |
37
+ | `scrape_builtwith` | /api/v1/scrape/techstack | $4.99 per technology |
38
+ | `find_emails` | /api/v1/scrape/email-finder | $0.05 per email found (FREE if not found) |
39
+ | `find_mobiles` | /api/v1/scrape/mobile-finder | $0.25 per number found (FREE if not found) |
40
+ <!-- GENERATED:pricing:end -->
41
+
18
42
  ## All Scrapers (POST to /api/v1/scrape/{slug})
19
43
 
20
44
  | Slug | Input | Cost | Speed |
21
45
  |------|-------|------|-------|
22
46
  | `apollo` | `{url, count, fileName}` | $0.0039/lead | ~4 DAYS (use webhook) |
47
+ | `apollo-filters` | `{seniorityLevel, functionDept, companyIndustry, personCountry, personState, companySize, personTitles[], companyDomains[], count}` | $0.0039/lead | ~4 DAYS |
23
48
  | `maps` | `{searchStringsArray:["query"], locationQuery, maxCrawledPlacesPerSearch}` | $0.01/place | 5-30 min |
24
49
  | `email-validator` | `{emails:["a@b.com"]}` | $0.0036/email | 1-10 min |
25
50
  | `email-finder` | `{contacts:[{first_name,last_name,domain}], autoValidateEmails, autoFindMobiles}` | $0.05/contact | 1-10 min |
package/bin/cli.mjs CHANGED
@@ -266,21 +266,6 @@ async function main() {
266
266
  break
267
267
  }
268
268
 
269
- // ── YouTube Email ─────────────────────────────────────
270
- case 'youtube-email': {
271
- let channels = args.filter(a => !a.startsWith('-'))
272
- const file = flag('--file')
273
- if (file) {
274
- channels = [...channels, ...fs.readFileSync(file, 'utf-8').split('\n').map(l => l.trim()).filter(Boolean)]
275
- }
276
- if (!channels.length) die('Usage: scrapercity youtube-email @ChannelHandle https://youtube.com/@Channel OR --file channels.txt')
277
- const r = await sc.youtubeEmail(channels)
278
- console.log(`✓ YouTube email scrape started`)
279
- console.log(` Run ID: ${r.runId}`)
280
- console.log(` Poll: scrapercity status ${r.runId}`)
281
- break
282
- }
283
-
284
269
  // ── Website Finder ────────────────────────────────────
285
270
  case 'website-finder': {
286
271
  let domains = args.filter(a => !a.startsWith('-'))
@@ -366,17 +351,15 @@ async function main() {
366
351
  break
367
352
  }
368
353
 
369
- // ── Property Lookup ───────────────────────────────────
370
- case 'property-lookup': {
371
- let addresses = args.filter(a => !a.startsWith('-'))
372
- const file = flag('--file')
373
- const ownerContact = flagBool('--owner-contact')
374
- if (file) {
375
- addresses = [...addresses, ...fs.readFileSync(file, 'utf-8').split('\n').map(l => l.trim()).filter(Boolean)]
376
- }
377
- if (!addresses.length) die('Usage: scrapercity property-lookup "123 Main St, Denver, CO 80202" [--owner-contact] OR --file addresses.txt')
378
- const r = await sc.propertyLookup(addresses, ownerContact)
379
- 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`)
380
363
  console.log(` Run ID: ${r.runId}`)
381
364
  console.log(` Poll: scrapercity status ${r.runId}`)
382
365
  break
@@ -441,14 +424,13 @@ ScraperCity CLI - B2B lead generation from your terminal
441
424
  scrapercity builtwith "Technology" Sites using a technology
442
425
  scrapercity criminal --name "X" Criminal records search
443
426
  scrapercity airbnb --city "Miami, FL" Airbnb host emails
444
- scrapercity youtube-email @Channel YouTuber business emails
445
427
  scrapercity website-finder acme.com Contact info from domains
446
428
  scrapercity yelp -q "query" -l "City" Yelp business scraper
447
429
  scrapercity angi -q "query" --zips X Angi (Angie's List) scraper
448
430
  scrapercity zillow-agents -l "City" Zillow real estate agents
449
431
  scrapercity bizbuysell <url> BizBuySell listings
450
432
  scrapercity crexi <url> Crexi commercial real estate
451
- scrapercity property-lookup "address" Property data + owner contact
433
+ scrapercity distress-list \"City, ST\" Distressed / motivated-seller properties
452
434
 
453
435
  Status:
454
436
  scrapercity status <runId> Check run status