Skip to content

About

High-speed Craigslist Worldwide ($0.50/1K), OfferUp Marketplace, and Google Jobs Scraper API on Apify. Extract cars, housing leads, local deals, and ATS jobs.

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏷️ Craigslist & OfferUp Scraper API Suite (Cars, Real Estate, Jobs & Dealer Leads)

Available on Apify n8n Creator Hub Zero Login Pricing

High-speed Craigslist Worldwide ($0.50/1k) and OfferUp Marketplace ($0.80/1k) Scraper API suite on Apify. Extract used cars & VINs, real estate housing leads, jobs & gigs, seller inventories, auto dealer phones, and local resale bargains.

πŸš€ Try Live on Apify β€’ ⚑ Official n8n Creator Hub β€’ πŸ”§ 23 Free n8n Templates β€’ πŸ“– Documentation & Schemas β€’ πŸ“š Engineering Playbooks


🏷️ Craigslist & OfferUp Scraper API Suite (Cars, Real Estate, Jobs & Dealer Leads)

Try it for Free
⚑ 1-Click Free Trial: Test live queries using Apify's $5 free monthly credit β€’ Zero login or cookies required


πŸ“¦ Included in This Repository (Python Quickstarts, n8n Workflows, MCP & Sample Data)

This repository contains ready-to-run Python SDK scripts, 1-click n8n automation workflow .json templates, AI Agent MCP configuration (.cursor/mcp.json), and sample output datasets (JSON & CSV):

Extraction Engine 🐍 Python SDK Quickstart ⚑ n8n Workflow Template πŸ“Š Sample Output πŸš€ Cloud Console
Craigslist Search Scraper: Cars, Housing, Jobs & For Sale
unitbytes/craigslist-scraper β€’ Full Schema β€’ Engineering Playbook
examples/run_craigslist_scraper.py n8n/craigslist-scraper-n8n-workflow.json JSON · CSV ⚑ Run on Apify
Craigslist Cars & Vehicles Scraper: By Owner, VIN & Miles
unitbytes/craigslist-cars-vehicles-scraper β€’ Full Schema β€’ Engineering Playbook
examples/run_craigslist_cars_vehicles_scraper.py n8n/craigslist-cars-vehicles-scraper-n8n-workflow.json JSON · CSV ⚑ Run on Apify
Craigslist Real Estate, Property & Housing Scraper (FSBO)
unitbytes/craigslist-real-estate-property-scraper β€’ Full Schema β€’ Engineering Playbook
examples/run_craigslist_real_estate_property_scraper.py n8n/craigslist-real-estate-property-scraper-n8n-workflow.json JSON · CSV ⚑ Run on Apify
Craigslist Jobs, Gigs & Services Scraper: Pay & Remote
unitbytes/craigslist-jobs-gigs-services-scraper β€’ Full Schema β€’ Engineering Playbook
examples/run_craigslist_jobs_gigs_services_scraper.py n8n/craigslist-jobs-gigs-services-scraper-n8n-workflow.json JSON · CSV ⚑ Run on Apify
OfferUp Scraper: Marketplace Listings, Cars & Deals
unitbytes/offerup-scraper β€’ Full Schema β€’ Engineering Playbook
examples/run_offerup_scraper.py n8n/offerup-scraper-n8n-workflow.json JSON · CSV ⚑ Run on Apify
OfferUp Used Cars, Vehicles & VIN Scraper: Dealer Specs
unitbytes/offerup-vehicles-cars-scraper β€’ Full Schema β€’ Engineering Playbook
examples/run_offerup_vehicles_cars_scraper.py n8n/offerup-vehicles-cars-scraper-n8n-workflow.json JSON · CSV ⚑ Run on Apify
OfferUp Seller Inventory & Auto Dealer Leads Scraper
unitbytes/offerup-seller-inventory-scraper β€’ Full Schema β€’ Engineering Playbook
examples/run_offerup_seller_inventory_scraper.py n8n/offerup-seller-inventory-scraper-n8n-workflow.json JSON · CSV ⚑ Run on Apify
OfferUp Deal Monitor, Price Drop & Status Tracker
unitbytes/offerup-deal-monitor-scraper β€’ Full Schema β€’ Engineering Playbook
examples/run_offerup_deal_monitor_scraper.py n8n/offerup-deal-monitor-scraper-n8n-workflow.json JSON · CSV ⚑ Run on Apify

⚑ Pre-Configured 1-Click Task Presets

Launch pre-configured extraction templates directly in the Apify Cloud Console with zero parameter setup:

