{"statusCode":200,"message":"Success","timestamp":"2026-06-18T05:52:08.291Z","path":"/api/v1/legal/tools/ranking","data":{"marketplace":"tools","mainParameters":[{"key":"newest","label":"Newest first","description":"Lists tools in the order they were added to the marketplace, most recent first.","source":"Tool.createdAt","direction":"descending","isDefault":true},{"key":"oldest","label":"Oldest first","description":"Lists tools in the order they were added to the marketplace, oldest first.","source":"Tool.createdAt","direction":"ascending"},{"key":"rating","label":"Highest rated","description":"Lists tools by the average rating computed from verified reviews.","source":"ToolStatistics.averageRating","direction":"descending"},{"key":"price_asc","aliases":["price"],"label":"Price: low to high","description":"Lists tools by their marketplace sale price, cheapest first. The legacy `price` alias maps to this sort.","source":"Tool.salePrice","direction":"ascending"},{"key":"price_desc","label":"Price: high to low","description":"Lists tools by their marketplace sale price, most expensive first.","source":"Tool.salePrice","direction":"descending"},{"key":"popularity","label":"Most viewed","description":"Lists tools by how many listing views they have received across all users.","source":"ToolStatistics.viewCount","direction":"descending"},{"key":"distance","label":"Nearest first","description":"When the client submits the request through the geographic search endpoint with a valid coordinate pair, tools are ordered by great-circle (Haversine) distance from the declared location. When no coordinates are provided, the ordering falls back to newest-first so pagination remains deterministic.","source":"Haversine distance from ToolLocation.coordinates (falls back to Tool.createdAt)","direction":"ascending"},{"key":"title","aliases":["name"],"label":"Name A–Z","description":"Alphabetical sort on the listing title. The legacy `name` alias maps to this sort.","source":"Tool.name","direction":"ascending"}],"relativeImportance":"Each sort option above is applied as the single primary signal. ChefSphere does not combine signals into a blended relevance score. The secondary tie-break is always Tool.id (ascending) for deterministic pagination.","userCanModify":true,"lastReviewedAt":"2026-04-19","legalBasis":["Regulation (EU) 2022/2065 (DSA) Article 27(1) and 27(2)","Directive (EU) 2019/2161 (Omnibus) Article 6a(1)(a)"]}}