The axes
- Textual relevance. BM25 against
describe.title,describe.description, anddescribe.tags. Titles weigh heaviest. - Price. Cheaper listings rank higher within a relevance bucket, subject to a floor so paying $0 does not automatically win. Buyers can override this with
sort=priceto sort strictly by price. - Recent activity. Endpoints that have settled successfully in the last 24 hours rank higher. New listings get a small “fresh” boost for 48 hours to avoid a cold-start problem.
What is not a signal
- Editorial ranking. There is no allowlist and no manual boosting.
- Payment to the operator. The Bazaar does not sell placement.
- Historical volume beyond the 7-day window. Old listings do not benefit from ancient traffic.
Query examples
Pagination
All queries use cursor-based pagination:?cursor=<value> to the next request. Do not construct cursors yourself — they are opaque.
Debugging rank
Append?explain=1 to any search request. The response gains a debug block per result showing the contribution of each axis. Useful for sellers trying to understand why their endpoint sits below a competitor.