Task Preset Target Extraction Use Case Direct Launch
Find Used Cars Under $5,000 by Owner on Craigslist Extract used cars, trucks, and SUVs priced under $5,000 sold directly by private owners across top US metros. Get VIN, mileage, title status, and seller phone numbers. ⚑ Run Task Preset
Track Toyota Tacoma & 4x4 Trucks on Craigslist Monitor Toyota Tacoma, Tundra, and 4x4 pickup trucks across any metro. Extract model year, trim, mileage, 17-character VIN, and high-resolution photo galleries. ⚑ Run Task Preset
Find Honda Civic & Accord Deals on Craigslist Discover Honda Civic and Accord listings for car flipping or daily commuting. Extract asking price, clean/salvage title status, transmission, and seller phone numbers. ⚑ Run Task Preset
Scrape Apartments & Rental Housing on Craigslist Extract rental housing listings across major US cities. Collect rent prices, bedroom counts, bathrooms, square footage, neighborhood locations, and full descriptions. ⚑ Run Task Preset
Find FSBO Real Estate & Homes for Sale on Craigslist Capture For Sale by Owner (FSBO) real estate, land, houses, and commercial property listings with asking prices, seller contact info, and coordinates. ⚑ Run Task Preset
Find Apple iPhones & MacBooks on Craigslist for Resale Discover discounted Apple MacBooks, iPhones, iPads, and AirPods for e-commerce flipping and resale arbitrage on eBay, Amazon, or Mercari. ⚑ Run Task Preset
Scrape Used Cars Under $5,000 on OfferUp Extract budget cars, trucks, and SUVs under $5,000 including mileage, title status, and seller rating. ⚑ Run Task Preset
Find Honda Civic Deals on OfferUp Find all Honda Civics listed for sale with VIN, mileage, transmission, and photo gallery. ⚑ Run Task Preset
Track Toyota Tacoma Trucks on OfferUp Extract Toyota Tacoma and 4Runner listings with year, trim, mileage, and seller contact stats. ⚑ Run Task Preset
Extract iPhone & Apple Device Deals Extract unlocked iPhones, iPads, and MacBooks with condition notes and seller ratings. ⚑ Run Task Preset
Find MacBook Pro & Laptop Deals on OfferUp Monitor MacBook Pro and laptop bargains with price, seller response time, and specs. ⚑ Run Task Preset
Find PS5 & Gaming Console Deals Extract PlayStation 5, Xbox Series X, and Nintendo Switch console listings with seller history. ⚑ Run Task Preset

πŸ› οΈ Extraction Engines in This Suite

πŸš€ Craigslist Search Scraper: Cars, Housing, Jobs & For Sale (unitbytes/craigslist-scraper)

Scrape Craigslist search results across 700+ cities: cars, housing, jobs, electronics, furniture & free stuff. Multi-city clusters, real-time new listing alerts, HD photos & optional contacts. MCP & AI Agent ready.

Key Capabilities

  • Cross-City Geographic Aggregation: Scrape single metro areas or aggregate queries across entire states and nationwide regions simultaneously.
  • Automotive Specification Parsing: Extracts vehicle title status, odometer mileage, VIN, transmission, fuel type, and seller type (dealer vs owner).
  • Rental & Real Estate Breakdown: Captures rent prices, bedroom count, bathrooms, square footage, housing type, and pet accommodation flags.
  • Clean Uncluttered JSON: Filters out HTML markup, extracting normalized text, posted timestamps, updated timestamps, and image arrays.

Live Dataset Output Previews

πŸš— Craigslist Cars, Trucks & Vehicles Scraper (unitbytes/craigslist-cars-vehicles-scraper)

Craigslist Cars & Vehicles Scraper Dataset Output

🏠 Craigslist Real Estate, Property & Housing Scraper (unitbytes/craigslist-real-estate-property-scraper)

Craigslist Real Estate & Housing Scraper Dataset Output

πŸ’Ό Craigslist Jobs, Gigs & Services Scraper (unitbytes/craigslist-jobs-gigs-services-scraper)

Craigslist Jobs, Gigs & Services Scraper Dataset Output

Python SDK Quickstart (examples/run_craigslist_scraper.py)

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run_input = {
    "startUrls": [],
    "searchUrl": "",
    "searchQuery": "",
    "subarea": "",
    "subdomains": [],
    "postal": "",
    "autoMakeModel": ""
}

run = client.actor("unitbytes/craigslist-scraper").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item.get("title"), item.get("vehicleTitleStatus"), item.get("price"))

Sample Output Schema (samples/craigslist-scraper-sample.json)

