Back Market Scraper avatar

Back Market Scraper

Pricing

from $1.20 / 1,000 product scrapeds

Go to Apify Store
Back Market Scraper

Back Market Scraper

Scrape Back Market product listings from search queries or start URLs across 17 countries, with optional product details and customer reviews.

Pricing

from $1.20 / 1,000 product scrapeds

Rating

0.0

(0)

Developer

Data Scrapers

Data Scrapers

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Back Market Scraper creates a structured dataset of refurbished product offers collected from Back Market. Each dataset item is one product offer and can include the product and listing ids, name, brand, grade, price, currency, rating, review count, stock, and product URL. Query the source with search terms or Back Market URLs, choose one of 17 country sites, optionally add product details and reviews, limit results with maxItems, and retrieve records through the Apify Dataset API or export them as JSON, CSV, Excel, XML, or another supported format.

Back Market Scraper — input to structured data

Dataset at a glance

PropertyValue
SourceBack Market country sites
Record unitOne product offer
Input methodssearchQueries or startUrls, plus country
Main identifierslistingId for the offer, productId for the product
DeliveryApify Dataset and API
Export formatsJSON, CSV, Excel, XML, and other Apify dataset exports
Update modelFresh records per Actor run
Pricing$1.50 per 1,000 product, product-details, and product-reviews events on the free plan

Coverage and available records

Search queries use the selected country site. Start URLs can be a search page, a category page, or a product page, and they keep the country in the URL. The saved run searched iphone on the Germany site.

Supported countries: Germany, Austria, Australia, Belgium, Spain, Finland, France, United Kingdom, Greece, Ireland, Italy, Japan, Netherlands, Portugal, Sweden, Slovakia, and the United States.

A search card includes name, model, brand, color, subtitle, URL, image, current and original price, currency, grade, category, rating, review count, warranty months, stock, country, locale, and the query that produced it.

includeProductDetails adds description, HTML description, what the offer comes with, score chips, units sold, specifications, variants, and stock flags. includeReviews adds a reviews array, capped by maxReviews (default 10). Those two options are off by default. The saved sample had both on, with three reviews.

maxItems defaults to 0, which means no product cap. The input prefill is 10.

Not currently collected: a historical price series, or reviews beyond maxReviews.

Data dictionary

Types below match a saved Germany search offer for an iPhone 16 Pro, with details and reviews enabled. description and descriptionHtml in that file are long. The example later keeps a short prefix of description and omits the HTML.

FieldTypeNullableDescriptionExample
productIdstringNoBack Market product id.12d2e039-0c01-4db9-ba49-69ab1a0eb4e8
listingIdstringNoOffer id. Best field for deduplicating a specific offer.be8a0fd7-1370-4b13-9b81-4a4abc4d9d2f
legacyIdintegerYesNumeric legacy id when present.5119359
namestringYesOffer title.iPhone 16 Pro 128GB - Titan Schwarz - Ohne Vertrag
modelstringYesModel name.iPhone 16 Pro
brandstringYesBrand slug.apple
colorstringYesColor label.Titan Schwarz
subtitlestringYesShort variant line.Titan Schwarz • 128 GB • eSim
urlstringNoProduct page URL.https://www.backmarket.de/de-de/p/iphone-16-pro
imageUrlstringYesPrimary image URL.CloudFront image URL
pricenumberYesCurrent price in currency.630.0
formattedPricestringYesDisplay price.630,00 €
originalPricenumberYesCompared-at price.1199.0
formattedOriginalPricestringYesDisplay compared-at price.1.199,00 €
currencystringYesISO currency.EUR
gradestringYesCondition label in the site language.Gut
gradeValueintegerYesNumeric grade.12
productTypestringYesOffer type.Refurbished
categorystringYesCategory label.Smartphone
categoryIdintegerYesCategory id.2
ratingnumberYesAverage rating.4.51
reviewCountintegerYesReview count on the card.15817
warrantyintegerYesWarranty length in months.12
stockintegerYesUnits available on the offer.19
countryCodestringNoSite country.DE
localestringYesSite locale.de-de
sourceTypestringNosearch or the URL type that produced the row.search
sourceQuerystringYesSearch term. Empty when the row came only from a URL.iphone
sourceUrlstringYesSearch or page URL.https://www.backmarket.de/de-de/search?q=iphone
imageUrlsarray of stringsNoImage URLs. Present when details are included.See stored record

Detail-only fields, present when includeProductDetails is true: description, descriptionHtml, comesWith (type, text), scores (id, label, value), unitsSold, dualSim, isTradeInEligible, parentProductSlug, supportsAppleIntelligence, specifications (label, value, field), isOutOfStock, and variants.

reviews is present when includeReviews is true. Each review has id, rating, comment, createdAt, languageCode, countryCode, relevance, details, and attachments. One review charges one product-reviews event.

Example dataset record

This offer came from searchQueries: ["iphone"] on country DE, with details and reviews enabled. The stored description and image list are longer. Review comments are omitted here. imageUrls keeps the first URL only.

