{"uid":"cap_0-SiAme8zFUWly9qxtDqs","slug":"taskmint-number-normalize-72e7c710","name":"TaskMint Number Normalize","description":"Exact native USDC on Base; externally owned wallets only. Generate a private 32-byte random request_token for each new job, persist the entire body, and reuse it for challenge/retry and recovery. The token grants result access. Do not log or share it. HTTP 202 or an uncertain transport failure requires recovery with the identical body without a signature, never a new purchase. Results expire after 24 hours. Ten bounded deterministic services. Local execution is free; hosted jobs require customer-authorized payment only when billable.","url":"https://taskmint-sign-proof-node22-production.up.railway.app/api/agent/number_normalize?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"payload":{"type":"object","required":["values","locale"],"properties":{"locale":{"enum":["en-US","en-GB","en-AU","en-IN","de-DE","fr-FR","es-ES","pt-BR","ja-JP","zh-CN","ar-EG","th-TH"]},"values":{"type":"array","items":{"type":"string","maxLength":100,"minLength":1},"maxItems":100,"minItems":1},"currency":{"type":"string","pattern":"^[A-Z]{3}$"}},"additionalProperties":false},"request_token":{"type":"string","pattern":"^[a-f0-9]{64}$","description":"Generate 32 cryptographically random bytes as lowercase hex for each new job. Keep this private result credential and reuse the identical body for retries. Replace the synthetic example token."}}},"responseSchema":{"type":"json","example":{"state":"paid","result":{"rows":[{"index":0,"value":"1234.5","reason":null,"source":"1.234,50"},{"index":1,"value":"9876","reason":null,"source":"9.876,00"},{"index":2,"value":"0.99","reason":null,"source":"0,99"}],"flags":[],"scope":"Supplied data only; no external lookup or verification.","locale":"de-DE","status":"resolved","service":"number_normalize","summary":"3 of 3 values resolved","version":"0.5.0","currency":"EUR","precision":"Exact decimal strings, up to 24 integer and 12 fractional digits. Currency is caller-supplied metadata; no FX conversion or minor-unit rounding."},"service":"number_normalize"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.001","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.001/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.001","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.001","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_n0QVMnDtGaXLVgX_NEAzA","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.001","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Normalizes locale-specific number strings (including currency amounts) into canonical decimal values using the specified locale's formatting conventions.","exampleAgentPrompt":"Normalize these German-formatted numbers — '1.234,50', '9.876,00', and '0,99' — using the de-DE locale, and treat the currency as EUR.","exampleUseCases":[{"title":"Normalize e-commerce prices from EU supplier","prompt":"I have a batch of prices from our German supplier formatted like '1.299,99' and '45,00' — can you normalize them all to standard decimals using the de-DE locale with EUR as the currency?"},{"title":"Parse user-entered amounts in multi-country app","prompt":"Users in Brazil are entering amounts like '1.500,75' and '200,00' in pt-BR format — please normalize these to plain decimal strings so we can store them consistently."},{"title":"Standardize numbers from Japanese data export","prompt":"I've got a list of numbers exported from a Japanese system in ja-JP format: '１，２３４' and '５６７．８９' — normalize them to standard decimal values for me."}],"resultDescription":"Returns a JSON object with state ('paid'), and a result containing an array of rows — each with an index, normalized decimal value string, original source string, and a reason if unresolvable — plus summary metadata including locale, currency, version, service name, precision details, and any flags.","failureModes":["Invalid locale enum value returns validation error","Number string that cannot be parsed in the given locale returns a row with a null value and a reason explaining the failure","request_token missing or malformed (not 64-char hex) causes rejection","Exceeding 100 values in the array returns a schema validation error","Payment failure or HTTP 402 means payment must be retried with identical body","HTTP 202 or transport uncertainty requires recovery with the same body and token, not a new purchase","Results expire after 24 hours from job submission"],"whenToPreferThis":"Choose this endpoint when you need to batch-parse locale-formatted number strings (with locale-specific thousand separators and decimal points) into canonical decimal representations, especially across multiple international locales. It is purpose-built for the exact parsing ambiguity that arises from locale conventions (e.g. European comma-as-decimal vs US period-as-decimal). Prefer it over generic parsing libraries when you need deterministic, auditable results with a precise token-based result retrieval model and support for up to 12 fractional digits.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-10T00:52:21.397Z","isFirstParty":false,"canonicalSlug":"taskmint-number-normalize-72e7c710"}