{
  "listingId": "7987858896",
  "url": "https://www.craigslist.org/view/d/norwalk-2013-toyota-tacoma-trd-off-road/7987858896",
  "listingStatus": "active",
  "title": "2013 Toyota Tacoma TRD Off Road 4x4",
  "price": 14500.0,
  "currency": "USD",
  "subarea": "sfv",
  "condition": "excellent",
  "description": "Clean 2013 Toyota Tacoma TRD Off-Road. 104,500 miles, automatic transmission, clean title in hand.",
  "postDate": "2026-10-22T07:07:19-0700",
  "city": "Norwalk",
  "state": "CA",
  "zipCode": "90652",
  "latitude": 33.9022,
  "longitude": -118.0817,
  "isDealer": false,
  "isVehicle": true,
  "vehicleYear": 2013,
  "vehicleMake": "toyota tacoma trd off-road",
  "vehicleMiles": 104500,
  "vehicleVin": "5TFUX4EN4DX012345",
  "vehicleTransmission": "automatic",
  "vehicleFuelType": "gas",
  "vehicleTitleStatus": "clean",
  "thumbnailUrl": "https://images.craigslist.org/00B0B_1ZBm7qXYZ_600x450.jpg",
  "imageUrls": [
    "https://images.craigslist.org/00B0B_1ZBm7qXYZ_1200x900.jpg"
  ]
}

Frequently Asked Questions

Q: Can I search multiple cities at the same time? Yes. Pass a list of Craigslist subdomains (e.g. ["austin", "dallas", "houston"]) to execute multi-city sweeps in one run.

Q: How does the scraper handle Craigslist IP rate limits? Craigslist strictly blocks cloud datacenter IPs. The UnitBytes engine automatically routes requests through rotating residential proxies with zero IP bans.

Q: Can I extract email addresses or phone numbers? Any contact information published directly in the listing body is extracted. Craigslist two-way relay email addresses are preserved.

Q: How frequently can I run this scraper? Run on demand or schedule hourly cron runs to detect new bargain listings minutes after publication.


πŸš€ Craigslist Cars & Vehicles Scraper: By Owner, VIN & Miles (unitbytes/craigslist-cars-vehicles-scraper)

Scrape Craigslist cars, trucks, motorcycles, RVs, boats, heavy equipment & auto parts by owner or dealer across 700+ cities. Filter by make/model, year, odometer mileage, clean title & VIN. MCP & AI Agent ready.

Key Capabilities

  • Deep Automotive Intelligence: Extract vehicle year, make, model, trim, odometer mileage, full 17-character VIN, transmission, fuel type, and clean/salvage title status directly from car and truck postings.
  • Owner vs. Dealer Classification: Instantly distinguish between private party sellers (for sale by owner) and commercial dealerships before reaching out.
  • Precise Postal / ZIP & Radius Targeting: Filter by specific ZIP or postal code (postal) and search radius in miles (radius) to hone in on local deals.
  • Direct-Contact Extraction for Lead Generation: Automatically parses real phone numbers and email addresses directly from the listing description. Filter by un-obfuscated contacts for outbound sales, recruiting, automotive buying, or real estate...

Python SDK Quickstart (examples/run_craigslist_cars_vehicles_scraper.py)

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run_input = {
    "startUrls": [],
    "searchUrl": "",
    "searchQuery": "",
    "subarea": "",
    "subdomains": [],
    "postal": "",
    "autoMakeModel": ""
}

run = client.actor("unitbytes/craigslist-cars-vehicles-scraper").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item.get("title"), item.get("vehicleTitleStatus"), item.get("price"))

Sample Output Schema (samples/craigslist-cars-vehicles-scraper-sample.json)

{
  "listingId": "7987858896",
  "url": "https://www.craigslist.org/view/d/norwalk-2013-toyota-tacoma-trd-off-road/7987858896",
  "listingStatus": "active",
  "title": "2013 Toyota Tacoma TRD Off Road 4x4",
  "price": 14500.0,
  "currency": "USD",
  "subarea": "sfv",
  "condition": "excellent",
  "description": "Clean 2013 Toyota Tacoma TRD Off-Road. 104,500 miles, automatic transmission, clean title in hand.",
  "postDate": "2026-10-22T07:07:19-0700",
  "city": "Norwalk",
  "state": "CA",
  "zipCode": "90652",
  "latitude": 33.9022,
  "longitude": -118.0817,
  "isDealer": false,
  "isVehicle": true,
  "vehicleYear": 2013,
  "vehicleMake": "toyota tacoma trd off-road",
  "vehicleMiles": 104500,
  "vehicleVin": "5TFUX4EN4DX012345",
  "vehicleTransmission": "automatic",
  "vehicleFuelType": "gas",
  "vehicleTitleStatus": "clean",
  "thumbnailUrl": "https://images.craigslist.org/00B0B_1ZBm7qXYZ_600x450.jpg",
  "imageUrls": [
    "https://images.craigslist.org/00B0B_1ZBm7qXYZ_1200x900.jpg"
  ]
}

Frequently Asked Questions

Q: How do I scrape multiple cities or a whole region in one run? You can target multi-metro corridors using either

Q: How do I filter for fresh listings posted today? Enable Posted Today (postedToday: true) and sort by Newest First (sort: "date") to instruct Craigslist's search engine to return only listings published within the last 24 hours.

Q: Can I extract phone numbers and emails? Yes! The Actor automatically scans every listing description for phone numbers and email addresses and includes them in phoneNumbers[] and emails[]. The contactObfuscated field is set to false whenever direct contact information is detected.

