OpenJustice Open Data Portal JSON:API

The live JSON:API 1.0 surface behind the Attorney General's OpenJustice Open Data Portal, served anonymously by Drupal 9 at https://data-openjustice.doj.ca.gov/jsonapi. It carries the 26 published criminal-justice datasets with their 148 CSV/XLSX/ZIP/PDF distributions (direct downloads under /sites/default/files/), the six Exploration stats pages, the CJSC statistical publications and their per-year report PDFs, the OpenJustice data stories and the site taxonomies. Reads are anonymous with JSON:API filtering, sorting, sparse fieldsets, relationship includes and 50-per-page offset pagination; anonymous create is granted only on the three feedback routes the site footer uses (signup, suggestion, bug) and every other write returns 401. Not published or documented by the DOJ — found through the axios baseURL in the OpenJustice app bundle and described from live probes on 2026-09-17.

Operations 68

GET / JSON:API resource-type index #
GET /node/dataset List node--dataset resources #
GET /node/dataset/{id} Get one node--dataset resource by UUID #
GET /node/stats List node--stats resources #
GET /node/stats/{id} Get one node--stats resource by UUID #
GET /node/publication List node--publication resources #
GET /node/publication/{id} Get one node--publication resource by UUID #
GET /node/documentation List node--documentation resources #
GET /node/documentation/{id} Get one node--documentation resource by UUID #
GET /node/exploration List node--exploration resources #
GET /node/exploration/{id} Get one node--exploration resource by UUID #
GET /node/data_story List node--data_story resources #
GET /node/data_story/{id} Get one node--data_story resource by UUID #
GET /node/data_story_section List node--data_story_section resources #
GET /node/data_story_section/{id} Get one node--data_story_section resource by UUID #
GET /node/page List node--page resources #
GET /node/page/{id} Get one node--page resource by UUID #
GET /node/landing_page List node--landing_page resources #
GET /node/landing_page/{id} Get one node--landing_page resource by UUID #
GET /node/front_page List node--front_page resources #
GET /node/front_page/{id} Get one node--front_page resource by UUID #
GET /file/file List file--file resources #
GET /file/file/{id} Get one file--file resource by UUID #
GET /paragraph/data_chart List paragraph--data_chart resources #
GET /paragraph/data_chart/{id} Get one paragraph--data_chart resource by UUID #
GET /paragraph/data_tab List paragraph--data_tab resources #
GET /paragraph/data_tab/{id} Get one paragraph--data_tab resource by UUID #
GET /paragraph/publication_report List paragraph--publication_report resources #
GET /paragraph/publication_report/{id} Get one paragraph--publication_report resource by UUID #
GET /paragraph/section_block List paragraph--section_block resources #
GET /paragraph/section_block/{id} Get one paragraph--section_block resource by UUID #
GET /paragraph/block_item List paragraph--block_item resources #
GET /paragraph/block_item/{id} Get one paragraph--block_item resource by UUID #
GET /paragraph/blocks_quad List paragraph--blocks_quad resources #
GET /paragraph/blocks_quad/{id} Get one paragraph--blocks_quad resource by UUID #
GET /paragraph/highlight_item List paragraph--highlight_item resources #
GET /paragraph/highlight_item/{id} Get one paragraph--highlight_item resource by UUID #
GET /paragraph/highlight_tri List paragraph--highlight_tri resources #
GET /paragraph/highlight_tri/{id} Get one paragraph--highlight_tri resource by UUID #
GET /paragraph/intro_header List paragraph--intro_header resources #
GET /paragraph/intro_header/{id} Get one paragraph--intro_header resource by UUID #
GET /taxonomy_term/data_type List taxonomy_term--data_type resources #
GET /taxonomy_term/data_type/{id} Get one taxonomy_term--data_type resource by UUID #
GET /taxonomy_term/data_story_year List taxonomy_term--data_story_year resources #
GET /taxonomy_term/data_story_year/{id} Get one taxonomy_term--data_story_year resource by UUID #
GET /taxonomy_term/site_section List taxonomy_term--site_section resources #
GET /taxonomy_term/site_section/{id} Get one taxonomy_term--site_section resource by UUID #
GET /taxonomy_term/story_type List taxonomy_term--story_type resources #
GET /taxonomy_term/story_type/{id} Get one taxonomy_term--story_type resource by UUID #
GET /node_type/node_type List node_type--node_type resources #
GET /node_type/node_type/{id} Get one node_type--node_type resource by UUID #
GET /paragraphs_type/paragraphs_type List paragraphs_type--paragraphs_type resources #
GET /paragraphs_type/paragraphs_type/{id} Get one paragraphs_type--paragraphs_type resource by UUID #
GET /menu/menu List menu--menu resources #
GET /menu/menu/{id} Get one menu--menu resource by UUID #
GET /menu_link_content/menu_link_content List menu_link_content--menu_link_content resources #
GET /menu_link_content/menu_link_content/{id} Get one menu_link_content--menu_link_content resource by UUID #
GET /contact_form/contact_form List contact_form--contact_form resources #
GET /contact_form/contact_form/{id} Get one contact_form--contact_form resource by UUID #
GET /date_format/date_format List date_format--date_format resources #
GET /date_format/date_format/{id} Get one date_format--date_format resource by UUID #
GET /block/block List block--block resources #
GET /block/block/{id} Get one block--block resource by UUID #
POST /node/signup Submit a newsletter sign-up (email address) #
POST /node/suggestion Submit a dataset suggestion #
POST /node/bug Submit a bug report #

