# SF Superior Court API reference Use this as compact context for the live bluedoor SF Superior Court API. Primary URLs: - API base URL: https://api.bluedoor.sh/sf-superior-court/v1 - OpenAPI JSON: https://bluedoor.sh/apis/sf-superior-court/docs/openapi.json - Upstream OpenAPI JSON: https://api.bluedoor.sh/sf-superior-court/v1/openapi.json - Docs: https://bluedoor.sh/apis/sf-superior-court/docs - Landing page: https://bluedoor.sh/apis/sf-superior-court Authentication: - /health, /v1, and /v1/openapi.json are public. - Most data routes require either x-api-key or Authorization: Bearer . - Protected routes return {"error":{"message":"missing or invalid API key","status":401}} without valid credentials. Production shape: - Backing schema: sfsc_full_20260531. - Public index stats used by the docs examples: 333,000 cases, 511,856 people, 420,908 charges, 2,161,162 docket events, 380,482 case outcomes. - Name-only people rows are appearances in source records; do not treat them as resolved identities. - Oversight, police stop, custody, property, housing, and public-safety context rows are source-labeled context and should not be merged into court facts without exact join evidence. Important routes: - /health - /v1 - /v1/openapi.json - /v1/stats - /v1/search - /v1/case-search - /v1/cases - /v1/cases/{case_id} - /v1/people - /v1/charges - /v1/statutes - /v1/events - /v1/calendar-events - /v1/documents - /v1/payments - /v1/judge-assignments - /v1/attorney-licenses - /v1/attorney-license-events - /v1/prosecutions - /v1/outcomes - /v1/incidents - /v1/dispatch-calls - /v1/bail-bonds - /v1/custody-statuses - /v1/query-plan Examples: ```bash curl "https://api.bluedoor.sh/sf-superior-court/v1/case-search?case_number=CRI-26010215&include_facets=true&limit=2" \ -H "x-api-key: $BLUEDOOR_API_KEY" curl "https://api.bluedoor.sh/sf-superior-court/v1/cases/4270249" \ -H "Authorization: Bearer $BLUEDOOR_API_KEY" curl "https://api.bluedoor.sh/sf-superior-court/v1/stats" \ -H "x-api-key: $BLUEDOOR_API_KEY" ```