Q: Can I paste a search URL directly from my browser? Yes! Simply copy any search URL from your browser (e.g. https://losangeles.craigslist.org/search/cta?query=tacoma&min_price=5000&max_price=20000) and paste it into searchUrl or startUrls.


πŸš€ Craigslist Real Estate, Property & Housing Scraper (FSBO) (unitbytes/craigslist-real-estate-property-scraper)

Scrape Craigslist real estate for sale (FSBO), rental properties, apartments, houses, rooms, sublets & commercial property across 700+ cities. Filter by beds, baths, sqft, pets & parking. MCP & AI Agent ready.

Key Capabilities

  • Comprehensive Real Estate & Housing Data: Scrape apartments, homes for rent, commercial listings, and vacation rentals with bedrooms, bathrooms, square footage (sqft), laundry, and parking details.
  • Direct-Contact Extraction for Lead Generation: Automatically parses real phone numbers and email addresses directly from the listing description. Filter by un-obfuscated contacts for outbound sales, recruiting, automotive buying, or real estate...
  • Native Repost & Duplicate Suppression: Combines Craigslist server-side bundleDuplicates=1 with in-run content deduplication to eliminate repetitive broker/property-manager reposts before detail fetching.
  • Multi-Metro Regional Clustering: Run a single job across entire economic corridors using built-in presets (socal, norcal_bayarea, florida, texas, tri_state_ny, pacific_northwest, midwest_chicago) or specify arbitrary cities (subdomains...

Python SDK Quickstart (examples/run_craigslist_real_estate_property_scraper.py)

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run_input = {
    "startUrls": [],
    "searchUrl": "",
    "searchQuery": "",
    "subarea": "",
    "subdomains": [],
    "postal": ""
}

run = client.actor("unitbytes/craigslist-real-estate-property-scraper").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item.get("title"), item.get("price"), item.get("postDate"))

Sample Output Schema (samples/craigslist-real-estate-property-scraper-sample.json)

{
  "listingId": "7987855731",
  "url": "https://www.craigslist.org/view/d/white-plains-spacious-3br-apartment/7987855731",
  "listingStatus": "active",
  "title": "Spacious Top-Floor 3BR Apartment β€” Garage, Laundry, Pet Friendly",
  "price": 3650.0,
  "currency": "USD",
  "subarea": "wch",
  "description": "Bright 3-bedroom, 1.5-bath apartment with attached garage parking and laundry in building. Dogs and cats OK.",
  "postDate": "2026-10-22T10:01:59-0400",
  "city": "White Plains",
  "state": "NY",
  "zipCode": "10601",
  "latitude": 41.034,
  "longitude": -73.7629,
  "isDealer": false,
  "bedrooms": 3,
  "bathrooms": 1.5,
  "sqft": 1300,
  "housingType": "apartment",
  "laundry": "laundry in bldg",
  "parking": "attached garage",
  "thumbnailUrl": "https://images.craigslist.org/00B0B_1ZBm7qXYZ_600x450.jpg",
  "imageUrls": [
    "https://images.craigslist.org/00B0B_1ZBm7qXYZ_1200x900.jpg"
  ]
}

Frequently Asked Questions

Q: How do I scrape multiple cities or a whole region in one run? You can target multi-metro corridors using either

Q: How do I filter for fresh listings posted today? Enable Posted Today (postedToday: true) and sort by Newest First (sort: "date") to instruct Craigslist's search engine to return only listings published within the last 24 hours.

Q: Can I extract phone numbers and emails? Yes! The Actor automatically scans every listing description for phone numbers and email addresses and includes them in phoneNumbers[] and emails[]. The contactObfuscated field is set to false whenever direct contact information is detected.

Q: Can I paste a search URL directly from my browser? Yes! Simply copy any search URL from your browser (e.g. https://losangeles.craigslist.org/search/cta?query=tacoma&min_price=5000&max_price=20000) and paste it into searchUrl or startUrls.


πŸš€ Craigslist Jobs, Gigs & Services Scraper: Pay & Remote (unitbytes/craigslist-jobs-gigs-services-scraper)

Scrape Craigslist jobs, local gigs, resumes & services across 700+ cities and 35+ categories. Filter by full-time, part-time, contract, remote/telecommute & paid gigs with compensation details. MCP & AI Agent ready.

Key Capabilities

  • Direct-Contact Extraction for Lead Generation: Automatically parses real phone numbers and email addresses directly from the listing description. Filter by un-obfuscated contacts for outbound sales, recruiting, automotive buying, or real estate...
  • 100% Free Server Compute: Backed by Pay-Per-Event (PPE) monetizationβ€”you pay $0 for server compute and RAM, and are only billed for verified listings saved to your dataset.
  • Multi-Metro Regional Clustering: Run a single job across entire economic corridors using built-in presets (socal, norcal_bayarea, florida, texas, tri_state_ny, pacific_northwest, midwest_chicago) or specify arbitrary cities (subdomains...
  • Worldwide Metros & Subarea Routing: Target over 700+ metropolitan regions across the United States, Canada, UK, Australia, New Zealand, Europe, and Asia. Drill down into specific boroughs or neighborhoods (e.g.

Python SDK Quickstart (examples/run_craigslist_jobs_gigs_services_scraper.py)

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run_input = {
    "startUrls": [],
    "searchUrl": "",
    "searchQuery": "",
    "subarea": "",
    "subdomains": [],
    "postal": ""
}

run = client.actor("unitbytes/craigslist-jobs-gigs-services-scraper").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item.get("title"), item.get("jobTitle"), item.get("companyName"))

Sample Output Schema (samples/craigslist-jobs-gigs-services-scraper-sample.json)

{
  "listingId": "7987564278",
  "url": "https://www.craigslist.org/view/d/san-mateo-senior-site-reliability/c5edHqKDrLu5zQsnY8fPbo",
  "listingStatus": "active",
  "title": "Senior Site Reliability Engineer",
  "currency": "USD",
  "subarea": "pen",
  "description": "We are seeking a Senior Site Reliability Engineer to scale our cloud infrastructure. Full-time role with competitive salary, equity, and comprehensive benefits.",
  "postDate": "2026-10-21T13:54:31-0700",
  "city": "San Mateo",
  "state": "CA",
  "latitude": 37.5538,
  "longitude": -122.27,
  "isDealer": false,
  "compensation": "$130,000 to $200,000 + equity + benefits",
  "employmentType": "full-time",
  "jobTitle": "Software Engineering Manager",
  "companyName": "IXL Learning",
  "isTelecommuting": true
}

Frequently Asked Questions

Q: How do I scrape multiple cities or a whole region in one run? You can target multi-metro corridors using either

Q: How do I filter for fresh listings posted today? Enable Posted Today (postedToday: true) and sort by Newest First (sort: "date") to instruct Craigslist's search engine to return only listings published within the last 24 hours.

Q: Can I extract phone numbers and emails? Yes! The Actor automatically scans every listing description for phone numbers and email addresses and includes them in phoneNumbers[] and emails[]. The contactObfuscated field is set to false whenever direct contact information is detected.

Q: Can I paste a search URL directly from my browser? Yes! Simply copy any search URL from your browser (e.g. https://losangeles.craigslist.org/search/cta?query=tacoma&min_price=5000&max_price=20000) and paste it into searchUrl or startUrls.


πŸš€ OfferUp Scraper: Marketplace Listings, Cars & Deals (unitbytes/offerup-scraper)

Fast OfferUp Scraper with no login required. Extract local marketplace listings, used cars & VINs, seller inventories, HD photos, and price drops across any US ZIP code. From $0.80/1k.

Key Capabilities

  • Precise Postal Zip Code Targeting: Target any US zip code with radius filtering (5, 10, 20, 50 miles) to extract hyper-local classifieds.
  • Seller Reputation & TruYou Badges: Extract seller star ratings, total sales count, account join date, and OfferUp TruYou ID verification status.
  • Shipping & Local Pickup Segmentation: Distinguish between nationwide shipped items and local cash-and-carry listings for precise deal finding.
  • Condition & Negotiable Flags: Captures item condition (New, Open Box, Used, For Parts) and whether the seller is open to price offers.

Python SDK Quickstart (examples/run_offerup_scraper.py)

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run_input = {
    "searchQuery": "iphone 15",
    "zipCode": "90001",
    "startUrls": [],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US"
    }
}

run = client.actor("unitbytes/offerup-scraper").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item.get("title"), item.get("vehicleTitleStatus"), item.get("locationName"))

Sample Output Schema (samples/offerup-scraper-sample.json)

{
  "listingId": "98ac7bc0-3fb6-3841-a8c6-e09242e60239",
  "url": "https://offerup.com/item/detail/98ac7bc0-3fb6-3841-a8c6-e09242e60239",
  "title": "2000 Honda Civic",
  "price": 16999,
  "originalPrice": 16999,
  "isFirmPrice": false,
  "condition": "Open Box / Like New",
  "description": "Selling my 2000 Honda Civic Si (EM1) with 168,635 miles. Clean title, runs great, AC cold.",
  "locationName": "Snohomish, WA",
  "distanceMiles": 12.4,
  "latitude": 48.035,
  "longitude": -122.039,
  "sellerName": "Kyle",
  "sellerRating": 5,
  "sellerReviewCount": 69,
  "sellerDateJoined": "2016-03-10T04:17:26Z",
  "sellerItemsSold": 115,
  "sellerResponseTime": "Responds in a few minutes",
  "sellerVerified": true,
  "isDealer": false,
  "isVehicle": true,
  "vehicleYear": 2000,
  "vehicleMake": "Honda",
  "vehicleModel": "Civic",
  "vehicleTrim": "SI",
  "vehicleMiles": 168635,
  "vehicleTransmission": "Manual",
  "vehicleFuelType": "Regular",
  "vehicleTitleStatus": "clean",
  "thumbnailUrl": "https://images.offerup.com/lpERZEJKw582yoN6AQA9YowYf8U=/333x250/4f74/4f7412e94d3542ecbb49a6012adeae69.jpg",
  "imageUrls": [
    "https://images.offerup.com/3wcWUHuAUp24fM0rkI4UffFmn_k=/1280x960/4f74/4f7412e94d3542ecbb49a6012adeae69.jpg",
    "https://images.offerup.com/XmgJCqtcdbPol0IbjbPHZFIVmJE=/960x1280/5f2a/5f2a8b7b78ce4f31a32f5f7d810f3c2f.jpg"
  ],
  "localPickup": true,
  "shippingAvailable": false
}

Frequently Asked Questions

Q: Can I filter listings by shipping availability? Yes. You can isolate local pickup items, nationwide shipping listings, or collect both.

Q: How does the scraper handle OfferUp rate limits? The UnitBytes engine utilizes managed cloud request routing and residential proxy pools, handling anti-bot checks automatically.

Q: Are high-resolution photos included? Yes, every listing includes direct links to full-resolution photos hosted on OfferUp CDN.

Q: What data export formats are provided? Download directly in JSON, CSV, Excel, or stream records via REST API and Webhooks.


πŸš€ OfferUp Used Cars, Vehicles & VIN Scraper: Dealer Specs (unitbytes/offerup-vehicles-cars-scraper)

Extract OfferUp used cars, trucks, VIN numbers, mileage, title status, MPG, history report issues, and auto dealer phone numbers by make, model, year & ZIP code. From $0.80/1k.

Key Capabilities

  • 19 Structured Vehicle Attributes: vehicleVin, vehicleYear, vehicleMake, vehicleModel, vehicleTrim, vehicleMiles, vehicleTitleStatus, vehicleDriveTrain (FWD/RWD/AWD/4WD), vehicleTransmission, vehicleEngineCylinders, vehicleEngineDescription...
  • Vehicle History Report Intelligence: extracts vehicleHistoryProvider (AutoCheck / Carfax), vehicleHistoryIssues (issue count), and vehicleHistoryReportUrl.
  • Dealer vs. Private Seller Lead Capture: distinguishes isAutosDealer (vehicleSellerType: "dealer") from private owners and extracts verified dealership phone numbers (sellerPhone), website links (sellerWebsite), physical addresses (sellerAddress)...
  • Server-Side Year & Mileage Filtering: filter upstream by make, model, minYear, maxYear, maxMiles, minPrice, and maxPrice so you only pay for matching vehicles.

Python SDK Quickstart (examples/run_offerup_vehicles_cars_scraper.py)

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run_input = {
    "make": "Honda",
    "model": "Civic",
    "zipCode": "90001",
    "startUrls": [],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US"
    }
}

run = client.actor("unitbytes/offerup-vehicles-cars-scraper").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item.get("title"), item.get("categoryName"), item.get("subcategoryName"))

