{"uid":"cap_WGk4--LxPcm-vtv29KizD","slug":"cusip-validator-2s-io-2476a6a6","name":"CUSIP Validator (2s.io)","description":"Validate a CUSIP (9-character US/Canada securities identifier) with its mod-10 weighted check digit. Returns {valid, cusip, checkDigit, reason}. Catches transposed characters in security master / holdings data that a length check misses. Structure + checksum only.","url":"https://2s.io/api/validate/cusip","method":"GET","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method","queryParams"],"properties":{"type":{"const":"http"},"method":{"const":"GET"},"queryParams":{"required":["cusip"],"properties":{"cusip":{"type":"string","description":"9-character CUSIP (case-insensitive)."}}}}}}},"responseSchema":null,"example":{"request":{"input":{"type":"http","method":"GET","queryParams":{"cusip":"037833100"}}},"response":{"data":{"ok":true,"items":[{"cusip":"037833100","input":"037833100","valid":true,"reason":null,"checkDigit":"0"}],"total":1,"source":{"url":"https://2s.io","license":"No upstream license — computed by 2s.io","provider":"2s.io CUSIP validator"}},"meta":{"cost":{"usd":0.001,"tier":0},"caller":"x402","version":null,"endpoint":"validate.cusip","settlement":{"txHash":"0xb1340b145e9480ea9034785b6f2abc067fbd5dbec533073285b243be8113fe95","network":"eip155:8453","success":true}}}},"exampleRequest":{"cusip":"037833100"},"tags":["x402"],"displayCostAmount":"0.001","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"settled","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.0025","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.0025","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_VYaHSiDsLYDQSMPlcm9nJ","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.0025","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Validates a 9-character CUSIP securities identifier by verifying its structure and mod-10 weighted check digit, returning validity status and the reason for any failure.","exampleAgentPrompt":"Can you check whether this CUSIP is valid: 037833100? I want to know if the check digit is correct and whether it's a well-formed identifier.","exampleUseCases":null,"resultDescription":"Returns a JSON object with: a boolean 'valid' field, the normalized 'cusip' string, the computed 'checkDigit' character, and a 'reason' string explaining any validation failure (e.g. wrong length, invalid characters, check digit mismatch).","failureModes":["Missing or empty 'cusip' query parameter returns an error","CUSIP shorter or longer than 9 characters fails with a reason explaining the length issue","Non-alphanumeric characters cause a structural validation failure","Check digit mismatch is reported with valid=false and the expected vs actual digit","Network or upstream errors return non-200 HTTP status"],"whenToPreferThis":"Use this endpoint when you need to verify the structural integrity and check digit correctness of a CUSIP before inserting it into a security master, holdings database, or trade record. It catches transposed-character errors that a simple length or regex check would miss. Prefer this over manual computation when automating data ingestion pipelines for US/Canada securities.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-14T00:45:27.797Z","isFirstParty":false}