{"name":"product-scout","manifest_version":"2.1.0","schema_version":"2026-09-16","build_revision":"unknown","description":"Amazon marketplace intelligence for Ideoon sourcing (.de/.at/.ch/.fr/.it). Fetches live best-sellers/new-releases/movers, persists them into a longitudinal rank-history dataset we alone own, resolves sourceable identifiers (GTIN/EAN), and serves an enriched review queue. The core reasons about nothing: it fetches, persists, enriches, serves. Recommendations come from the consuming agent, not from product-scout.","base_url":"https://discovery.ideoon.eu","markets":["de","at","ch","fr","it"],"auth":{"type":"bearer","header":"Authorization","format":"Bearer <agent_api_key>","note":"Issued to Ideoon agents. Required on the data tools; manifest/health are open."},"capabilities":["best-sellers","category-shotgun","resolve-recommendation-requester","submit-recommendation","review-queue","product-search","category-products","product-details","resolve-identity","top-reviewed-best-sellers"],"start_here":{"workflow":"/workflows/discover-products","instruction":"Start with the task workflow, then search the zero-quota category catalog. Use product-search when a category has no validated list mapping. For an email-originated recommendation, resolve the exact From address before submission."},"workflows":[{"id":"discover-products","name":"Discover products from an intent","when_to_use":"Start here for a product phrase, department, trend, or sourcing category.","_links":{"self":"/workflows/discover-products"}},{"id":"inspect-product","name":"Inspect and identify a product","when_to_use":"A discovery result has an ASIN and an exact-product decision needs current facts and identity.","_links":{"self":"/workflows/inspect-product"}},{"id":"submit-recommendation","name":"Submit a sourcing recommendation","when_to_use":"The consuming agent has decided a product deserves human review.","_links":{"self":"/workflows/submit-recommendation"}},{"id":"review-my-submissions","name":"Review my submissions","when_to_use":"A consuming agent needs the current enriched state of its own recommendations.","_links":{"self":"/workflows/review-my-submissions"}}],"honesty_classes":{"upstream_live":"Raw field from the live upstream fetch, returned as-is.","demand_sampled_discrete":"Captured only when an agent queries. Discrete observations. Never interpolated into a smooth line.","derived":"Computed by product-scout from its own append-only snapshots; each such field declares x-derivation.","backfillable_continuous":"Legitimately a continuous multi-year series (Google Trends, Phase 5); may be shown as a seasonal curve."},"parameter_naming":{"canonical":{"market":["de","at","ch","fr","it"],"list_type":["best_sellers","new_releases","movers"],"category":"stable product-scout category key (marketplace/list-type slug resolved server-side)","cursor":"opaque pagination token","limit":"page size (default 50, max 100)"},"not":{"market":["country","locale","domain"],"list_type":["type","kind","list"],"pagination":["page","per_page","offset"]}},"rate_limits":{"proxy_metered":true,"monthly_quota_units":null,"upstream_requests_per_second":10,"note":"Amazon and ecommerce are separately billed OpenWebNinja lanes. There is no call-count cap; every outbound attempt is recorded durably per lane and UTC day. A 429 or transient streak cools a lane down; 401/402/403 pauses it until an operator resumes it. Retries are bounded per task."},"boundary":{"does":["fetch (live upstream)","persist (append-only snapshots)","enrich (identity, first-seen, trajectory)","serve"],"does_not":["recommend","rank for you","reason about products"]},"_links":{"self":"/manifest","workflows":"/workflows","tools":"/tools","categories":"/categories","docs":"/docs","docs_markdown":"/docs.md","openapi":"/openapi.json","errors":"/errors","health":"/health","requester_resolution_tool":"/tools/resolve-recommendation-requester"}}