CompSniper
Regional API guide

How to Get eBay France Sold Listings with an API

To get eBay France sold listings with an API, call CompSniper's GET /v1/scrape with ebaySite=ebay.fr. You get sold comps as JSON with EUR prices, sale dates and the original French condition text, plus a private or professional seller filter for cleaner comparisons.
By Marc AndrewTested with a real ebay.fr search

Search ebay.fr for completed sales

Create a free CompSniper account, copy your API key and set it as COMPSNIPER_API_KEY on your server. The marketplace goes in the ebaySite parameter; the API host stays api.compsniper.com. eBay's own ID EBAY_FR works too.

This tested request asks for five recently ended, used iPhone 13 128 Go sales on ebay.fr. Keep the French storage notation (Go) in the keyword, since that is how French sellers title their listings.

French sold listings
curl --get --fail-with-body --max-time 75 "https://api.compsniper.com/v1/scrape" \
  --header "Authorization: Bearer $COMPSNIPER_API_KEY" \
  --data-urlencode 'keyword=iPhone 13 128 Go' \
  --data-urlencode 'ebaySite=ebay.fr' \
  --data-urlencode 'count=5' \
  --data-urlencode 'itemCondition=used' \
  --data-urlencode 'sortOrder=endedRecently' \
  --data-urlencode 'sold=true'

Keep itemCondition=used in English: it is the API parameter value, even though the returned condition labels are French.

A real ebay.fr response in EUR

We ran the request above on . It returned HTTP 200 and five listings. This excerpt shows selected fields from one of those five rows; the other rows and top-level fields are omitted. Values are unchanged.

Real response excerpt
{
  "keyword": "iPhone 13 128 Go",
  "totalItems": 5,
  "items": [
    {
      "itemId": "307187674505",
      "title": "Apple iPhone 13 - 128 Go - Bleu",
      "condition": "Occasion | Particulier",
      "conditionId": 3000,
      "soldPrice": "202.29",
      "soldCurrency": "EUR",
      "shippingPrice": null,
      "shippingCurrency": null,
      "shippingType": "unknown",
      "totalPrice": "202.29",
      "endedAt": "2026-09-26",
      "scrapedAt": "2026-10-03T04:46:01.483668+00:00",
      "itemLocation": null,
      "sellerType": "private",
      "bestOfferAccepted": null,
      "url": "https://www.ebay.fr/itm/307187674505?nordt=true"
    }
  ]
}

endedAt is the reported sale date; scrapedAt is the collection timestamp. Repeating the request can return different listings. totalItems: 5 describes the original response, not the one-row excerpt.

This row reports a sold price of EUR 202.29, a sale date of September 26, 2026 and the label Occasion | Particulier. The five rows ranged from EUR 188.38 to EUR 260.00; the highest was a professional seller listing described as excellent condition.

Read French condition labels

French listing labels and what they mean
LabelHow to read it
OccasionUsed. Check the description for wear and battery health.
NeufNew, not comparable with a used phone.
ReconditionnéRefurbished; keep it in its own group.
Pour pièces détachées / ne fonctionne pasFor parts or not working, never a working-phone comparable.
Particulier / ProSeller type, not a condition grade.

Separate Particulier and Pro sellers

French professional sellers often add warranties and price higher. Use sellerType=private or sellerType=business to keep the two groups apart. The recorded response above did not use the filter.

Optional private-seller filter
curl --get --fail-with-body --max-time 75 "https://api.compsniper.com/v1/scrape" \
  --header "Authorization: Bearer $COMPSNIPER_API_KEY" \
  --data-urlencode 'keyword=iPhone 13 128 Go' \
  --data-urlencode 'ebaySite=ebay.fr' \
  --data-urlencode 'count=5' \
  --data-urlencode 'itemCondition=used' \
  --data-urlencode 'sortOrder=endedRecently' \
  --data-urlencode 'sold=true' \
  --data-urlencode 'sellerType=private'

Keep EUR and unknown postage honest

Store soldPrice and soldCurrency together. Display 202,29 € with French formatting if you like, but keep the raw value "202.29" and EUR in your database.

totalPrice is not proof of free delivery
Postage was unknown in this sample (shippingType: "unknown"), so totalPrice equals the item price. Compare item-only prices with item-only prices, and keep known delivered totals separate.

Make iPhone comps comparable

One of the five titles said PAS DE COMPTE ICLOUD (no iCloud account linked), a reassurance sellers add because locked phones sell for far less. Before averaging, check storage, colour, unlock status and battery percentage in the title or listing. Keep refurbished and for-parts phones out of a used comparison.

For a bigger sample, raise count up to 240. The default AI cleanup removes cases, parts and wrong models before the median; use relevance=false if you want every raw result and your own filtering.

Common questions about eBay France sold listings

How do I get eBay France sold listings through an API?

Call CompSniper GET /v1/scrape with ebaySite=ebay.fr (or the eBay marketplace ID EBAY_FR), a product keyword and your CompSniper Bearer API key. It returns up to 240 sold listings as JSON. The example in this guide returned EUR prices and the French condition label Occasion | Particulier.

Do I need a separate API key or a French eBay account?

No. Use the same CompSniper key and endpoint as the other supported eBay marketplaces, with no eBay account or cookies of your own. Set ebaySite=ebay.fr explicitly; the API does not infer the marketplace from your server's location.

Can I separate private and professional sellers on ebay.fr?

Yes. sellerType=private or sellerType=business filters recognized seller labels on ebay.fr, ebay.de, ebay.it and ebay.es. Rows without a recognized label are excluded while the filter is active, so fewer results can reflect missing labels rather than fewer sales.

What does Occasion | Particulier mean?

Occasion is the used-condition label and Particulier marks a private seller. CompSniper keeps the original text and also returns conditionId 3000 and sellerType private for this row, so you can filter in code without losing the source wording.

Is shipping free when shippingPrice is null?

No. In this sample the postage was unknown: shippingPrice and shippingCurrency are null and shippingType is unknown. totalPrice equals the item price, which is an incomplete delivered total, not proof of free delivery.

Can I get the raw ebay.fr results without AI cleanup?

Yes. Add relevance=false to receive the sold results exactly as eBay lists them. With the default cleanup on, the response still reports rawMedian and rawSampleCount from before cleanup.

Continue your integration

Keep each marketplace and currency attached to its own sold comps. These guides use the same endpoint and API key:

For the full contract, see the API reference. The eBay sold listings API overview covers the product, and the CSV and Excel guide covers spreadsheet exports.

Written by the CompSniper team. The examples are dated observations, not current valuations or evidence of complete market coverage. CompSniper is an independent service, not an official eBay API.

Try your first ebay.fr sold search

Create a free CompSniper account, get an API key and run the request above. The free plan includes 100 requests per month, with no credit card required.