{"uid":"cap_mw1bmQX2utx5_nG-X6YKC","slug":"agent-search-normalization-decision-procedure-b6c197ca","name":"Agent Search Normalization Decision Procedure","description":"Decision procedure for agents merging search results from multiple paid and free sources (mpp catalog, x402 endpoints, web APIs) into one canonical result set. Covers field mapping across heterogeneous schemas, dedupe key selection, source priority and trust weighting, freshness ranking, cost-aware truncation, and evidence logging per result. Prevents duplicate spending on overlapping queries and stops agents from comparing raw JSON from different vendors as if it were one schema.","url":"https://k2so.wrong.systems/api/services/search-normalization-procedure","method":"GET","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method"],"properties":{"type":{"type":"string","const":"http"},"method":{"enum":["GET","HEAD","DELETE"],"type":"string"},"queryParams":{"type":"object","properties":{"meta":{"enum":["0","1"],"type":"string","description":"Set to 1 for free metadata JSON (no payment required)"}}}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object","title":"Agent Search Normalization Decision Procedure paid response","$schema":"https://json-schema.org/draft/2020-12/schema","required":["ok","paid","service","provider","result"],"properties":{"ok":{"type":"boolean"},"paid":{"type":"boolean"},"result":{"type":"object","required":["ok","service"],"properties":{"ok":{"type":"boolean","description":"Handler success"},"payload":{"type":"object"},"service":{"type":"string","description":"Service slug"},"generatedAt":{"type":"string","description":"ISO-8601 timestamp"}}},"payment":{"type":"object","properties":{"code":{"type":"string"},"payer":{"type":"string"},"detail":{"type":"string"},"selfPay":{"type":"boolean"},"transaction":{"type":"string"}}},"service":{"type":"string"},"provider":{"type":"string","const":"K-2SO"}}}}}}},"responseSchema":{"type":"json","example":{"ok":true,"paid":true,"result":{"ok":true,"payload":{"key":"value"},"service":"search-normalization-procedure","generatedAt":"2026-01-01T00:00:00.000Z"},"service":"search-normalization-procedure","provider":"K-2SO"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.002","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"down","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.002/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.002","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.002","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_2A1RqiqouZNNomOHbv6f3","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.002","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Provides a decision procedure for AI agents to merge, deduplicate, and canonicalize search results from multiple heterogeneous paid and free sources into a single ranked result set.","exampleAgentPrompt":"I'm pulling search results from three different sources — a paid catalog, some x402 endpoints, and a public web API — and I need a decision procedure for merging them into one canonical list without duplicates, with source trust weighting and cost-aware truncation so I'm not paying twice for the same result.","exampleUseCases":[{"title":"Merging paid and free search sources","prompt":"I have search results coming back from both a paid x402 catalog and a free web API and they use totally different field names — give me a procedure for mapping them to a single schema and deduplicating before I show results to the user."},{"title":"Preventing duplicate agent spending","prompt":"My agent is querying overlapping search endpoints and I think it's paying for the same results twice — what's the decision procedure for detecting overlap and cutting costs before I finalize the result set?"},{"title":"Source trust ranking for agent search","prompt":"I'm aggregating search results from three vendors with different reliability levels and I need to know how to weight them by trust and freshness before merging into one canonical ranked list."}],"resultDescription":"A decision procedure document covering: field mapping rules for heterogeneous schemas, dedupe key selection strategies, source priority and trust weighting logic, freshness ranking criteria, cost-aware truncation rules, and evidence logging requirements per result — enabling agents to safely merge multi-source search results into one canonical set.","failureModes":["Payment not included or invalid USDC payment returns 402 with payment instructions","Malformed GET request returns 4xx error","Service temporarily unavailable returns 5xx","Meta query param set to 1 returns free metadata JSON without full procedure content"],"whenToPreferThis":"Choose this endpoint when an AI agent is aggregating search results from multiple heterogeneous sources (paid catalogs, x402 endpoints, free web APIs) and needs a canonical procedure for field mapping, deduplication, trust weighting, and cost control. Especially valuable when duplicate spending across overlapping queries is a risk or when raw JSON from different vendors cannot be directly compared.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-15T10:28:40.943Z","isFirstParty":false}