Documentation

Specifications

Other Resources

🔗
APIDiscovery
https://raw.githubusercontent.com/api-evangelist/california-attorney-general/refs/heads/main/discovery/california-attorney-general-openjustice-jsonapi-index.json
🔗
Datasets
https://raw.githubusercontent.com/api-evangelist/california-attorney-general/refs/heads/main/datasets/california-attorney-general-datasets.yml
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/california-attorney-general/refs/heads/main/examples/_index.yml
🔗
Website
https://openjustice.doj.ca.gov/
🔗
Conventions
https://raw.githubusercontent.com/api-evangelist/california-attorney-general/refs/heads/main/conventions/california-attorney-general-conventions.yml
🔗
ErrorCatalog
https://raw.githubusercontent.com/api-evangelist/california-attorney-general/refs/heads/main/errors/california-attorney-general-problem-types.yml
🔗
Conformance
https://raw.githubusercontent.com/api-evangelist/california-attorney-general/refs/heads/main/conformance/california-attorney-general-conformance.yml
🔗
Lifecycle
https://raw.githubusercontent.com/api-evangelist/california-attorney-general/refs/heads/main/lifecycle/california-attorney-general-lifecycle.yml
🔗
DataModel
https://raw.githubusercontent.com/api-evangelist/california-attorney-general/refs/heads/main/data-model/california-attorney-general-data-model.yml
🔗
Plans
https://raw.githubusercontent.com/api-evangelist/california-attorney-general/refs/heads/main/plans/california-attorney-general-plans-pricing.yml
🔗
Overlay
https://raw.githubusercontent.com/api-evangelist/california-attorney-general/refs/heads/main/overlays/california-attorney-general-openjustice-jsonapi-overlay.yaml
🔗
X-MCPServerCandidate
https://raw.githubusercontent.com/api-evangelist/california-attorney-general/refs/heads/main/mcp/california-attorney-general-mcp.yml
🔗
ToolCrosswalk
https://raw.githubusercontent.com/api-evangelist/california-attorney-general/refs/heads/main/mcp/california-attorney-general-tool-crosswalk.yml
🔗
AgentSkill
https://raw.githubusercontent.com/api-evangelist/california-attorney-general/refs/heads/main/skills/_index.yml
🔗
LLMsTxt
https://raw.githubusercontent.com/api-evangelist/california-attorney-general/refs/heads/main/llms/california-attorney-general-llms.txt
🔗
APIsJSON
https://raw.githubusercontent.com/api-evangelist/california-attorney-general/refs/heads/main/apis.yml

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/openjustice-open-data-portal-jsonapi"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API 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 Specification

