Discover/Ricardo API
live

Ricardo APIricardo.ch

Search Ricardo.ch listings by keyword, category, and sort order. Returns prices, condition, brand, shipping, and category facets for Switzerland's largest marketplace.

This API takes change requests — .
Endpoint health
verified 59m ago
search_listings
1/1 passing latest checkself-healing
Endpoints
1
Updated
2h ago

What is the Ricardo API?

The Ricardo.ch API provides access to Switzerland's largest online marketplace through 1 endpoint, search_listings, which returns up to 60 listings per page including fields like title, prices, condition, brand, shipping details, and category facets. It supports keyword search with optional filtering by category slug and sorting by price, relevance, recency, or auction activity, making it practical for price monitoring, inventory research, and category exploration across Ricardo.ch.

This call costs1 credit / call— charged only on success
Try it
Page number for pagination (1-indexed). Each page returns up to 60 results.
Sort order for results.
Search keyword(s) to find listings.
Category slug to filter results, in the format '{name}-{id}' (e.g. 'notebooks-39272', 'sports-41875'). Available slugs are returned in the 'categories' array of the response.
api.parse.bot/scraper/127062df-d927-47e2-9f95-41cc2749072d/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/127062df-d927-47e2-9f95-41cc2749072d/search_listings?sort=best&query=laptop' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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 ricardo-ch-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: Ricardo.ch marketplace SDK — search listings, browse categories, drill into details."""
from parse_apis.ricardo_ch_api import Ricardo, SortOrder, InvalidInput

client = Ricardo()

# Search for laptops sorted by newest, cap at 5 results.
for listing in client.listings.search(query="laptop", sort=SortOrder.NEWEST, limit=5):
    price_label = f"CHF {listing.buy_now_price}" if listing.buy_now_price else "auction only"
    print(f"{listing.title} — {price_label} [{listing.condition}]")

# Use .first() to grab a single listing for deeper inspection.
hit = client.listings.search(query="macbook", sort=SortOrder.BEST, limit=1).first()
if hit is not None:
    print(f"\nTop result: {hit.title}")
    print(f"  Seller: {hit.seller_id} | Ends: {hit.end_date}")
    for ship in hit.shipping:
        print(f"  Ships from {ship.city} ({ship.zip_code}) — cost {ship.cost}")

# Fetch the full search page to access category facets alongside listings.
page = client.search_pages.search(query="laptop")
print(f"\nTotal results: {page.total_results} across {len(page.categories)} categories")
for cat in page.categories[:3]:
    print(f"  {cat.name}: {cat.count} listings (slug={cat.slug})")

# Drill into the top category using its slug from the previous response.
top_category = page.categories[0]
for item in client.listings.search(query="laptop", category_slug=top_category.slug, limit=3):
    print(f"  [{top_category.name}] {item.title}")

# Handle invalid input gracefully.
try:
    client.search_pages.search(query="laptop", sort="bad_sort")
except InvalidInput as e:
    print(f"\nExpected error: {e.message}")

print("\nexercised: listings.search / search_pages.search / InvalidInput")
All endpoints · 1 totalmissing one? ·

Search marketplace listings by keyword, optionally filtered by category and sorted by price or other criteria. Returns paginated results with 60 listings per page. The response includes category facets with slugs that can be used for subsequent filtered searches. Each listing includes pricing (auction bid price and/or buy-now price), condition, brand, seller, and shipping information.

Input
ParamTypeDescription
pageintegerPage number for pagination (1-indexed). Each page returns up to 60 results.
sortstringSort order for results.
queryrequiredstringSearch keyword(s) to find listings.
category_slugstringCategory slug to filter results, in the format '{name}-{id}' (e.g. 'notebooks-39272', 'sports-41875'). Available slugs are returned in the 'categories' array of the response.
Response
{
  "type": "object",
  "fields": {
    "page": "Current page number",
    "sort": "Sort order applied",
    "query": "The search query used",
    "has_more": "Whether more pages of results are available",
    "listings": "Array of listing objects with id, title, prices, condition, brand, shipping, etc.",
    "page_size": "Number of results per page (60)",
    "categories": "Array of category facets with id, name, slug, and count for the current search",
    "total_results": "Total number of matching listings"
  },
  "sample": {
    "data": {
      "page": 1,
      "sort": "best",
      "query": "laptop",
      "has_more": true,
      "listings": [
        {
          "id": "1199769942",
          "url": "https://www.ricardo.ch/de/a/1199769942/",
          "brand": null,
          "title": "1GB 1Rx16 PC3-10600S-9-10-C1",
          "end_date": "2026-08-23T17:08:00Z",
          "shipping": [
            {
              "key": "parcel_b_10kg",
              "city": "Zürich",
              "cost": 15,
              "zipCode": "8050"
            }
          ],
          "bid_price": 0.05,
          "condition": "acceptable",
          "image_url": "https://img.ricardostatic.ch/images/d34a6e07-51b9-4b48-8d9c-b712b9032185/t_265x200/1gb-1rx16-pc3-10600s-9-10-c1",
          "seller_id": "406826855",
          "bids_count": 0,
          "category_id": 39232,
          "has_auction": true,
          "has_buy_now": true,
          "buy_now_price": 4,
          "is_money_guard": false
        }
      ],
      "page_size": 60,
      "categories": [
        {
          "id": 39091,
          "name": "Computer & Netzwerk",
          "slug": "computer-netzwerk-39091",
          "count": 9055
        }
      ],
      "total_results": 13106
    },
    "status": "success"
  }
}