Sample Output Schema (samples/offerup-vehicles-cars-scraper-sample.json)

{
  "listingId": "31e89a78-c823-3e02-89b3-8b15e2380f28",
  "url": "https://offerup.com/item/detail/31e89a78-c823-3e02-89b3-8b15e2380f28",
  "title": "2022 Honda Civic Si",
  "price": 18995.0,
  "status": "LISTED",
  "categoryName": "Vehicles",
  "subcategoryName": "Cars & Trucks",
  "locationName": "Houston, TX",
  "latitude": 29.7301,
  "longitude": -95.6432,
  "isVehicle": true,
  "vehicleYear": 2022,
  "vehicleMake": "Honda",
  "vehicleModel": "Civic Si",
  "vehicleTrim": "Si",
  "vehicleMiles": 70408,
  "vehicleVin": "2HGFE1E56NH471015",
  "vehicleColor": "red",
  "vehicleBody": "Sedan",
  "vehicleDoors": 4,
  "vehicleTransmission": "Manual",
  "vehicleDriveTrain": "FWD",
  "vehicleFuelType": "Premium gasoline",
  "vehicleEngineCylinders": "4",
  "vehicleEngineDescription": "1.5L I-4 direct injection, DOHC, VTEC variable valve control, intercooled turbo, 200HP",
  "vehicleCityMpg": 27,
  "vehicleHighwayMpg": 37,
  "vehicleStockNumber": "CN1015",
  "vehicleSellerType": "dealer",
  "vehicleOptions": [
    "Backup Camera",
    "LED Headlights",
    "Lane Keeping Assist"
  ],
  "sellerId": "170778807",
  "sellerProfileUrl": "https://offerup.com/p/170778807",
  "sellerName": "Crown Auto Sales 2",
  "sellerPhone": "8329604446",
  "sellerWebsite": "https://crownautosalestx.com/aboutus",
  "sellerAddress": "2737 S Texas 6, Houston, TX 77082, USA",
  "isDealer": true,
  "isAutosDealer": true,
  "sellerBadges": [
    "Confirmed phone",
    "Confirmed email"
  ],
  "sellerGoogleReviewRating": 4.0
}

