# CUSIP Validator (2s.io)

> CUSIP Validator (2s.io) is a paid API for AI agents from 2s.io, paid per call via x402, $0.001/call, status unknown (last checked 2026-09-14).

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.

## Facts

- Endpoint: GET https://2s.io/api/validate/cusip
- Price: $0.001/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/cusip-validator-2s-io-2476a6a6
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_WGk4--LxPcm-vtv29KizD

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability cusip-validator-2s-io-2476a6a6
```

Example prompt: 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.

## When to prefer this

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.

## Known failure modes

- 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

## How this service works

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.

## Output

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).

## Example request

```json
{
 "input": {
  "type": "http",
  "method": "GET",
  "queryParams": {
   "cusip": "037833100"
  }
 }
}
```

## Request schema (JSON Schema)

```json
{
 "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)."
      }
     }
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/cusip-validator-2s-io-2476a6a6/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from 2s.io](https://www.zero.xyz/host/2s.io/llms.txt)
