¤ marketpricefinder.
FOR AGENTS AND DEVELOPERS

One endpoint.
Evidence in every answer.

The same guide is served to agents at /llms.txt. The full contract is in /openapi.json.

# Market Price Finder

> Current market prices for AI agents. Send a product, part, material, service or specification plus a market; receive current public offers read from the sellers' own pages, normalized and compared like-for-like, with verbatim evidence and a verified / inferred / unknown status on every fact. Operated by Active Life Hub LLC. The service does not sell anything.

Base URL: https://marketpricefinder.online
Mode: live. Payment network: Base mainnet (eip155:8453), USDC, x402 v2.

## Discovery
- OpenAPI: https://marketpricefinder.online/openapi.json
- Human docs: https://marketpricefinder.online/docs
- Pricing JSON: https://marketpricefinder.online/api/v1/pricing
- Health (configuration only; no database): https://marketpricefinder.online/api/v1/health
- Example request: https://marketpricefinder.online/examples/request.json · Example result (fictional demo data): https://marketpricefinder.online/examples/result.json

## Prices (fixed before payment)
Quick 0.23 USDC · Standard 0.34 USDC · Deep 0.49 USDC.
The price is fixed before payment: a conservative estimate of the variable cost of one research attempt for the tier (search, model, compute, database, settlement), multiplied by the configured markup. Actual usage is recorded per request; there is no usage surcharge or automatic price true-up. Pricing version estimated-cost-plus-2026-09-29-v1; markup 3x on a conservative cost estimate.
Pay per research request, including completed results with few or no comparable offers. Provider failures may be retried twice at no additional charge using the same Idempotency-Key. No automatic refunds; uncertain settlements require reconciliation.

## Buy a price check
1. Generate a random Idempotency-Key (16–128 of A-Z a-z 0-9 _ -) and keep it secret: it is also the result access token.
2. Optional: POST /api/v1/quote with the JSON body to validate it and see the price (free, no storage).
3. POST /api/v1/prices with the key and JSON, e.g. {"query":"MacBook Air M4 16GB/512GB","condition":"new","market":{"country":"US"},"currency":"USD","max_results":8,"tier":"standard"}. text/plain (the query alone) is also accepted. Max 16 KiB.
4. You receive HTTP 402 with x402 v2 requirements (PAYMENT-REQUIRED header, base64; also in the body). Check network, asset (USDC), payTo and amount against your spending policy.
5. Resend the identical body and key with PAYMENT-SIGNATURE (base64 x402 payload, EIP-3009 authorization). Payment settles through Coinbase CDP before research starts. 200 returns the result; typical duration 30–120 s.
6. To resume after a disconnect or to claim a free retry of failed paid research, resend the identical body and key with Authorization: Bearer <Idempotency-Key>. Do not sign a new payment. GET /api/v1/requests/{id} with the same bearer returns status or the result.
Set max_price_usdc to refuse (HTTP 422, nothing charged) when the tier price exceeds your ceiling.

## Request fields
query (required, any language) · model · sku · part_number · gtin · specifications[] · quantity · unit (comparison basis: kg, box, month, 1000 calls, шт, 公斤 …) · condition new|used|refurbished|any · market {country ISO-2, region, city, description} (omit for global) · currency (ISO-4217 comparison currency) · delivery · tax included|excluded|any · buyer_type b2b|b2c|any · channel retail|wholesale|any · exclude[] · max_results 1–20 · max_acceptable_price {amount,currency} (offers above are flagged, not hidden) · tier quick|standard|deep · preferred_output_language (BCP 47) · search_languages[] · max_price_usdc.

## Result
summary {status computed|insufficient_comparable_offers|no_offers, statistics {count,min,max,median,mean,p25,p75,currency,basis}, explanation} · comparison_groups[] (match class, condition, pricing type, comparison basis, currency; statistics only over offers marked in_statistics) · offers[] · exchange_rates[] · excluded_candidates[] with machine-readable reasons · limitations[] · language · search_plan.
Each offer: seller {name,domain,type} · title (original script) · model_sku · source_url · source_type · source_language · retrieval {method direct_fetch|extraction_service, retrieved_at, structured_data_found} · price {original (verbatim, e.g. "€1.299,00"), value, currency, value_status, currency_status, currency_basis, type one_time|recurring|usage_based, billing_period} · quantity · unit · unit_price · normalized {amount, currency, basis, conversion {from,to,rate,source,source_url,rate_date,retrieved_at}, steps[]} · minimum_order_quantity · condition · availability · shipping · taxes_fees · freshness {status observed_at_retrieval|provider_retrieved|stale_indicator, retrieved_at, price_valid_until, notes} · match {quality exact|equivalent|similar, reason, differences} · comparability {group_id, in_statistics, excluded_reason} · within_max_acceptable_price · evidence[] {field, quote (verbatim original), basis structured_data|page_text, source_language, quote_translation (not evidence)} · confidence high|medium|low with basis.

## Rules the service follows
- verified = literally on the retrieved page (visible text or schema.org structured data); inferred = derived by a stated rule or model judgement; unknown = null. Missing values are never filled in.
- Prices are parsed deterministically from the verbatim page text or structured data (locale-aware: "1.299,00 €", "¥128,000", "₹1,29,900"); a model never supplies a number. A price not literally on the page is rejected.
- Currency is never silently converted: the original stays, and every conversion lists rate, source (ECB euro reference rates), rate date and retrieval time. Ambiguous symbols ($, ¥, kr) are resolved only from structured data (verified) or the market/page context (inferred).
- Unlike offers are not compared as identical: different configuration, condition, market, pricing period or unconvertible units form separate groups or carry an excluded_reason. $20/month vs $200/year and $10/kg vs $900/100 kg are normalized with the steps shown.
- Freshness: every offer has a retrieval timestamp. Stale indicators (discontinued, expired priceValidUntil, historical prices), out-of-stock and discontinued offers are kept visible but excluded from statistics. Search snippets are never price evidence.
- Retrieval: public pages only, honest user agent MarketPriceFinder/1.0, robots.txt respected, structured data before model interpretation, a paid rendering/extraction fallback only when direct retrieval fails.

## Languages and geography
Write in any language. Explanations use preferred_output_language, else the detected request language (English fallback for ambiguous mixed input, reported in language.note). Geography comes only from the market fields and page statements, never from language: searches use the market's own language and terminology (search_plan shows each query and language). Titles, sellers, prices and quotes stay verbatim in their original language and script.

## Limits and policy
Public offers observed at retrieval time; not quotes, reservations or guarantees. No automatic refunds; a completed result with few or no comparable offers is billable. After settlement_unknown, keep the request ID and do not pay again. Do not submit secrets or personal data. Terms: https://marketpricefinder.online/terms · Privacy: https://marketpricefinder.online/privacy · Data sources: https://marketpricefinder.online/sources.