Swappa Listings Scraper
Pricing
from $16.00 / 1,000 swappa listings
Swappa Listings Scraper
Scrape public Swappa marketplace listings for prices, condition, device attributes, seller details, images, and optional detail-page enrichment for resale and inventory research.
Pricing
from $16.00 / 1,000 swappa listings
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 hours ago
Last modified
Categories
Share
Extract public Swappa marketplace listings into a clean dataset for price monitoring, inventory research, resale analysis, and used-device market comparisons. The Actor accepts Swappa product-listing pages and individual public listing URLs, follows pagination, deduplicates by listing code, and can optionally open every detail page.
What it extracts
| Field group | Examples |
|---|---|
| Listing | listingId, productName, headline, detailUrl, featured status, badges |
| Price | price, currency, priceValidUntil, availability |
| Device | condition, battery health, storage, color, carrier, model number, GTIN |
| Seller | public display name, profile URL, star rating, rating count, ships-from location |
| Media | card image or full image gallery when detail enrichment is enabled |
| Detail enrichment | seller description, damage disclosure, creation/update/expiry dates |
| Provenance | source URL, scrape timestamp, enrichment status, record warning |
The dataset contains only listing records. Run-level warnings and access diagnostics are written to the OUTPUT key-value-store record so they do not pollute the business dataset.
Free-plan result limit
Verified Apify free-plan runs return at most 5 unique listing records per run, even if maxResults is higher. Upgrade your Apify plan to request more than five records in one run; paid users retain the requested maxResults cap.
When to use it
- Monitor asking prices and inventory for a specific phone, laptop, watch, tablet, camera, or other Swappa product page.
- Compare condition, storage, carrier, color, battery-health, and seller-location distributions.
- Track public listings from a filtered Swappa URL you already use in a browser.
- Enrich a short list of individual listing URLs with seller disclosures and gallery images.
Do not use this Actor for login-only pages, buying or selling actions, account data, messages, CAPTCHA solving, or bypassing access controls. It scrapes public listing information only.
Input
| Field | Type | Default | Description |
|---|---|---|---|
startUrls | array | unlocked iPhone 15 listings | Public /listings/... product pages or /listing/view/... detail pages on swappa.com |
maxResults | integer | 20 | Maximum unique listing records, from 1 to 500 |
maxPages | integer | 3 | Maximum product result pages, from 1 to 20 |
includeDetails | boolean | false | Open each listing for description, damage notes, dates, badges, and full images |
proxyConfiguration | object | Apify US proxy group | Browser-session proxy settings; keep the default for reliable Cloudflare access |
Fast card-level run
{"startUrls": [{ "url": "https://swappa.com/listings/apple-iphone-15?carrier=unlocked" }],"maxResults": 20,"maxPages": 2,"includeDetails": false,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["BUYPROXIES94952"],"apifyProxyCountry": "US"}}
Detail-enriched run
{"startUrls": [{ "url": "https://swappa.com/listing/view/LAJB10743" }],"maxResults": 1,"maxPages": 1,"includeDetails": true,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["BUYPROXIES94952"],"apifyProxyCountry": "US"}}
With the Apify API, send the same JSON as the Actor run input. Results are available through the default dataset URL exposed in the Actor output schema.
Output example
{"listingId": "LAJB10743","productName": "Apple iPhone 15","brand": "Apple","headline": "iPhone 15 unlocked","description": null,"damageDescription": null,"price": 335,"currency": "USD","priceValidUntil": "2026-09-02","condition": "Good","batteryHealthPercent": 83,"storage": "128GB","color": "Black","carrier": "Unlocked","modelNumber": "A2846","gtin": "00784956710571","availability": "InStock","featured": true,"imageCount": 5,"imageUrls": ["https://static.swappa.com/images/cache/example.jpg"],"paymentMethods": ["PayPal"],"listingBadges": [],"sellerName": "Example Electronics","sellerProfileUrl": "https://swappa.com/user/ABC123/profile","sellerRating": 4.9,"sellerRatingCount": 523,"sellerLocation": "Houston, TX","dateCreated": null,"dateUpdated": null,"dateExpires": null,"detailUrl": "https://swappa.com/listing/view/LAJB10743","sourceUrl": "https://swappa.com/listings/apple-iphone-15?carrier=unlocked","scrapedAt": "2026-08-29T12:00:00.000Z","detailEnriched": false,"warning": null}
Actual listings and prices change continuously. The example illustrates the schema and is not a current offer.
Pricing
This Actor uses pay-per-event pricing. These are the current Apify Store event prices:
| Event | Price (USD) | When it is charged |
|---|---|---|
apify-default-dataset-item | FREE: $0.02; BRONZE: $0.02; SILVER: $0.02; GOLD: $0.016; PLATINUM: $0.016; DIAMOND: $0.016 | Swappa listing — One unique, schema-valid public Swappa listing written to the default dataset. |
apify-actor-start | $0.005 | Actor Start — Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). — Charged once per run. |
Apify platform usage for this Actor run is included alongside the event prices above; no separate per-run platform-usage fee is passed to users.
This covers Apify platform usage for this Actor run. Other Apify products or usage outside this Actor run may still follow your account plan.
Reliability and limits
Swappa can return a Cloudflare managed challenge to raw HTTP and direct traffic, so the Actor uses a real browser, coherent cookies and fingerprinting, bounded concurrency, session retirement, and an Apify US proxy group by default. It does not solve CAPTCHAs or defeat access controls. If all permitted sessions are challenged, the run returns zero fabricated records, writes a BLOCKED diagnostic to OUTPUT, and creates no result events.
Card-level mode is faster and usually needs one page per 50 listings. Detail enrichment adds one browser request per listing and can take materially longer. Results are deduplicated by Swappa listing code. A failed enrichment request preserves the already validated card record with a warning instead of discarding useful public data.
The Actor accepts only HTTPS Swappa product-listing and listing-detail paths. It rejects account, checkout, search, login, help, and unrelated URLs. A maximum of 500 results and 20 result pages keeps runs bounded.
Legal and responsible use
Use the Actor only for lawful purposes and comply with Swappa's terms, robots policies, applicable privacy laws, and rate limits. Do not use the output for harassment, discrimination, spam, or attempts to identify private individuals. Seller display names and locations are public marketplace data; collect and retain only what your use case requires. Swappa is a trademark of its owner and is not affiliated with this Actor.
Support
When reporting a problem, include the run ID, a redacted input, whether detail enrichment was enabled, and the OUTPUT record. Never post proxy credentials, account cookies, or tokens.