california-attorney-general-openjustice-jsonapi-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: California DOJ OpenJustice Open Data Portal JSON:API
  version: '1.0'
  summary: Anonymous JSON:API 1.0 over the California Department of Justice OpenJustice open-data portal — the Attorney
    General's criminal-justice datasets (Arrests, Crimes & Clearances, Homicide, Hate Crime, Use of Force, RIPA
    stop data, deaths in custody and 19 more), their CSV/XLSX distributions, CJSC publications and data stories.
  description: 'The California Attorney General heads the California Department of Justice, whose Criminal Justice
    Statistics Center runs the OpenJustice initiative (https://openjustice.doj.ca.gov). The public site is a Vue
    single-page app; every page of it, including the Data section, is served as the same HTML shell and answers
    HTTP 200 for any path. The content behind it is read from a separate Drupal 9 host, https://data-openjustice.doj.ca.gov,
    through Drupal core''s JSON:API module — and that surface is live, entirely anonymous for reads, standards-conformant
    JSON:API 1.0, and carries the datasets, their downloadable distributions, the statistical publications and the
    data stories.


    THIS DOCUMENT IS DERIVED BY API EVANGELIST FROM LIVE PROBES ON 2026-09-17, NOT PUBLISHED BY THE DOJ. The DOJ
    publishes no developer portal, no API documentation and no OpenAPI. The app bundle at https://openjustice.doj.ca.gov/static/js/app.27bd7a2568ccfb17905a.js
    sets `axios.defaults.baseURL = "https://data-openjustice.doj.ca.gov/"` and builds `/jsonapi/node/stats`, `/jsonapi/node/dataset`
    etc. requests against it — that is how the host was found. Every path below corresponds to a `links` entry in
    the resource-type index fetched from https://data-openjustice.doj.ca.gov/jsonapi and was individually requested
    anonymously on 2026-09-17; only types that returned HTTP 200 with `application/vnd.api+json` and at least one
    resource object are described. Types the index advertises but which came back empty, or which Drupal omitted
    for insufficient authorisation, are recorded in `x-probe.excluded`. Two readable types were deliberately left
    out on privacy grounds (see `x-probe.excluded`).


    WRITES: unlike many government Drupal JSON:API surfaces this one is NOT configured read-only. Anonymous POST
    is granted on exactly the three feedback routes the site footer uses (node/signup, node/suggestion, node/bug
    — an empty-body POST returns 400 "Empty request body." rather than 401); every other write route probed (POST
    node/dataset, PATCH node/stats, DELETE node/dataset) returns 401 "No authentication credentials provided." with
    no documented way to obtain credentials. The three feedback POSTs are described; nothing else mutating is.


    NOT ON THIS API: the RIPA, Use of Force and other datasets'' content is not queryable row-by-row — the API serves
    dataset METADATA and file pointers; the data itself is in the CSV/XLSX/ZIP files under https://data-openjustice.doj.ca.gov/sites/default/files/
    (direct download, verified text/csv). The dashboard''s PHP query endpoints named in the bundle (filter-queries/agencies-load-data.php,
    filter-queries/get-cjsc-data.php) returned HTTP 500 to an unparameterised GET and are not described.'
  contact:
    name: California Department of Justice — Criminal Justice Statistics Center
    email: datarequests@doj.ca.gov
    url: https://oag.ca.gov/research-services/request-process
  termsOfService: https://oag.ca.gov/conditions
  license:
    name: California DOJ conditions of use (public government data; no licence text is attached to the files)
    url: https://oag.ca.gov/conditions
  x-derived-by: API Evangelist enrichment pipeline
  x-derived-from: https://data-openjustice.doj.ca.gov/jsonapi
  x-derived-on: '2026-09-17'
  x-publisher-provided: false
servers:
- url: https://data-openjustice.doj.ca.gov/jsonapi
  description: Production JSON:API entry point (Drupal 9, behind an F5 load balancer that sets an `oag.ca.gov` persistence
    cookie). Public, anonymous reads.
security: []
x-provenance:
  generated: '2026-09-17'
  method: probed
  source: https://data-openjustice.doj.ca.gov/jsonapi
  author: API Evangelist
  discovery: https://openjustice.doj.ca.gov/static/js/app.27bd7a2568ccfb17905a.js (axios baseURL)
x-probe:
  fetched: '2026-09-17'
  index:
    url: https://data-openjustice.doj.ca.gov/jsonapi
    http_status: 200
    content_type: application/vnd.api+json
    resource_types_advertised: 70
  described: 32
  page_limit_cap: 50
  writes:
    anonymous_create_granted:
    - node--signup
    - node--suggestion
    - node--bug
    requires_credentials:
    - method: POST
      path: /node/dataset
      status: 401
    - method: PATCH
      path: /node/stats/{id}
      status: 401
    - method: DELETE
      path: /node/dataset/{id}
      status: 401
  excluded:
    omitted_insufficient_authorization:
    - action--action
    - base_field_override--base_field_override
    - block_content_type--block_content_type
    - corresponding_reference--corresponding_reference
    - editor--editor
    - embed_button--embed_button
    - entity_form_display--entity_form_display
    - entity_form_mode--entity_form_mode
    - entity_view_display--entity_view_display
    - entity_view_mode--entity_view_mode
    - field_config--field_config
    - field_storage_config--field_storage_config
    - filter_format--filter_format
    - image_style--image_style
    - node--bug
    - node--signup
    - node--suggestion
    - path_alias--path_alias
    - pathauto_pattern--pathauto_pattern
    - rdf_mapping--rdf_mapping
    - rest_resource_config--rest_resource_config
    - shortcut--default
    - shortcut_set--shortcut_set
    - taxonomy_vocabulary--taxonomy_vocabulary
    - tour--tour
    - user_role--user_role
    - view--view
    - webform--webform
    - webform_options--webform_options
    - workflow--workflow
    empty_collection:
    - block_content--basic
    - taxonomy_menu--taxonomy_menu
    - taxonomy_term--tags
    - webform_submission--contact
    post_only_405_on_get:
    - contact_message--feedback
    - contact_message--personal
    excluded_by_api_evangelist_on_privacy_grounds:
    - user--user (anonymous GET returns 22 Drupal account display names)
    - webform_submission--kinetic_energy_ab48_2022 (anonymous GET returns form-submission metadata including remote_addr
      and token fields)
tags:
- name: Discovery
  description: The JSON:API index.
- name: Content
  description: Datasets, publications, stats pages, data stories and site pages (node entities).
- name: Files
  description: Downloadable distributions.
- name: Paragraphs
  description: Composable page fragments (charts, tabs, report years, blocks).
- name: Taxonomies
  description: Vocabularies used to classify content.
- name: Site Configuration
  description: Drupal config entities readable anonymously.
- name: Feedback
  description: The three anonymous feedback creates the site footer uses.
paths:
  /:
    get:
      operationId: getResourceIndex
      summary: JSON:API resource-type index
      tags:
      - Discovery
      description: 'The JSON:API entry point. Returns a `links` map of every advertised resource type in `entity--bundle`
        form. Probed 2026-09-17: HTTP 200, application/vnd.api+json, 7,905 bytes, 70 resource-type link relations.
        Saved verbatim at discovery/california-attorney-general-openjustice-jsonapi-index.json.'
      responses:
        '200':
          description: Resource-type index document
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/IndexDocument'
      x-probe:
        url: https://data-openjustice.doj.ca.gov/jsonapi
        http_status: 200
        content_type: application/vnd.api+json
        fetched: '2026-09-17'
  /node/dataset:
    get:
      operationId: listNodeDataset
      summary: List node--dataset resources
      tags:
      - Content
      description: 'OpenJustice Open Data Portal datasets — the 26 published criminal-justice data products (Arrests,
        Crimes and Clearances, Homicide, Hate Crime, Use of Force, RIPA Stop Data, Death in Custody, Domestic Violence
        calls, Gun Violence Restraining Orders, Electronic Search Warrant notifications and more). Each dataset
        relates to its CSV/XLSX/ZIP/PDF distributions through `field_source` (file--file) and to a data-type taxonomy
        term through `field_data_type`. This is the collection a data consumer wants.


        Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 26 resource object(s) returned from
        https://data-openjustice.doj.ca.gov/jsonapi/node/dataset. Note: `?page[limit]=1` returns an empty page with
        meta.omitted because the lowest-id dataset node is unpublished; request the collection without page[limit]=1,
        or with page[limit]=50, to receive all 26 published datasets.'
      parameters:
      - $ref: '#/components/parameters/pageLimit'
      - $ref: '#/components/parameters/pageOffset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/filter'
      - $ref: '#/components/parameters/include'
      - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: JSON:API collection document.
          content:
            application/vnd.api+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/CollectionDocument'
                - type: object
                  properties:
                    data:
                      type: array
                      items:
                        $ref: '#/components/schemas/NodeDataset'
        '400':
          $ref: '#/components/responses/BadRequest'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      x-probe:
        url: https://data-openjustice.doj.ca.gov/jsonapi/node/dataset
        http_status: 200
        content_type: application/vnd.api+json
        fetched: '2026-09-17'
        resources_returned: 26
  /node/dataset/{id}:
    get:
      operationId: getNodeDataset
      summary: Get one node--dataset resource by UUID
      tags:
      - Content
      description: Returns a single `node--dataset` resource object. Individual reads were verified on 2026-09-17
        against `node--stats` (self link of the Adult Probation Caseload & Actions page). An unknown UUID returns
        HTTP 404 with a JSON:API error document.
      parameters:
      - $ref: '#/components/parameters/resourceId'
      - $ref: '#/components/parameters/include'
      - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: JSON:API individual document.
          content:
            application/vnd.api+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/IndividualDocument'
                - type: object
                  properties:
                    data:
                      $ref: '#/components/schemas/NodeDataset'
        '404':
          $ref: '#/components/responses/NotFound'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
  /node/stats:
    get:
      operationId: listNodeStats
      summary: List node--stats resources
      tags:
      - Content
      description: 'The six OpenJustice Exploration "stats" pages (crime statistics explorers). `field_data_query`
        names the server-side query slug the dashboard uses; `field_path` is the public exploration path.


        Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 3 resource object(s) returned from
        https://data-openjustice.doj.ca.gov/jsonapi/node/stats?page[limit]=3.'
      parameters:
      - $ref: '#/components/parameters/pageLimit'
      - $ref: '#/components/parameters/pageOffset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/filter'
      - $ref: '#/components/parameters/include'
      - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: JSON:API collection document.
          content:
            application/vnd.api+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/CollectionDocument'
                - type: object
                  properties:
                    data:
                      type: array
                      items:
                        $ref: '#/components/schemas/NodeStats'
        '400':
          $ref: '#/components/responses/BadRequest'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      x-probe:
        url: https://data-openjustice.doj.ca.gov/jsonapi/node/stats?page[limit]=3
        http_status: 200
        content_type: application/vnd.api+json
        fetched: '2026-09-17'
        resources_returned: 3
  /node/stats/{id}:
    get:
      operationId: getNodeStats
      summary: Get one node--stats resource by UUID
      tags:
      - Content
      description: Returns a single `node--stats` resource object. Individual reads were verified on 2026-09-17
        against `node--stats` (self link of the Adult Probation Caseload & Actions page). An unknown UUID returns
        HTTP 404 with a JSON:API error document.
      parameters:
      - $ref: '#/components/parameters/resourceId'
      - $ref: '#/components/parameters/include'
      - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: JSON:API individual document.
          content:
            application/vnd.api+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/IndividualDocument'
                - type: object
                  properties:
                    data:
                      $ref: '#/components/schemas/NodeStats'
        '404':
          $ref: '#/components/responses/NotFound'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
  /node/publication:
    get:
      operationId: listNodePublication
      summary: List node--publication resources
      tags:
      - Content
      description: 'CJSC statistical publications (annual Crime in California, Homicide in California, Hate Crime
        in California, Juvenile Justice in California, Use of Force, RIPA). Each publication relates to per-year
        report paragraphs through `field_publication_reports`.


        Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 3 resource object(s) returned from
        https://data-openjustice.doj.ca.gov/jsonapi/node/publication?page[limit]=3.'
      parameters:
      - $ref: '#/components/parameters/pageLimit'
      - $ref: '#/components/parameters/pageOffset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/filter'
      - $ref: '#/components/parameters/include'
      - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: JSON:API collection document.
          content:
            application/vnd.api+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/CollectionDocument'
                - type: object
                  properties:
                    data:
                      type: array
                      items:
                        $ref: '#/components/schemas/NodePublication'
        '400':
          $ref: '#/components/responses/BadRequest'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      x-probe:
        url: https://data-openjustice.doj.ca.gov/jsonapi/node/publication?page[limit]=3
        http_status: 200
        content_type: application/vnd.api+json
        fetched: '2026-09-17'
        resources_returned: 3
  /node/publication/{id}:
    get:
      operationId: getNodePublication
      summary: Get one node--publication resource by UUID
      tags:
      - Content
      description: Returns a single `node--publication` resource object. Individual reads were verified on 2026-09-17
        against `node--stats` (self link of the Adult Probation Caseload & Actions page). An unknown UUID returns
        HTTP 404 with a JSON:API error document.
      parameters:
      - $ref: '#/components/parameters/resourceId'
      - $ref: '#/components/parameters/include'
      - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: JSON:API individual document.
          content:
            application/vnd.api+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/IndividualDocument'
                - type: object
                  properties:
                    data:
                      $ref: '#/components/schemas/NodePublication'
        '404':
          $ref: '#/components/responses/NotFound'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
  /node/documentation:
    get:
      operationId: listNodeDocumentation
      summary: List node--documentation resources
      tags:
      - Content
      description: 'Data documentation pages published alongside the datasets.


        Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 2 resource object(s) returned from
        https://data-openjustice.doj.ca.gov/jsonapi/node/documentation?page[limit]=3.'
      parameters:
      - $ref: '#/components/parameters/pageLimit'
      - $ref: '#/components/parameters/pageOffset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/filter'
      - $ref: '#/components/parameters/include'
      - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: JSON:API collection document.
          content:
            application/vnd.api+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/CollectionDocument'
                - type: object
                  properties:
                    data:
                      type: array
                      items:
                        $ref: '#/components/schemas/NodeDocumentation'
        '400':
          $ref: '#/components/responses/BadRequest'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      x-probe:
        url: https://data-openjustice.doj.ca.gov/jsonapi/node/documentation?page[limit]=3
        http_status: 200
        content_type: application/vnd.api+json
        fetched: '2026-09-17'
        resources_returned: 2
  /node/documentation/{id}:
    get:
      operationId: getNodeDocumentation
      summary: Get one node--documentation resource by UUID
      tags:
      - Content
      description: Returns a single `node--documentation` resource object. Individual reads were verified on 2026-09-17
        against `node--stats` (self link of the Adult Probation Caseload & Actions page). An unknown UUID returns
        HTTP 404 with a JSON:API error document.
      parameters:
      - $ref: '#/components/parameters/resourceId'
      - $ref: '#/components/parameters/include'
      - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: JSON:API individual document.
          content:
            application/vnd.api+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/IndividualDocument'
                - type: object
                  properties:
                    data:
                      $ref: '#/components/schemas/NodeDocumentation'
        '404':
          $ref: '#/components/responses/NotFound'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
  /node/exploration:
    get:
      operationId: listNodeExploration
      summary: List node--exploration resources
      tags:
      - Content
      description: 'Landing pages for the Exploration section of OpenJustice.


        Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 3 resource object(s) returned from
        https://data-openjustice.doj.ca.gov/jsonapi/node/exploration?page[limit]=3.'
      parameters:
      - $ref: '#/components/parameters/pageLimit'
      - $ref: '#/components/parameters/pageOffset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/filter'
      - $ref: '#/components/parameters/include'
      - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: JSON:API collection document.
          content:
            application/vnd.api+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/CollectionDocument'
                - type: object
                  properties:
                    data:
                      type: array
                      items:
                        $ref: '#/components/schemas/NodeExploration'
        '400':
          $ref: '#/components/responses/BadRequest'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      x-probe:
        url: https://data-openjustice.doj.ca.gov/jsonapi/node/exploration?page[limit]=3
        http_status: 200
        content_type: application/vnd.api+json
        fetched: '2026-09-17'
        resources_returned: 3
  /node/exploration/{id}:
    get:
      operationId: getNodeExploration
      summary: Get one node--exploration resource by UUID
      tags:
      - Content
      description: Returns a single `node--exploration` resource object. Individual reads were verified on 2026-09-17
        against `node--stats` (self link of the Adult Probation Caseload & Actions page). An unknown UUID returns
        HTTP 404 with a JSON:API error document.
      parameters:
      - $ref: '#/components/parameters/resourceId'
      - $ref: '#/components/parameters/include'
      - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: JSON:API individual document.
          content:
            application/vnd.api+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/IndividualDocument'
                - type: object
                  properties:
                    data:
                      $ref: '#/components/schemas/NodeExploration'
        '404':
          $ref: '#/components/responses/NotFound'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
  /node/data_story:
    get:
      operationId: listNodeDataStory
      summary: List node--data_story resources
      tags:
      - Content
      description: 'OpenJustice Data Stories — narrative statistical stories composed of chart paragraphs (`field_data_chart`),
        tabs and sections.


        Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 3 resource object(s) returned from
        https://data-openjustice.doj.ca.gov/jsonapi/node/data_story?page[limit]=3.'
      parameters:
      - $ref: '#/components/parameters/pageLimit'
      - $ref: '#/components/parameters/pageOffset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/filter'
      - $ref: '#/components/parameters/include'
      - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: JSON:API collection document.
          content:
            application/vnd.api+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/CollectionDocument'
                - type: object
                  properties:
                    data:
                      type: array
                      items:
                        $ref: '#/components/schemas/NodeDataStory'
        '400':
          $ref: '#/components/responses/BadRequest'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      x-probe:
        url: https://data-openjustice.doj.ca.gov/jsonapi/node/data_story?page[limit]=3
        http_status: 200
        content_type: application/vnd.api+json
        fetched: '2026-09-17'
        resources_returned: 3
  /node/data_story/{id}:
    get:
      operationId: getNodeDataStory
      summary: Get one node--data_story resource by UUID
      tags:
      - Content
      description: Returns a single `node--data_story` resource object. Individual reads were verified on 2026-09-17
        against `node--stats` (self link of the Adult Probation Caseload & Actions page). An unknown UUID returns
        HTTP 404 with a JSON:API error document.
      parameters:
      - $ref: '#/components/parameters/resourceId'
      - $ref: '#/components/parameters/include'
      - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: JSON:API individual document.
          content:
            application/vnd.api+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/IndividualDocument'
                - type: object
                  properties:
                    data:
                      $ref: '#/components/schemas/NodeDataStory'
        '404':
          $ref: '#/components/responses/NotFound'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
  /node/data_story_section:
    get:
      operationId: listNodeDataStorySection
      summary: List node--data_story_section resources
      tags:
      - Content
      description: 'Sections within a data story, related to the parent story, its year term and story type.


        Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 3 resource object(s) returned from
        https://data-openjustice.doj.ca.gov/jsonapi/node/data_story_section?page[limit]=3.'
      parameters:
      - $ref: '#/components/parameters/pageLimit'
      - $ref: '#/components/parameters/pageOffset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/filter'
      - $ref: '#/components/parameters/include'
      - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: JSON:API collection document.
          content:
            application/vnd.api+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/CollectionDocument'
                - type: object
                  properties:
                    data:
                      type: array
                      items:
                        $ref: '#/components/schemas/NodeDataStorySection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      x-probe:
        url: https://data-openjustice.doj.ca.gov/jsonapi/node/data_story_section?page[limit]=3
        http_status: 200
        content_type: application/vnd.api+json
        fetched: '2026-09-17'
        resources_returned: 3
  /node/data_story_section/{id}:
    get:
      operationId: getNodeDataStorySection
      summary: Get one node--data_story_section resource by UUID
      tags:
      - Content
      description: Returns a single `node--data_story_section` resource object. Individual reads were verified on
        2026-09-17 against `node--stats` (self link of the Adult Probation Caseload & Actions page). An unknown
        UUID returns HTTP 404 with a JSON:API error document.
      parameters:
      - $ref: '#/components/parameters/resourceId'
      - $ref: '#/components/parameters/include'
      - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: JSON:API individual document.
          content:
            application/vnd.api+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/IndividualDocument'
                - type: object
                  properties:
                    data:
                      $ref: '#/components/schemas/NodeDataStorySection'
        '404':
          $ref: '#/components/responses/NotFound'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
  /node/page:
    get:
      operationId: listNodePage
      summary: List node--page resources
      tags:
      - Content
      description: 'Basic content pages of the OpenJustice site.


        Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 3 resource object(s) returned from
        https://data-openjustice.doj.ca.gov/jsonapi/node/page?page[limit]=3.'
      parameters:
      - $ref: '#/components/parameters/pageLimit'
      - $ref: '#/components/parameters/pageOffset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/filter'
      - $ref: '#/components/parameters/include'
      - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: JSON:API collection document.
          content:
            application/vnd.api+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/CollectionDocument'
                - type: object
                  properties:
                    data:
                      type: array
                      items:
                        $ref: '#/components/schemas/NodePage'
        '400':
          $ref: '#/components/responses/BadRequest'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      x-probe:
        url: https://data-openjustice.doj.ca.gov/jsonapi/node/page?page[limit]=3
        http_status: 200
        content_type: application/vnd.api+json
        fetched: '2026-09-17'
        resources_returned: 3
  /node/page/{id}:
    get:
      operationId: getNodePage
      summary: Get one node--page resource by UUID
      tags:
      - Content
      description: Returns a single `node--page` resource object. Individual reads were verified on 2026-09-17 against
        `node--stats` (self link of the Adult Probation Caseload & Actions page). An unknown UUID returns HTTP 404
        with a JSON:API error document.
      parameters:
      - $ref: '#/components/parameters/resourceId'
      - $ref: '#/components/parameters/include'
      - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: JSON:API individual document.
          content:
            application/vnd.api+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/IndividualDocument'
                - type: object
                  properties:
                    data:
                      $ref: '#/components/schemas/NodePage'
        '404':
          $ref: '#/components/responses/NotFound'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
  /node/landing_page:
    get:
      operationId: listNodeLandingPage
      summary: List node--landing_page resources
      tags:
      - Content
      description: 'Section landing pages composed of section-block paragraphs.


        Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 2 resource object(s) returned from
        https://data-openjustice.doj.ca.gov/jsonapi/node/landing_page?page[limit]=3.'
      parameters:
      - $ref: '#/components/parameters/pageLimit'
      - $ref: '#/components/parameters/pageOffset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/filter'
      - $ref: '#/components/parameters/include'
      - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: JSON:API collection document.
          content:
            application/vnd.api+json:
              schema:
                allOf:
                - $ref: '#/components/schemas/CollectionDocument'
                - type: object
                  properties:
                    data:
                      type: array
                      items:
                        $ref: '#/components/schemas/NodeLandingPage'
        '400':
          $ref: '#/components/responses/BadRequest'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      x-probe:
        url: https://data-openjustice.doj.ca.gov/jsonapi/node/landing_page?page[limit]=3
        http_status: 200
        content_type: application/vnd.api+json
        fetched: '2026-09-17'
        resources_returned: 2
  /node/landing_page/{id}:
    get:
      operationId: getNodeLandingPage
      summary: Get one node--landing_page resource by UUID
      tags:
      - Content
      description: Returns a single `node--landing_page` resource object. Individual reads were verified on 2026-09-17
        against `node--stats` (self link of the Adult Probation Caseload & Actions page). An unknown UUID returns
        HTTP 404 with a JSON:API error document.
      p

# --- truncated at 32 KB (191 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/california-attorney-general/refs/heads/main/openapi/california-attorney-general-openjustice-jsonapi-openapi.yml