About the Ricardo API

Searching Listings

The search_listings endpoint accepts a required query parameter and returns paginated results containing up to 60 listing objects per page. Each listing includes an id, title, pricing data, condition, brand, and shipping details. Pagination is controlled via the page parameter (1-indexed), and the has_more field in the response indicates whether additional pages exist. The total_results field gives the full count of matching listings for a given query.

Filtering and Sorting

Results can be narrowed using the category_slug parameter, which accepts slugs in the format {name}-{id} (for example, notebooks-39272 or sports-41875). These slugs are returned directly in the categories array of any search response, each entry carrying an id, name, slug, and count. This means you can run a broad keyword search first and then use the returned category slugs for follow-up filtered queries. The sort parameter controls ordering and supports options including price, relevance, recency, and auction activity.

Response Structure

Every response echoes back the query, sort, page, and page_size (fixed at 60) used for that request, making it straightforward to reconstruct or log request context alongside results. The listings array is the primary payload, and the categories facet array doubles as a discovery mechanism — useful when you don't know the exact category slug ahead of time and want to see how Ricardo.ch has bucketed the results for a given search term.

Reliability & maintenanceVerified

The Ricardo API is a managed, monitored endpoint for ricardo.ch — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ricardo.ch 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 ricardo.ch 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.

Last verified
59m ago
Latest check
1/1 endpoint passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Track price trends for specific product keywords across Ricardo.ch listings over time
  • Compare new vs. used condition pricing for consumer electronics using the condition and prices fields
  • Build a category browser by extracting categories facets from broad keyword searches
  • Monitor brand-specific inventory by combining query with brand filtering via category slugs
  • Identify arbitrage opportunities by sorting results by price and comparing against other Swiss marketplaces
  • Aggregate shipping cost data across listings for a given product category
  • Audit auction activity by sorting listings by auction criteria and capturing bid-related pricing fields
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 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.

Frequently asked questions
Does Ricardo.ch have an official developer API?+
Ricardo.ch does not publish a public developer API for marketplace search or listing data. This Parse API provides structured access to that data.
How do category slugs work in the search_listings endpoint?+
Category slugs follow the format {name}-{id}, such as notebooks-39272. You don't need to know them in advance — every search response returns a categories array with id, name, slug, and count fields for the matched results. You can use those slugs directly in subsequent requests as the category_slug parameter to narrow results.
Is individual listing detail data (full description, seller profile, bid history) available?+
Not currently. The API covers search results with fields like title, prices, condition, brand, shipping, and category facets. Full listing descriptions, seller details, and bid histories are not returned. You can fork the API on Parse and revise it to add a listing-detail endpoint that fetches that data.
What is the maximum number of results I can retrieve for a query?+
Each page returns a fixed page_size of 60 results. The total_results field in the response tells you the full match count, and has_more indicates whether additional pages exist. You can paginate through results using the page parameter, but retrieval is limited to what Ricardo.ch surfaces for a given search.
Does the API cover Ricardo.ch listings outside Switzerland, or listings in multiple languages?+
Ricardo.ch is a Swiss marketplace, so coverage is limited to listings posted there. The platform operates in German, French, and Italian, and the data returned reflects whatever language the original listing was posted in. There is no built-in translation or cross-market data. You can fork the API on Parse and revise it to add language or locale filtering if the source supports it.
Page content last updated . Spec covers 1 endpoint from ricardo.ch.
Related APIs in MarketplaceSee all →
lista.mercadolivre.com.br API
Search and browse products from Mercado Livre Brazil, view detailed pricing and offers, and explore categories to find daily deals and product information. Get comprehensive product details including specifications and current market offers all in one place.
shpock.com API
Search and browse products listed on Shpock.com, view detailed listing information and seller profiles, and explore all available marketplace categories. Find what you're looking for by searching inventory, checking seller histories, and discovering related items from individual merchants.
mercadolibre.com API
Search and retrieve product listings, details, customer reviews, categories, and current deals from MercadoLibre across multiple countries to find the best products and prices. Get comprehensive product information including specifications and user feedback to make informed purchasing decisions.
ebay.com API
Search and monitor eBay listings across any category, with support for active and completed/sold listings. Retrieve item details, pricing history, seller profiles and feedback, and category data. Filter by keyword, category, condition, seller, and sort order to support price research, market analysis, and inventory monitoring.
grailed.com API
Access Grailed's fashion resale marketplace: search listings by designer, category, size, and condition; retrieve listing details, seller profiles and reviews; and browse categories, popular designers, and curated collections.
mercadolibre.com.ar API
Search for products, cars, and real estate listings on MercadoLibre Argentina and access detailed information including product specifications, customer reviews, and seller profiles. Get comprehensive market data to compare prices, evaluate sellers, and make informed purchasing decisions across multiple categories.
dba.dk API
Search and retrieve detailed listings from Denmark's largest marketplace DBA.dk, including product information, pricing, and seller details across general goods and car categories. Browse marketplace categories, find specific items, and access comprehensive data on both regular listings and automotive inventory.
reverb.com API
Search and browse thousands of music gear listings on Reverb.com by keyword, price, condition, category, brand, and year to find the perfect instrument or equipment. Filter results to compare vintage guitars, synthesizers, drums, and more across different price ranges and conditions.