{"uid":"cap_hiZxC9383rLUQpKE3xHQx","slug":"x402-url-bulk-normalize-fd3795d7","name":"x402 URL Bulk Normalize","description":"A compact x402 utility surface for agents that need cheap, repeatable non-LLM transformations before spending on heavier routes: CSV cleanup, JSON Schema checks, timestamp conversion, JWT decode, URL normalization, hashes, codecs, and text utilities.","url":"https://x402-utils.558686.xyz/v1/tools/url-bulk-normalize?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":null,"responseSchema":{"type":"json","example":{"ok":true,"tool":"url-bulk-normalize","input":{"urls":["HTTPS://Example.COM:443/b?z=2&a=1#frag"],"dedupe":true,"stripFragment":true},"route":"/v1/tools/url-bulk-normalize","result":{"items":[],"invalidCount":1,"duplicateCount":1,"normalizedUrls":[]},"project":"x402-utility-tools","deterministic":true}},"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":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.0001/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.0001","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.0001","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_NBB5poLvzAzmF6fzymdZL","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.0001","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Normalizes, deduplicates, and validates a batch of URLs by standardizing scheme casing, removing default ports, sorting query parameters, and optionally stripping URL fragments.","exampleAgentPrompt":"Normalize and deduplicate this list of URLs — lowercase the scheme and host, strip default ports, sort query params, and remove fragments: ['HTTPS://Example.COM:443/b?z=2&a=1#frag', 'http://example.com/b?a=1&z=2', 'ftp://Bad URL']","exampleUseCases":[{"title":"Deduplicating scraped link lists","prompt":"I scraped about 200 links from a site and there are lots of duplicates with different casing or query param order — can you normalize them all and remove the dupes, stripping any fragment identifiers too?"},{"title":"Canonicalizing URLs before database insert","prompt":"Before I insert these URLs into my database, normalize them all to canonical form — lowercase scheme and host, remove port 443, sort query params alphabetically — and tell me how many were invalid so I can skip those."},{"title":"Cleaning URL dataset for comparison","prompt":"I have two lists of URLs that might overlap but they're formatted differently — can you normalize both batches so I can compare them accurately? Dedupe within each batch and strip fragments."}],"resultDescription":"Returns a JSON object with a normalizedUrls array of canonical URL strings, a per-item breakdown, an invalidCount of URLs that could not be parsed, and a duplicateCount of URLs removed when deduplication is enabled.","failureModes":["Malformed URLs that cannot be parsed are counted in invalidCount and excluded from normalizedUrls rather than causing a request failure","Empty urls array returns an empty normalizedUrls with zero counts","Non-string items in the urls array may be rejected or counted as invalid","Payment failure (402) if x402 micropayment is not properly attached","Rate limiting or server errors (5xx) on the remote host"],"whenToPreferThis":"Choose this endpoint when you need deterministic, cheap, repeatable URL normalization at scale — especially when deduplication and fragment stripping are needed in a single pass. Prefer it over building custom regex-based normalization when you need consistent canonical forms (sorted query params, lowercased scheme/host, default port removal) without spinning up an LLM. It's ideal as a preprocessing step before URL comparison, hashing, or database storage.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-25T18:37:46.508Z","isFirstParty":false,"canonicalSlug":"x402-url-bulk-normalize-fd3795d7"}