BadgerScoutPrice Intelligence
Downloading

Export formats

Three views come back, refreshed daily: your matches, your market positioning, and the append-only price history behind them. Take them as CSV or JSON.

Every export carries your client_ref, so you can join it straight back to the catalogue you sent. CSV files use the header row shown in each table below; JSON nests the same fields per product.

Matches

One row per matched competitor listing — the raw evidence behind your positioning. A product matched at five retailers yields five rows.

FieldTypeReq.Notes
client_refstringyesYour reference, echoed from the catalogue you sent.
retailerstringnoThe competitor the product was matched at (e.g. Wehkamp).
matched_namestringnoThe product title as listed at that retailer.
match_tierenumnoHow it was matched: ean, mpn, brand_fuzzy, text, or image.
confidencedecimal 0–1noMatch strength. 1.0 for exact barcode; lower for softer tiers.
competitor_pricedecimalnoCurrent price at that retailer, EUR.
in_stockbooleannoWhether the matched product was in stock at last scan.
urlstringnoLink to the matched product page.
captured_attimestampnoWhen this price was last observed (ISO 8601, UTC).

Market positioning

One row per product — the summary most teams live in day to day: who is cheapest, the market average, and where you rank.

FieldTypeReq.Notes
client_refstringyesYour product reference.
your_pricedecimalnoThe price you supplied in your catalogue.
cheapestdecimalnoLowest competitor price found for this product.
cheapest_retailerstringnoWho is cheapest right now.
market_avgdecimalnoMean competitor price across all matches.
your_rankintegernoYour position by price, 1 = cheapest.
n_competitorsintegernoHow many retailers this product was matched at.

Price history

Append-only: a row lands only when a competitor’s price actually moves. That gives you a clean, gap-free timeline of every change rather than a daily re-statement of the same number.

FieldTypeReq.Notes
client_refstringyesYour product reference.
retailerstringnoThe competitor whose price changed.
changed_attimestampnoWhen the change was observed (ISO 8601, UTC).
old_pricedecimalnoPrice before the change.
new_pricedecimalnoPrice after the change.
directionenumnodrop or rise.

JSON shape

The JSON export folds matches and positioning together, one object per product:

export.json (one product)
{
  "client_ref": "A-1001",
  "your_price": 64.99,
  "summary": {
    "cheapest": 59.95,
    "cheapest_retailer": "Wehkamp",
    "market_avg": 66.40,
    "your_rank": 3,
    "n_competitors": 5
  },
  "matches": [
    {
      "retailer": "Wehkamp",
      "matched_name": "OBJECT Objomahla wikkeljurk",
      "match_tier": "ean",
      "confidence": 1.0,
      "competitor_price": 59.95,
      "in_stock": true,
      "url": "https://www.wehkamp.nl/...",
      "captured_at": "2026-06-18T06:02:00Z"
    }
  ]
}
Cadence
Matches and positioning are rebuilt on a daily snapshot (by default early each morning, CET — configurable). Price history is continuous: changes are appended as they’re observed through the day.