CA Justice Watch Cajusticewatch API
California Justice Watch — public-data tools for AI agents researching California criminal-justice accountability.
California Justice Watch — public-data tools for AI agents researching California criminal-justice accountability.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/cajusticewatch-com:cajusticewatch-com-cajusticewatch-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: California Justice Watch Cajusticewatch API
version: 0.1.0
description: 'Public, read-only API for California criminal-justice accountability data: District Attorneys, public defenders, current judges, law enforcement officer misconduct, Commission on Judicial Performance discipline records (records + full-text decision PDFs), and POST decertifications. Use this OpenAPI spec to add cajusticewatch as a custom action in ChatGPT, a Perplexity Space, or any OpenAPI-aware AI agent. The same tools are also available via the canonical Model Context Protocol (MCP) endpoint at /api/mcp.'
contact:
name: California Justice Watch
url: https://cajusticewatch.com
license:
name: Public records (CC0-equivalent). Editorial scoring CC-BY 4.0.
url: https://cajusticewatch.com/about
servers:
- url: https://cajusticewatch.com
tags:
- name: cajusticewatch
description: California Justice Watch — public-data tools for AI agents researching California criminal-justice accountability.
externalDocs:
description: MCP server documentation
url: https://cajusticewatch.com/api/mcp
paths:
/api/rest/search_das:
get:
operationId: search_das
summary: Search the public database of California District Attorneys with documented…
description: Search the public database of California District Attorneys with documented misconduct or controversy. Returns name, county, in-office date, misconduct type, description, source URL.
tags:
- cajusticewatch
parameters:
- name: query
in: query
required: false
description: Free-text query — matched against any field
schema:
type: string
- name: county
in: query
required: false
description: Filter to a specific California county
schema:
type: string
- name: limit
in: query
required: false
schema:
type: integer
default: 20
minimum: 1
maximum: 100
responses:
'200':
description: Tool result as plain JSON.
content:
application/json:
schema:
type: object
additionalProperties: true
'400':
description: Invalid arguments or upstream tool error.
content:
application/json:
schema:
type: object
properties:
_error:
type: string
_code:
type: integer
/api/rest/get_da:
get:
operationId: get_da
summary: Get a full DA record by name (exact or close partial match)
description: Get a full DA record by name (exact or close partial match).
tags:
- cajusticewatch
parameters:
- name: name
in: query
required: true
description: DA name
schema:
type: string
responses:
'200':
description: Tool result as plain JSON.
content:
application/json:
schema:
type: object
additionalProperties: true
'400':
description: Invalid arguments or upstream tool error.
content:
application/json:
schema:
type: object
properties:
_error:
type: string
_code:
type: integer
/api/rest/search_defenders:
get:
operationId: search_defenders
summary: Search the public database of California public defenders with documented case…
description: Search the public database of California public defenders with documented case outcomes, failures, or systemic-context entries. Includes Bar number, county, office, score.
tags:
- cajusticewatch
parameters:
- name: query
in: query
required: false
schema:
type: string
- name: county
in: query
required: false
schema:
type: string
- name: status
in: query
required: false
description: e.g. "Active", "Suspended"
schema:
type: string
- name: limit
in: query
required: false
schema:
type: integer
default: 20
minimum: 1
maximum: 100
responses:
'200':
description: Tool result as plain JSON.
content:
application/json:
schema:
type: object
additionalProperties: true
'400':
description: Invalid arguments or upstream tool error.
content:
application/json:
schema:
type: object
properties:
_error:
type: string
_code:
type: integer
/api/rest/get_defender:
get:
operationId: get_defender
summary: Get a full defender record by Bar number id or name
description: Get a full defender record by Bar number id or name.
tags:
- cajusticewatch
parameters:
- name: id
in: query
required: false
schema:
type: string
- name: name
in: query
required: false
schema:
type: string
responses:
'200':
description: Tool result as plain JSON.
content:
application/json:
schema:
type: object
additionalProperties: true
'400':
description: Invalid arguments or upstream tool error.
content:
application/json:
schema:
type: object
properties:
_error:
type: string
_code:
type: integer
/api/rest/search_judges:
get:
operationId: search_judges
summary: Search current California judges by name and/or court type (e
description: Search current California judges by name and/or court type (e.g., "superior", "appeal", "supreme"). Returns name + court type pairs.
tags:
- cajusticewatch
parameters:
- name: query
in: query
required: false
schema:
type: string
- name: court_type
in: query
required: false
description: '"superior", "appeal", "supreme", etc.'
schema:
type: string
- name: limit
in: query
required: false
schema:
type: integer
default: 50
minimum: 1
maximum: 500
responses:
'200':
description: Tool result as plain JSON.
content:
application/json:
schema:
type: object
additionalProperties: true
'400':
description: Invalid arguments or upstream tool error.
content:
application/json:
schema:
type: object
properties:
_error:
type: string
_code:
type: integer
/api/rest/search_officers:
get:
operationId: search_officers
summary: Search the public database of California law enforcement officers with…
description: Search the public database of California law enforcement officers with documented misconduct or decertification. Includes name, agency, basis.
tags:
- cajusticewatch
parameters:
- name: query
in: query
required: false
schema:
type: string
- name: agency
in: query
required: false
description: Police department or agency name
schema:
type: string
- name: limit
in: query
required: false
schema:
type: integer
default: 20
minimum: 1
maximum: 100
responses:
'200':
description: Tool result as plain JSON.
content:
application/json:
schema:
type: object
additionalProperties: true
'400':
description: Invalid arguments or upstream tool error.
content:
application/json:
schema:
type: object
properties:
_error:
type: string
_code:
type: integer
/api/rest/get_officer:
get:
operationId: get_officer
summary: Get a full officer record by name (with optional agency filter for…
description: Get a full officer record by name (with optional agency filter for disambiguation).
tags:
- cajusticewatch
parameters:
- name: name
in: query
required: true
schema:
type: string
- name: agency
in: query
required: false
schema:
type: string
responses:
'200':
description: Tool result as plain JSON.
content:
application/json:
schema:
type: object
additionalProperties: true
'400':
description: Invalid arguments or upstream tool error.
content:
application/json:
schema:
type: object
properties:
_error:
type: string
_code:
type: integer
/api/rest/search_cjp:
get:
operationId: search_cjp
summary: Search the California Commission on Judicial Performance (CJP)…
description: 'Search the California Commission on Judicial Performance (CJP) public-discipline records — judges censured, admonished, or removed for misconduct. Source: cjp.ca.gov public decisions.'
tags:
- cajusticewatch
parameters:
- name: query
in: query
required: false
description: Free-text query against any field
schema:
type: string
- name: limit
in: query
required: false
schema:
type: integer
default: 20
minimum: 1
maximum: 100
responses:
'200':
description: Tool result as plain JSON.
content:
application/json:
schema:
type: object
additionalProperties: true
'400':
description: Invalid arguments or upstream tool error.
content:
application/json:
schema:
type: object
properties:
_error:
type: string
_code:
type: integer
/api/rest/search_cjp_documents:
get:
operationId: search_cjp_documents
summary: Semantic search over the full text of CJP public-discipline decisions (250 PDFs…
description: Semantic search over the full text of CJP public-discipline decisions (250 PDFs ingested). Use this for topic questions ("racial bias", "drug-related misconduct", "ex parte communications") or when you need passages, not just summary records. Returns matching passages with citations. Distinct from search_cjp (which searches the summary-record JSON).
tags:
- cajusticewatch
parameters:
- name: query
in: query
required: true
description: Topic or phrase to find in the decision text
schema:
type: string
- name: judge
in: query
required: false
description: Optional judge-name filter (substring match)
schema:
type: string
- name: year
in: query
required: false
description: Optional year filter (e.g. 2020)
schema:
type: integer
- name: limit
in: query
required: false
schema:
type: integer
default: 5
minimum: 1
maximum: 20
responses:
'200':
description: Tool result as plain JSON.
content:
application/json:
schema:
type: object
additionalProperties: true
'400':
description: Invalid arguments or upstream tool error.
content:
application/json:
schema:
type: object
properties:
_error:
type: string
_code:
type: integer
/api/rest/search_capost:
get:
operationId: search_capost
summary: Search the California POST decertification database — law enforcement officers…
description: 'Search the California POST decertification database — law enforcement officers stripped of their POST certification. Source: post.ca.gov public records.'
tags:
- cajusticewatch
parameters:
- name: query
in: query
required: false
schema:
type: string
- name: agency
in: query
required: false
description: Police department or agency name
schema:
type: string
- name: limit
in: query
required: false
schema:
type: integer
default: 20
minimum: 1
maximum: 100
responses:
'200':
description: Tool result as plain JSON.
content:
application/json:
schema:
type: object
additionalProperties: true
'400':
description: Invalid arguments or upstream tool error.
content:
application/json:
schema:
type: object
properties:
_error:
type: string
_code:
type: integer
/api/rest/list_databases:
get:
operationId: list_databases
summary: List all public databases exposed by this MCP server with their metadata (entry…
description: List all public databases exposed by this MCP server with their metadata (entry counts, last updated, descriptions).
tags:
- cajusticewatch
parameters: []
responses:
'200':
description: Tool result as plain JSON.
content:
application/json:
schema:
type: object
additionalProperties: true
'400':
description: Invalid arguments or upstream tool error.
content:
application/json:
schema:
type: object
properties:
_error:
type: string
_code:
type: integer
/api/rest/top_das:
get:
operationId: top_das
summary: Return the top-N California DAs by editorial severity score (descending)
description: Return the top-N California DAs by editorial severity score (descending). Use for "worst DA" / "most-disciplined DA" / ranking questions. Optional county filter. Only manually-scored records are returned.
tags:
- cajusticewatch
parameters:
- name: limit
in: query
required: false
schema:
type: integer
default: 10
minimum: 1
maximum: 25
- name: county
in: query
required: false
description: Optional county filter, e.g. "San Mateo"
schema:
type: string
responses:
'200':
description: Tool result as plain JSON.
content:
application/json:
schema:
type: object
additionalProperties: true
'400':
description: Invalid arguments or upstream tool error.
content:
application/json:
schema:
type: object
properties:
_error:
type: string
_code:
type: integer
/api/rest/top_judges:
get:
operationId: top_judges
summary: Return the top-N California judges by CJP discipline severity (removal >…
description: Return the top-N California judges by CJP discipline severity (removal > censure > admonishment, descending). Use for "worst judge" / "most-disciplined judge" / ranking questions.
tags:
- cajusticewatch
parameters:
- name: limit
in: query
required: false
schema:
type: integer
default: 10
minimum: 1
maximum: 25
responses:
'200':
description: Tool result as plain JSON.
content:
application/json:
schema:
type: object
additionalProperties: true
'400':
description: Invalid arguments or upstream tool error.
content:
application/json:
schema:
type: object
properties:
_error:
type: string
_code:
type: integer
/api/rest/top_officers:
get:
operationId: top_officers
summary: Return the top-N California law enforcement officers by editorial severity…
description: Return the top-N California law enforcement officers by editorial severity score (descending). Use for "worst officer" / "most-disciplined officer" / ranking questions. Optional agency filter.
tags:
- cajusticewatch
parameters:
- name: limit
in: query
required: false
schema:
type: integer
default: 10
minimum: 1
maximum: 25
- name: agency
in: query
required: false
description: Optional agency filter, e.g. "Riverside County Sheriff"
schema:
type: string
responses:
'200':
description: Tool result as plain JSON.
content:
application/json:
schema:
type: object
additionalProperties: true
'400':
description: Invalid arguments or upstream tool error.
content:
application/json:
schema:
type: object
properties:
_error:
type: string
_code:
type: integer
/api/rest/list_pages:
get:
operationId: list_pages
summary: Return the canonical list of pages on cajusticewatch
description: Return the canonical list of pages on cajusticewatch.com — slug, URL, label, and purpose. Use this when the user asks about features/pages/tools of the site, OR when you need to recommend a page, OR before saying "I do not have access to X" — the page may actually exist.
tags:
- cajusticewatch
parameters: []
responses:
'200':
description: Tool result as plain JSON.
content:
application/json:
schema:
type: object
additionalProperties: true
'400':
description: Invalid arguments or upstream tool error.
content:
application/json:
schema:
type: object
properties:
_error:
type: string
_code:
type: integer
externalDocs:
description: MCP discovery manifest
url: https://cajusticewatch.com/.well-known/mcp.json