Reebelo APIreebelo.com ↗
Access Reebelo's refurbished electronics marketplace via API. Get product listings, condition-based pricing, reviews, deals, and category data across 10 endpoints.
What is the Reebelo API?
The Reebelo API covers 10 endpoints that expose product listings, pricing by condition, customer reviews, deals, and category taxonomy from Reebelo's refurbished electronics marketplace. The get_product_detail endpoint returns full product specifications, FAQ content, and all SKU variants for a given device slug, while get_condition_prices_for_product maps every storage and color combination to its best price per condition.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/48e11213-78fe-4e93-9849-f38d9b796c07/get_all_categories' \ -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 reebelo-com-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.
"""Reebelo refurbished electronics marketplace — search, browse, and compare pricing."""
from parse_apis.reebelo_api import Reebelo, CategorySlug, ProductNotFound
client = Reebelo()
# Search for products by keyword — typed results with price ranges
for product in client.products.search(query="iPhone 15", limit=3):
print(product.name, f"${product.price_min / 100:.2f}–${product.price_max / 100:.2f}")
# Get full details for one product by slug
product = client.products.search(query="MacBook Pro", limit=1).first()
if product:
detail = client.products.get(slug=product.slug)
print(detail.name, detail.brand.name)
# Browse brands in a category using the CategorySlug enum
for brand in client.brands.list(slug=CategorySlug.SMARTPHONES, limit=3):
print(brand.name, brand.offer_count)
# List SKUs from a brand by constructing the Brand directly
apple = client.brand(id="brd-merms4aeBz6hYtWCral7Vps")
for sku in apple.list_products(limit=2):
print(sku.title, sku.offers[0].vendor.name if sku.offers else "")
# Typed error handling — catch a missing product
try:
client.products.get(slug="nonexistent-product-xyz-404")
except ProductNotFound as exc:
print(f"Product not found: {exc.slug}")
print("exercised: products.search / products.get / brands.list / brand.list_products / ProductNotFound")
Retrieve all top-level and sub-categories available on Reebelo, including nested children and category PKs for use with other endpoints.
No input parameters required.
{
"type": "object",
"fields": {
"menu": "array of category objects with name, pk, and nested children",
"flatMenu": "object mapping category PKs to category objects for quick lookup"
},
"sample": {
"data": {
"menu": [
{
"pk": "02q0v5s710k7",
"name": "Electronics",
"children": [
{
"pk": "05t394s0h4e1",
"name": "Laptops"
}
]
}
],
"flatMenu": {
"02q0v5s710k7": {
"pk": "02q0v5s710k7",
"name": "Electronics",
"children": []
}
}
},
"status": "success"
}
}About the Reebelo API
Categories, Search, and Listings
Start with get_all_categories to retrieve the full category tree, including nested children and the pk values used to filter get_product_listing. That listing endpoint accepts category_pk, limit, and offset for paginated browsing of SKU items, each carrying id, title, offers, and product metadata. For keyword-driven lookups, search_products accepts a query string and returns matching offers (with title, price, handle, and image) alongside related collections.
Product Detail and Pricing
get_product_detail takes a product slug and returns a full product object: name, description, psku, brand, category, images, specifications, features, faq, and an array of SKU variants. To retrieve or monitor pricing independently, get_sku_price accepts either a psku prefix or a specific sku_id and returns SKU objects including compareAtPrice and vendor-level offer details. For a condensed condition-to-price map across all storage and color variants of a device, get_condition_prices_for_product takes a psku and returns keys formatted as 'storage | color' with condition names mapped to dollar prices.
Brands, Deals, and Reviews
get_category_brands returns all brands for a given category or collection slug, with each brand entry including id, name, and offerCount. That brand_id feeds directly into get_collection_by_brand for paginated brand-filtered product results. get_deals requires no inputs and returns current sale items with compareAtPrice, offer details, and filter options covering categories, brands, and priceRange. Customer sentiment is accessible through get_product_reviews, which takes a review_hash and returns individual review objects (customerName, stars, title, text, createdAt, productName, condition) alongside a summary with average rating and star-percentage distribution.
The Reebelo API is a managed, monitored endpoint for reebelo.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when reebelo.com 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 reebelo.com 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 condition-based price changes for specific iPhone or MacBook models using
get_condition_prices_for_productwith apsku. - Build a refurbished device comparison tool by pulling full specs and variant pricing from
get_product_detail. - Aggregate current deals inventory with
get_dealsto surface discounted refurbished electronics in a deals feed. - Populate a brand directory for refurbished electronics by listing brands and offer counts via
get_category_brands. - Monitor review sentiment for a device or vendor by fetching ratings summaries and individual reviews through
get_product_reviews. - Implement category-level browsing in an e-commerce app using the nested category tree from
get_all_categoriesand paginated listings fromget_product_listing. - Power search autocomplete and collection discovery by querying
search_productswith a keyword and reading the returnedoffersandcollections.
| 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 | 100 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 Reebelo have an official public developer API?+
What does `get_product_reviews` return, and how do I find the correct `review_hash`?+
id, customerName, stars, title, text, createdAt, productName, and condition — plus a summary object containing the total count, average stars, maxRating, minRating, and per-star percentages. The review_hash is a string found in vendor or product page data returned by other endpoints such as get_product_detail.Can I retrieve seller or vendor profile pages through this API?+
How does pagination work in `get_product_listing` and `get_collection_by_brand`?+
limit (max results per page) and offset (starting position) as optional integer parameters. Each response includes a total integer representing the full result count for that query, which you can use to calculate how many pages to iterate through.