# 2s.io Judge Lookup

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

Search US federal and state appellate judges by first name and/or last name prefix using CourtListener's People database

## Facts

- Endpoint: GET https://2s.io/api/law/judge-lookup
- Price: $0.0036/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/2s-io-5e15f20a
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_zgTNm9jRfGW4f208PtqiY

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 2s-io-5e15f20a
```

Example prompt: Can you look up the judge named Sotomayor in CourtListener — I want to see her full name, education, political affiliation, and how many judicial positions she's held?

## When to prefer this

Use this endpoint when you need to identify or profile a specific US federal or state appellate judge by name — especially in legal research workflows where you want biographical, educational, and political context about the judiciary. Pairs well with case search and attorney lookup to build a complete 'WHO' graph. Prefer this over general web search when you need structured, machine-readable judge profiles sourced from the authoritative CourtListener/Free Law Project public domain dataset.

## Known failure modes

- Neither firstName nor lastName provided — returns 400 validation error
- Both name fields too short (under 2 chars) — schema validation rejection
- No matching judges found — returns empty results array
- Misspelled name prefix returns zero results
- limit out of range (below 1 or above 50) — returns validation error
- CourtListener upstream unavailable — returns 5xx or timeout

## How this service works

Find US federal + state appellate judges by name in CourtListener's People DB. Query by firstName (case-insensitive prefix), lastName (case-insensitive prefix), or both — at least one required. Returns id, full name + components, dates of birth/death, gender, education (school, degree level, year), political affiliations (party + appointing executive period), count of distinct judicial positions, and canonical CourtListener URL per match. Pairs with law.case-search + law.attorney-lookup to complete the WHO graph of a legal research workflow. Backed by CourtListener (Free Law Project); underlying data is public domain.

## Output

Returns a list of matching judge records from CourtListener's People DB, each including: unique judge ID, full name and its components (first, middle, last), dates of birth and death, gender, education history (school, degree level, year), political affiliations (party and appointing executive with period), count of distinct judicial positions held, and a canonical CourtListener profile URL.

## Example request

```json
{
 "input": {
  "type": "http",
  "method": "GET",
  "queryParams": {
   "limit": 10,
   "lastName": "Smith"
  }
 }
}
```

## 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": {
     "type": "object",
     "properties": {
      "limit": {
       "type": "integer",
       "default": 10,
       "maximum": 50,
       "minimum": 1,
       "description": "Max judge records to return (1-50). Default 10."
      },
      "lastName": {
       "type": "string",
       "maxLength": 100,
       "minLength": 2,
       "description": "Last-name prefix to search (case-insensitive). \"Soto\" matches \"Sotomayor\". Optional, but at least one of firstName/lastName required."
      },
      "firstName": {
       "type": "string",
       "maxLength": 100,
       "minLength": 2,
       "description": "First-name prefix to search (case-insensitive). \"Son\" matches \"Sonia\". Optional, but at least one of firstName/lastName required."
      }
     },
     "additionalProperties": false
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/2s-io-5e15f20a/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)
