swappa.com APIswappa.com ↗
Access Swappa listings, seller profiles, market prices, and product reviews via API. Search devices, filter by condition and carrier, and retrieve structured pricing data.
curl -X GET 'https://api.parse.bot/scraper/f9a224bf-b697-4565-85ca-5f0774766ba6/search_listings?query=iphone+15' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for product models on Swappa by keyword. Returns matching products with starting prices and slugs for use with other endpoints.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Search keyword (e.g. 'iphone 15', 'samsung galaxy s25'). |
{
"type": "object",
"fields": {
"query": "string, the search keyword used",
"results": "array of product matches, each with name, url, price (starting price string), and slug"
},
"sample": {
"data": {
"query": "iphone 15",
"results": [
{
"url": "https://swappa.com/listings/apple-iphone-15",
"name": "Apple iPhone 15",
"slug": "apple-iphone-15",
"price": "$288+"
},
{
"url": "https://swappa.com/listings/apple-iphone-15-pro",
"name": "Apple iPhone 15 Pro",
"slug": "apple-iphone-15-pro",
"price": "$434+"
}
]
},
"status": "success"
}
}About the swappa.com API
The Swappa API provides access to 6 endpoints covering the full breadth of Swappa's used electronics marketplace, including active device listings, seller profiles, product reviews, and market pricing overviews. The search_listings endpoint lets you query by keyword and retrieve product slugs used across the rest of the API, while get_product_listings supports filtering by condition, carrier, storage, and color with pagination support.
Search and Browse Listings
Start with search_listings, which accepts a query string (e.g. 'iphone 15' or 'samsung galaxy s25') and returns an array of matching products, each with a name, url, starting price, and slug. That slug is the key input for get_product_listings, which retrieves active listings for a specific model. You can filter results by condition (mint, good, fair), carrier (unlocked, att, verizon, tmobile), storage (128gb, 256gb), and color, and paginate through results using the page parameter. Each listing in the response includes a listing_id, name, variant, price, carrier, and url.
Listing Detail and Product Reviews
get_listing_detail takes a listing_id from listing results and returns structured data for that individual listing. The top-level price field may be null; the canonical price is in json_ld.offers.price, which is part of a full Product schema object that also includes offers.currency, offers.condition, offers.seller, brand, aggregateRating, and description. The specs field returns key-value pairs of device specs, and description holds the seller's free-text notes. get_product_reviews accepts a product_slug and optional count and returns an array of review objects with author, text, rating (e.g. '5.0'), and date as an ISO date string.
Seller Profiles and Market Pricing
get_seller_profile retrieves a seller by username and returns their display name, transaction stats (sold, bought, active counts), badges (e.g. 'Trusted'), rating, location, member_since, review_count, and their active_listings array with title, price, condition, carrier, color, storage, and image per listing. get_market_prices_overview requires no inputs and returns ranked tables of best-selling and most-listed products across Swappa, each row containing product name, listing count, and average price — useful for tracking category-level price trends without querying individual listings.
- Track average resale prices for specific iPhone or Galaxy models using
get_market_prices_overviewranked product tables. - Build a price-drop alert tool by polling
get_product_listingswithcondition=mintand a targetproduct_slug. - Aggregate seller reputation data from
get_seller_profileincluding badge status, rating, and transaction history. - Enrich a used device comparison tool with structured specs and
json_ld.offers.conditionfromget_listing_detail. - Filter carrier-specific inventory by passing
carrier=unlockedorcarrier=verizontoget_product_listings. - Pull product review sentiment from
get_product_reviewsto surface user satisfaction trends across device models. - Identify top-selling device categories by listing count using the
market_pricessections fromget_market_prices_overview.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Swappa have an official public developer API?+
Why might the top-level `price` field in `get_listing_detail` be null?+
price field at the top level can be null depending on how the listing page is structured. The endpoint documentation recommends using json_ld.offers.price instead, which comes from the structured Product schema data and is consistently populated. The json_ld object also includes offers.currency and offers.condition for full context.Can I look up completed or sold listings to analyze historical prices?+
get_product_listings and market pricing averages via get_market_prices_overview, but does not include a dedicated endpoint for sold or completed transactions. You can fork it on Parse and revise to add the missing endpoint.Is there a way to filter `search_listings` results by device category (phones, tablets, laptops)?+
search_listings endpoint accepts only a free-text query string and returns matching products with slugs and starting prices. Category-level filtering is not currently a parameter. You can fork it on Parse and revise to add category filtering as an input.What does `get_market_prices_overview` actually return, and how is it structured?+
market_prices array of section objects. Each section has a title (e.g. 'Best Selling') and a data array where each row includes rank number, product name, listing count, and average price. No inputs are required. This is a snapshot of Swappa's top products, not a filtered query.