eBay Browse API → estimated-value lookups for tangible-asset records (parked 2026-05-26)

DARE.CO.UK · PARKED SKETCH · 2026-05-26

Mirrored from ~/.claude/.../memory/parked_sketch_ebay_value_lookup_for_asset_records_2026-05-26.md. This is a design sketch parked for future build — read for context, not as a current deliverable.

Wire eBay’s read-only Browse API (active listings) as the data source for the “as-is / current market value” column on every tangible-asset substrate record. Powers the asset_value_estimation_axis pattern with live numbers + a “last checked” freshness stamp. Significant caveat — Browse API gives ACTIVE asks; SOLD prices require Marketplace Insights API (gated, application required) or Terapeak (Seller-Hub UI only). Resume when first valuation is genuinely needed (insurance, planned sale, claim), OR when batch-processing the 24-photo equipment substrate makes per-item asks worth surfacing.


Dan 2026-05-26: “Can we add an estimated ebay value, to things, using the future ebay api, to do look-ups?”

What this earns its keep doing

Powers the “as-is current market value” column already defined by feedback_asset_value_estimation_axis.md — every tangible-asset record (technology, vehicle, tractor, pool equipment, watch, tool, instrument) gets a fact row:

Estimated value (as-is)   $1,250 ± 300   median of 32 active eBay listings · checked 2026-05-26

Without a live data source, that field is hand-curated and rots. With this integration, it refreshes via cron / on-demand.

The two-tier reality of eBay’s API surfaces

API What it returns Access tier Use for
Browse API (/buy/browse/v1) Active listings (live asks) — buy-it-now + auctions still running Public OAuth app token, free Median ask, ask range, sample listing URLs
Marketplace Insights API Sold listings (last 90 days) + prices Gated — application required; eBay vets use cases True “sold-comp” value (what “estimated value” really wants)
Terapeak Product Research Sold + insights Seller-Hub UI only, no API Manual lookups (browser); not automatable
Finding API (legacy) Active items Deprecated but works Fallback if Browse OAuth is friction
3rd-party scrapers Sold prices via scraped sold-listings page Grey area; against ToS for systematic use Avoid for substrate; one-off OK

The asterisk that matters: an “estimated value” from active listings is an asks median (i.e. what sellers want), not a sold median (what buyers actually paid). Asks typically run 15-30% above sold for most categories. So the displayed value is upper-bound until we either (a) apply for Marketplace Insights access or (b) annotate the field as “asks median” instead of “sold comp”.

Architectural sketch

1. The lookup script

~/bin/ebay_value_lookup.py — CLI tool:

�STASH6�

Returns:

�STASH7�

2. Per-record value-axis JSON sidecar

Each tangible-asset record gets a sidecar at <record>/value.json:

�STASH9�

3. Renderer integration

At record-build / refresh time, the page reads value.json and renders a value-axis fact row + a small “checked 26 May 2026” freshness stamp (per feedback_last_touched_freshness_pattern.md). On-demand refresh = a script run, not a page edit.

4. Cron

A ~/bin/pa_value_axis_refresh.py --all runs (weekly? monthly?) to refresh every record’s value.json. Status surfaces at pa/_status/value-axis-refresh.html per the existing job-status dashboard pattern.

5. Audit trail

Every lookup writes a history row to value.json so the page can render a 12-month trend sparkline. Tracks both market drift AND our refresh cadence.

OAuth + auth notes

Composability with existing substrate

Implementation sequence (resume-time playbook)

  1. Sign up Daniel Dare Limited (or appropriate entity) for eBay Developer Program, get Client ID + Secret. (5 min)
  2. Store secrets in 1Password (per feedback_1password_custom_concealed_fields.md) + emit env vars via existing pattern.
  3. Build ~/bin/ebay_value_lookup.py — Browse API client, query → median/percentiles. (~1 hr)
  4. Build ~/bin/pa_value_axis_refresh.py — walks substrate, finds records with value-query.txt sidecars, runs the lookup, writes value.json. (~1 hr)
  5. Add renderer integration to the 2-3 most valuable records (one watch, one piece of pool equipment, one piece of tech) as proof. (~30 min)
  6. Cron at daily/weekly cadence + add status-surface card on status.gf.cx. (~30 min)
  7. Apply for Marketplace Insights access in parallel — if granted, swap data source for sold-comps. (eBay turnaround unknown.)

Total budget: ~3-4 hours to first value rendered live.

Resume triggers

Cross-references

The aphorism

A hand-typed dollar amount is a guess that rots. A scripted asks-median is a snapshot of the market that ages honestly. Sold-comps would be truth — those are paywalled, and that’s why most people overestimate their stuff.

Source: parked_sketch_ebay_value_lookup_for_asset_records_2026-05-26.md · Rendered 2026-05-26 17:10