Frequently Asked Questions

Q: Do I need my own proxies or account login for offerup-vehicles-cars-scraper? No. UnitBytes manages residential proxy rotation and automated request orchestration so you never need personal accounts or proxies.

Q: What output formats are supported? All data can be downloaded in JSON, CSV, or Excel formats, or consumed directly via the Apify REST API and webhooks.

Q: How does pricing work? You only pay for successful records extracted under Apify Pay-Per-Event pricing, with zero monthly minimums or idle compute costs.

Q: Can this actor be integrated into automated workflows? Yes. You can trigger runs via Apify API, Python/JavaScript clients, Make, Zapier, or scheduled cron workflows.


πŸš€ OfferUp Seller Inventory & Auto Dealer Leads Scraper (unitbytes/offerup-seller-inventory-scraper)

Scrape OfferUp seller storefronts (/p/), complete dealer inventories, verified business phone numbers, websites, physical addresses, opening hours, and Google reviews. From $0.80/1k.

Key Capabilities

  • Verified B2B Dealer & Seller Contacts: extracts sellerPhone (c2cPhoneNumber), sellerEmail, sellerWebsite, sellerAddress (formatted street address + lat/lng), sellerOpeningHours, and sellerBadges (Confirmed phone, Confirmed email, TruYou).
  • Embedded Google Reviews & Reputation: extracts sellerRating, sellerReviewCount, sellerItemsSold, sellerGoogleReviewRating, and sellerGoogleReviewsSample (full customer review texts).
  • Complete Paginated Storefront Inventory at $0.80 / 1k: when scraping /p/ seller profiles, full seller contact details AND storefront listings (title, price, status, vehicleMiles, imageUrls) are captured in Fast Mode (scrapeDetails: false β€” only $0.80 /...
  • Local Dealer Discovery by ZIP Code: leave sellerIds blank and enable scrapeDetails: true to discover auto dealerships (isAutosDealer: true) and high-volume local merchants in any US metro area.

Python SDK Quickstart (examples/run_offerup_seller_inventory_scraper.py)

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run_input = {
    "sellerIds": ["170778807"],
    "startUrls": [],
    "zipCode": "77082",
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US"
    }
}

