shpock.com APIshpock.com ↗
Access Shpock classifieds data via API. Search listings, get item details, retrieve seller profiles, and browse categories across this UK/EU marketplace.
curl -X GET 'https://api.parse.bot/scraper/5edad5a3-3179-4856-8042-9d695488627b/search_listings?limit=5&category=el' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for product listings with keywords, categories, and filters. Shpock is a location-based marketplace (primarily UK/EU). Keyword search results depend on the user's detected geolocation. Browsing by category or without a query typically returns more results.
| Param | Type | Description |
|---|---|---|
| limit | integer | Max results per page |
| query | string | Search keyword (results are geo-dependent) |
| cursor | string | Pagination cursor from next_cursor in previous response |
| is_free | boolean | Filter for free items only |
| category | string | Category ID to filter by (e.g. 'el' for Electronics, 'fa' for Fashion, 'hg' for Home & Garden, 'bt' for Baby & Toddler, 'jw' for Jewellery & Watches, 'hb' for Health & Beauty, 'sl' for Sport & Leisure, 'tg' for Toys & Games, 'mb' for Movies Books & Music, 've' for Vehicles, 'py' for Property, 'se' for Services, 'ot' for Other) |
| condition | string | Item condition filter: 'new', 'like_new', 'good', 'fair' |
| max_price | number | Maximum price filter |
| min_price | number | Minimum price filter |
| is_on_sale | boolean | Filter for items on sale |
{
"type": "object",
"fields": {
"count": "integer - number of items returned",
"items": "array of item objects with id, title, description, price, currency, locality, media, and boolean flags",
"limit": "integer - page size used",
"total": "integer or null - total matching items",
"offset": "integer - current offset",
"next_cursor": "string or null - cursor for next page",
"filters_applied": "object - active filters sent in the request"
},
"sample": {
"data": {
"count": 4,
"items": [
{
"id": "aWzouShPqVPLMNZu",
"path": "/en-gb/i/aWzouShPqVPLMNZu/endgame-nitendo-switch-case",
"media": [
{
"id": "696ce8b9284fa953cbe7d666",
"title": "",
"width": 1333,
"height": 1000,
"__typename": "Media"
}
],
"price": 6,
"title": "Endgame Nitendo switch case",
"is_new": false,
"is_free": false,
"is_sold": false,
"currency": "gbp",
"distance": null,
"locality": "03773 Croydon",
"is_boosted": false,
"is_on_sale": false,
"description": "Endgame switch case ,",
"is_shippable": false,
"canonical_url": "https://www.shpock.com/en-gb/i/aWzouShPqVPLMNZu/endgame-nitendo-switch-case",
"distance_unit": null,
"original_price": null
}
],
"limit": 5,
"total": null,
"offset": 0,
"next_cursor": "brQeiSZDDZ+wes6/...",
"filters_applied": {
"category": "el"
}
},
"status": "success"
}
}About the shpock.com API
The Shpock API provides 5 endpoints covering listing search, item detail, seller profiles, seller inventory, and category discovery on the Shpock second-hand classifieds marketplace. The search_listings endpoint accepts keyword queries, category filters, price ranges, and condition filters, returning structured item objects with price, location, media, and availability flags. Results are geolocation-dependent, making category-based browsing the most reliable path to broad coverage.
Listing Search and Filtering
The search_listings endpoint accepts a query string alongside optional filters including category, condition ('new', 'like_new', 'good', 'fair'), min_price, max_price, and is_free. Responses include an items array where each object contains id, title, description, price, currency, locality, and media. Pagination is cursor-based: the response includes a next_cursor field you pass back as the cursor parameter on the next call. The total field may be null for some queries. Because Shpock is location-aware, keyword searches produce geo-dependent result sets; browsing by category or omitting a query tends to return more consistent volumes.
Item Detail and Seller Data
get_listing_detail takes a single item_id (sourced from search_listings results) and returns the full listing object, including extended metadata, item properties, and a nested user object containing the seller's id. That id feeds directly into get_seller_profile, which returns the seller's public profile fields: name, avgRating, numRatings, and numItemsSold. To enumerate a seller's active inventory, pass the same user_id to get_seller_listings, which supports limit and offset pagination and returns an itemsByUser object with total, limit, offset, and a summary items array.
Category Reference
get_all_categories requires no inputs and returns a static array of category objects, each with an id string (e.g. 'el' for Electronics, 'fa' for Fashion, 'hg' for Home & Garden, 'bt' for Baby & Toys) and a name. These IDs are the valid values for the category parameter in search_listings. Since the list is static, you can call it once to build a local lookup table rather than fetching it on every request.
- Monitor price trends for a specific product category by polling
search_listingswithcategoryandmax_pricefilters over time. - Build a cross-platform price comparison tool by matching item titles from
search_listingsagainst listings from other second-hand marketplaces. - Aggregate seller reputation data using
avgRatingandnumRatingsfromget_seller_profilefor trust-scoring workflows. - Enumerate a seller's full active inventory using
get_seller_listingswith offset pagination to audit listing activity. - Populate a deal-alert system by searching
search_listingswithis_freeor a lowmax_pricethreshold for specific keywords. - Build a category taxonomy reference by calling
get_all_categoriesonce and mapping category IDs to human-readable names for a UI filter.
| 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 Shpock have an official public developer API?+
Why do keyword search results vary and sometimes return fewer items than expected?+
search_listings endpoint's keyword results are geo-dependent, so the same query value can return different item counts depending on the detected region. Browsing by category without a query string, or using broad category IDs like 'el' (Electronics) or 'fa' (Fashion), generally returns more consistent and higher-volume results.What seller data does `get_seller_profile` return?+
get_seller_profile returns the seller's public profile fields including name, avgRating, numRatings, numItemsSold, and shop details. Private data such as contact information, full transaction history, or messaging threads is not exposed. The user ID required as input comes from the user object inside a get_listing_detail response.Does the API cover sold or expired listings?+
get_seller_listings. Sold, expired, or removed listings are not retrievable through the current endpoints. You can fork this API on Parse and revise it to add an endpoint targeting completed or historical listing data if that surface becomes accessible.