{
"productId": "12d2e039-0c01-4db9-ba49-69ab1a0eb4e8",
"listingId": "be8a0fd7-1370-4b13-9b81-4a4abc4d9d2f",
"legacyId": 5119359,
"name": "iPhone 16 Pro 128GB - Titan Schwarz - Ohne Vertrag",
"model": "iPhone 16 Pro",
"brand": "apple",
"color": "Titan Schwarz",
"subtitle": "Titan Schwarz • 128 GB • eSim",
"url": "https://www.backmarket.de/de-de/p/iphone-16-pro",
"price": 630.0,
"formattedPrice": "630,00 €",
"originalPrice": 1199.0,
"currency": "EUR",
"grade": "Gut",
"gradeValue": 12,
"productType": "Refurbished",
"category": "Smartphone",
"rating": 4.51,
"reviewCount": 15817,
"warranty": 12,
"stock": 19,
"countryCode": "DE",
"locale": "de-de",
"sourceType": "search",
"sourceQuery": "iphone",
"sourceUrl": "https://www.backmarket.de/de-de/search?q=iphone"
}

Query and input reference

InputTypeRequiredDefaultAccepted valuesDescription
searchQueriesstring arrayNoNoneSearch textPrefill: iphone. Uses country.
startUrlsURL arrayNoNoneSearch, category, or product URLsCountry is taken from the URL.
countrystringNoDEDE, AT, AU, BE, ES, FI, FR, GB, GR, IE, IT, JP, NL, PT, SE, SK, USSite for search queries.
maxItemsintegerNo00 or a positive integerProduct cap. 0 means no cap. Prefill 10.
includeProductDetailsbooleanNofalsetrue or falseFetch the product page and charge product-details.
includeReviewsbooleanNofalsetrue or falseFetch reviews and charge product-reviews per review.
maxReviewsintegerNo10Positive integerReview cap per product.
detailConcurrencyintegerNo5IntegerParallel detail and review requests.
proxyConfigurationobjectNoApify residential proxyApify proxy editorProxy for Back Market requests.

Provide searchQueries or startUrls.

Minimal request:

{
"searchQueries": ["iphone"],
"country": "DE",
"maxItems": 10
}

Details and reviews:

{
"searchQueries": ["iphone"],
"country": "DE",
"maxItems": 3,
"includeProductDetails": true,
"includeReviews": true,
"maxReviews": 3
}

Retrieve the data through the API

  1. Start datascrapers/backmarket-scraper with the JSON input.
  2. Wait until the run finishes, or call the synchronous dataset endpoint.
  3. Read items from the run's default dataset.
  4. Paginate with dataset offset and limit, or export from the Apify console.
from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("datascrapers/backmarket-scraper").call(
run_input={
"searchQueries": ["iphone"],
"country": "DE",
"maxItems": 10,
}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["listingId"], item["name"], item["price"])

Other languages are listed on the Actor's API tab. This is the Apify Actor API, not a Back Market API.

Data quality and record handling

  • One pushed record is one offer. The product event is charged when that record is pushed.
  • Deduplicate offers on listingId. Use productId when you want one row per product across grades and colors.
  • The same product can appear as several offers. Do not collapse them on name.
  • Price is a number in currency. formattedPrice keeps the site's grouping and symbol.
  • Grade labels follow the country locale. Gut is the German label on the saved card.
  • Detail and review fields are absent when those options are off. A failed detail request does not invent them.
  • Each successfully collected review adds one product-reviews charge. A product-page enrichment adds one product-details charge.
  • reviewCount is the count shown on the card. It can be larger than the reviews array, which stops at maxReviews.

Pricing and cost examples

The price file in the Actor folder prices every event at $1.50 per 1,000 on the free plan. The same file lowers that rate on paid plans. Prices are per event, not per 1,000 as a single invoice line. One product charge is one pushed offer. One product-details charge is one enriched product. One product-reviews charge is one review.

PlanPrice per 1,000 events
Free$1.50
Bronze$1.40
Silver$1.30
Gold$1.20
Platinum and Diamond$1.20

Platinum and Diamond are not listed in the file. They use the Gold rate. The file also sets platform usage as not charged to the user.

OffersCards onlyCards, details, and 3 reviews each
1,000$1.50$7.50
10,000$15.00$75.00

The second column is the free-plan rate: one product, one detail, and three reviews per offer. It is lower on Bronze, Silver, and Gold.

Limitations and responsible data use

  • Coverage is the search or URL you send, on the country site you select.
  • Start URLs ignore country and use the country in the URL.
  • Prices, stock, and grades change on Back Market. This dataset is not a price history.
  • Review text is written by customers and can include personal details.
  • You are responsible for complying with Back Market's terms and applicable law.

Dataset questions

What does one dataset item represent?

One Back Market product offer. With details and reviews enabled, that same record also contains the product page and the reviews that were collected.

Which field should I use as a unique identifier?

Use listingId for the offer. Use productId for the product across grades and storage options.

Are fields nullable or conditional?

Yes. Description, specifications, variants, and reviews appear only when the matching option is enabled and the page returns them.

Can I retrieve the records as CSV or JSON?

Yes. Export the default dataset as JSON, CSV, Excel, XML, or another Apify format.

How do I paginate large datasets?

Set maxItems on the run. 0 removes the cap. Read items with dataset limit and offset.

Does the Actor return historical data?

No. Each run returns the offers available at request time.

What counts as a billable result?

Each pushed offer charges product. Each enriched product charges product-details. Each collected review charges product-reviews. The free-plan price is $0.0015 per event.

  • Amazon Scraper collects marketplace product records you can compare on price and rating.
  • Best Buy Scraper collects electronics offers alongside refurbished phone and laptop rows.
  • AliExpress Scraper collects product listings with price and review fields.
  • Alibaba Scraper collects wholesale product records for the same catalog research.
  • Adidas Scraper collects brand product records with price and availability.

Data Scrapers support

Need an additional field, record type, or export workflow? Contact Data Scrapers at stardustspotlight@gmail.com. Include a sample source URL, required fields, expected record volume, and preferred delivery format.