run = client.actor("unitbytes/offerup-seller-inventory-scraper").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item.get("title"), item.get("locationName"), item.get("sellerName"))

Sample Output Schema (samples/offerup-seller-inventory-scraper-sample.json)

{
  "listingId": "d9f7c56b-a931-35e1-a286-12f83fa44589",
  "url": "https://offerup.com/item/detail/d9f7c56b-a931-35e1-a286-12f83fa44589",
  "title": "2019 BMW X4",
  "price": 23995.0,
  "status": "LISTED",
  "locationName": "Houston, TX",
  "latitude": 29.7301361,
  "longitude": -95.643225,
  "isVehicle": true,
  "vehicleMiles": 103937,
  "sellerId": "170778807",
  "sellerProfileUrl": "https://offerup.com/p/170778807",
  "sellerName": "Crown Auto Sales 2",
  "sellerPhone": "8329604446",
  "sellerWebsite": "https://crownautosalestx.com/aboutus",
  "sellerAddress": "2737 S Texas 6, Houston, TX 77082, USA",
  "sellerBio": "Welcome to Crown Auto Sales! Our virtual showroom is stocked with a wide selection of vehicles...",
  "sellerLastActive": "Active in the last day",
  "isDealer": true,
  "isAutosDealer": true,
  "isSubPrimeDealer": false,
  "sellerBadges": [
    "Confirmed phone",
    "Confirmed email"
  ],
  "sellerOpeningHours": "Monday: 9:00 AM–7:00 PM | Tuesday: 9:00 AM–7:00 PM | Wednesday: 9:00 AM–7:00 PM | Thursday: 9:00 AM–7:00 PM | Friday: 9:00 AM–7:00 PM | Saturday: 9:00 AM–7:00 PM | Sunday: Closed",
  "sellerGoogleReviewRating": 4.0
}

Frequently Asked Questions

Q: Do I need my own proxies or account login for offerup-seller-inventory-scraper? No. UnitBytes manages residential proxy rotation and automated request orchestration so you never need personal accounts or proxies.

Q: What output formats are supported? All data can be downloaded in JSON, CSV, or Excel formats, or consumed directly via the Apify REST API and webhooks.

