Back Market APIbackmarket.co.uk ↗
Search Back Market UK's refurbished product catalogue via API. Get prices in GBP, condition grades, ratings, and product links for any search query.
What is the Back Market API?
The Back Market UK API provides access to Back Market's UK refurbished product catalogue through a single search_products endpoint that returns up to 31 listing cards per page. Each response includes over 10 structured fields per product — title, brand, model, category, condition grade, price in GBP, seller ratings, and direct product page links — letting you query any free-text term such as "PlayStation 5 Slim" and paginate through the full result set.
curl -X GET 'https://api.parse.bot/scraper/083175ba-a564-482a-9c3e-3b5df5211047/search_products?query=PlayStation+5' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace backmarket-co-uk-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Back Market UK — search refurbished products, inspect pricing."""
from parse_apis.backmarket_co_uk_api import BackMarket, InvalidInput
client = BackMarket()
# Search for refurbished consoles; limit= caps total items fetched.
for product in client.products.search(query="PlayStation 5", limit=5):
savings = ""
if product.price_new is not None:
savings = f" (new: {product.price_new.amount} {product.price_new.currency})"
print(
f"{product.title} — {product.price.amount} {product.price.currency}{savings}"
f" | {product.condition} | reviews: {product.review_count}"
)
# Drill into the first result for a different query.
try:
item = client.products.search(query="iPhone 14", limit=1).first()
except InvalidInput as e:
print(f"Invalid search input: {e.message}")
item = None
if item is not None:
print(f"\n{item.title}")
print(f" Brand: {item.brand} Model: {item.model}")
print(f" Category: {item.category} Condition: {item.condition}")
print(f" Storage options: {', '.join(item.storage)}")
print(f" Colors: {', '.join(item.colors)}")
print(f" Rating: {item.review_average}/5 ({item.review_count} reviews)")
print(f" Warranty: {item.warranty_months} months")
print(f" URL: {item.url}")
print("\nexercised: products.search")
Searches Back Market UK for products matching a free-text query and returns one page of results (up to 31 items per page, ordered by the site's default best-sales ranking). Each item is one product listing card as shown on the site's search results page: the product's identifier, title, brand, model, category, condition grade, current refurbished price and, when available, the reference new price (both GBP), review count and average, stock, warranty months, storage/colour variants, image and product page URL. The response also carries the site's total match count and page count; pass page to fetch later pages (has_more indicates whether a further page exists). A query with no matches is a valid success with total 0 and an empty items array. One round trip per call.
| Param | Type | Description |
|---|---|---|
| page | integer | 1-based results page number. Pages beyond page_count return an empty items array. |
| queryrequired | string | Free-text search term, e.g. a product name such as PlayStation 5 Slim. |
{
"type": "object",
"fields": {
"page": "1-based page number returned",
"count": "number of items on this page",
"items": "array of product listing cards; each has id (product UUID), product_id, listing_id, title, brand, model, category, product_type, condition (grade name), price {amount, currency}, price_new {amount, currency} or null, review_count, review_average, available_stock, warranty_months, seller_id, storage (array of variant labels), colors (array of colour names), image URL and product page url",
"query": "the search term that was searched",
"total": "total number of matching products the site reports",
"has_more": "boolean, true when a further page exists",
"page_count": "total number of result pages the site reports for this query"
},
"sample": {
"data": {
"page": 1,
"count": 1,
"items": [
{
"id": "8cd655d3-4702-4977-a3ec-c7c9951a10d1",
"url": "https://www.backmarket.co.uk/en-gb/p/playstation-5-slim",
"brand": "sony",
"image": "https://d2e6ccujb3mkqf.cloudfront.net/1b81a0c0-5bdc-4a35-82ef-81da6fa02a2e.jpg",
"model": "playstation 5 slim",
"price": {
"amount": 390,
"currency": "GBP"
},
"title": "PlayStation 5 Slim",
"colors": [
"White"
],
"storage": [
"825 GB",
"1 TB"
],
"category": "Gaming consoles",
"condition": "Fair",
"price_new": {
"amount": 499,
"currency": "GBP"
},
"seller_id": "3754",
"listing_id": "5928328",
"product_id": "3802293",
"product_type": "Refurbished",
"review_count": 626,
"review_average": 4.32,
"available_stock": 1,
"warranty_months": 12
}
],
"query": "PlayStation 5 Slim",
"total": 1,
"has_more": false,
"page_count": 1
},
"status": "success"
}
}About the Back Market API
What the API Returns
The search_products endpoint accepts a free-text query string and an optional 1-based page integer, then returns a paginated slice of Back Market UK's search results. The top-level response includes total (total matching products reported by the site), page_count (total result pages), has_more (boolean indicating whether a further page exists), count (items on the current page), and query (the search term as interpreted). Each page contains up to 31 items ordered by the site's default best-sales ranking.
Per-Item Fields
Each entry in the items array represents one listing card. Available fields include id (a product UUID), product_id, listing_id, title, brand, model, category, product_type, along with price in GBP, condition grade, and rating data. These fields map directly to what a buyer would see on a Back Market UK search results page, making them suitable for price tracking, catalogue comparison, and inventory monitoring across refurbished device categories.
Pagination Behaviour
Pagination is controlled by the page parameter. If page is omitted it defaults to page 1. Requesting a page number beyond page_count returns an empty items array rather than an error. The has_more boolean provides a simple way to implement sequential crawling without needing to check page_count explicitly. Each page returns at most 31 items, so total divided by 31 gives an approximate page_count consistent with what the API reports directly.
The Back Market API is a managed, monitored endpoint for backmarket.co.uk — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when backmarket.co.uk changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official backmarket.co.uk API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track GBP price changes for specific refurbished devices (e.g. iPhones, iPads) across multiple condition grades over time.
- Build a price comparison tool for refurbished electronics using title, brand, model, and price fields.
- Monitor which refurbished product categories appear for broad search terms like 'laptop' or 'tablet' using the category and product_type fields.
- Aggregate seller rating data across refurbished listings to surface the best-rated options for a given query.
- Generate affiliate or deals content by querying product names and extracting titles, prices, and product page links.
- Alert users when a refurbished item matching a search term drops below a target price in GBP.
- Research Back Market UK's catalogue depth for a product line by checking the total and page_count fields for relevant queries.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.