Q: How does pricing work? You only pay for successful records extracted under Apify Pay-Per-Event pricing, with zero monthly minimums or idle compute costs.

Q: Can this actor be integrated into automated workflows? Yes. You can trigger runs via Apify API, Python/JavaScript clients, Make, Zapier, or scheduled cron workflows.


πŸš€ OfferUp Deal Monitor, Price Drop & Status Tracker (unitbytes/offerup-deal-monitor-scraper)

Monitor OfferUp for fresh bargains, price drops, used electronics & phones, and batch-check listing status (LISTED vs SOLD) across any US ZIP code. From $0.80/1k.

Key Capabilities

  • Automatic Price Drop Calculation: compares originalPrice vs. price and outputs exact priceDropAmount ($) and priceDropPercent (%) alongside isFirmPrice (negotiable vs. firm).
  • Used Electronics & Phone Flipping Filters: server-side conditionFilter lets you target for_parts (cracked/repair arbitrage), like_new (open-box flips), or new across Cell Phones (1.2), Computers (1.6), and Video Games (1.5), plus deliveryMethod (local...
  • Batch Listing Status Checker: pass a list of existing https://offerup.com/item/detail/ URLs in startUrls to verify in seconds whether items are still LISTED, marked SOLD, or removed (NOT_FOUND).
  • Zero-Cookie Execution: Engineered with resilient cloud proxy rotation and automatic session management.

Python SDK Quickstart (examples/run_offerup_deal_monitor_scraper.py)

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run_input = {
    "searchQuery": "iphone 15 pro",
    "zipCode": "90001",
    "startUrls": [],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US"
    }
}

run = client.actor("unitbytes/offerup-deal-monitor-scraper").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item.get("title"), item.get("categoryName"), item.get("subcategoryName"))

Sample Output Schema (samples/offerup-deal-monitor-scraper-sample.json)

{
  "listingId": "9a781d60-e703-3486-9a62-2d713775362c",
  "url": "https://offerup.com/item/detail/9a781d60-e703-3486-9a62-2d713775362c",
  "title": "iPhone 15 Pro 256GB Unlocked",
  "price": 450.0,
  "originalPrice": 550.0,
  "priceDropAmount": 100.0,
  "priceDropPercent": 18.2,
  "isFirmPrice": false,
  "condition": "Open Box / Like New",
  "status": "LISTED",
  "categoryName": "Electronics & Media",
  "subcategoryName": "Cell phones & Accessories",
  "locationName": "Los Angeles, CA",
  "localPickup": true,
  "shippingAvailable": true,
  "sellerName": "Maria",
  "sellerItemsSold": 10
}

Frequently Asked Questions

Q: Do I need my own proxies or account login for offerup-deal-monitor-scraper? No. UnitBytes manages residential proxy rotation and automated request orchestration so you never need personal accounts or proxies.

Q: What output formats are supported? All data can be downloaded in JSON, CSV, or Excel formats, or consumed directly via the Apify REST API and webhooks.

Q: How does pricing work? You only pay for successful records extracted under Apify Pay-Per-Event pricing, with zero monthly minimums or idle compute costs.

Q: Can this actor be integrated into automated workflows? Yes. You can trigger runs via Apify API, Python/JavaScript clients, Make, Zapier, or scheduled cron workflows.


⚑ Quick Installation & Local Usage

1. Run with Python (apify-client)

git clone https://github.com/unitbytes/Craigslist-OfferUp-Scraper-API.git
cd Craigslist-OfferUp-Scraper-API
pip install -r requirements.txt
export APIFY_API_TOKEN="your_apify_api_token"
python examples/run_craigslist_scraper.py

2. Import into n8n (Self-Hosted or Cloud)

  1. Open any .json file inside the n8n/ folder (or copy in 1 click from unitbytes.com/n8n / n8n.io/creators/unitbytes).
  2. Press Ctrl+V / Cmd+V directly onto your n8n workflow canvas.
  3. Paste your Apify API Token into Node 1. Set Apify Token & Input and click Test Workflow.

3. Use with AI Coding Agents (Cursor, Windsurf & Claude Code MCP)

This repository includes a ready-to-use Model Context Protocol configuration at .cursor/mcp.json pointing to https://mcp.apify.com with this suite's UnitBytes actors pre-registered. Open this folder in Cursor or Windsurf to let your AI agent run live extractions and inspect schemas automatically.


πŸ’Ό Need Done-For-You Datasets or Custom Pipelines?

Don't want to manage API tokens or scripts? UnitBytes Data Delivery provides ready-to-use CSV, Excel (.xlsx), Google Sheets, or Webhook feeds tailored to your exact target keywords, cities, or categories.

About

High-speed Craigslist Worldwide ($0.50/1K), OfferUp Marketplace, and Google Jobs Scraper API on Apify. Extract cars, housing leads, local deals, and ATS jobs.

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors