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. 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/NodeLandingPage' '404': $ref: '#/components/responses/NotFound' '503': $ref: '#/components/responses/ServiceUnavailable' /node/front_page: get: operationId: listNodeFrontPage summary: List node--front_page resources tags: - Content description: 'The OpenJustice front page composition. Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 1 resource object(s) returned from https://data-openjustice.doj.ca.gov/jsonapi/node/front_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/NodeFrontPage' '400': $ref: '#/components/responses/BadRequest' '503': $ref: '#/components/responses/ServiceUnavailable' x-probe: url: https://data-openjustice.doj.ca.gov/jsonapi/node/front_page?page[limit]=3 http_status: 200 content_type: application/vnd.api+json fetched: '2026-09-17' resources_returned: 1 /node/front_page/{id}: get: operationId: getNodeFrontPage summary: Get one node--front_page resource by UUID tags: - Content description: Returns a single `node--front_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/NodeFrontPage' '404': $ref: '#/components/responses/NotFound' '503': $ref: '#/components/responses/ServiceUnavailable' /file/file: get: operationId: listFileFile summary: List file--file resources tags: - Files description: 'File entities — the actual CSV, XLSX, ZIP and PDF distributions behind the datasets and publications. `uri.url` is a site-relative path under /sites/default/files/ that resolves to a direct download on https://data-openjustice.doj.ca.gov (verified: text/csv, 1,749,288 bytes for Adult_Probation_2003-2025_0.csv). Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 3 resource object(s) returned from https://data-openjustice.doj.ca.gov/jsonapi/file/file?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/FileFile' '400': $ref: '#/components/responses/BadRequest' '503': $ref: '#/components/responses/ServiceUnavailable' x-probe: url: https://data-openjustice.doj.ca.gov/jsonapi/file/file?page[limit]=3 http_status: 200 content_type: application/vnd.api+json fetched: '2026-09-17' resources_returned: 3 /file/file/{id}: get: operationId: getFileFile summary: Get one file--file resource by UUID tags: - Files description: Returns a single `file--file` 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/FileFile' '404': $ref: '#/components/responses/NotFound' '503': $ref: '#/components/responses/ServiceUnavailable' /paragraph/data_chart: get: operationId: listParagraphDataChart summary: List paragraph--data_chart resources tags: - Paragraphs description: 'Chart paragraphs used by data stories; `field_chart_file` points at the CSV a chart is drawn from. Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 3 resource object(s) returned from https://data-openjustice.doj.ca.gov/jsonapi/paragraph/data_chart?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/ParagraphDataChart' '400': $ref: '#/components/responses/BadRequest' '503': $ref: '#/components/responses/ServiceUnavailable' x-probe: url: https://data-openjustice.doj.ca.gov/jsonapi/paragraph/data_chart?page[limit]=3 http_status: 200 content_type: application/vnd.api+json fetched: '2026-09-17' resources_returned: 3 /paragraph/data_chart/{id}: get: operationId: getParagraphDataChart summary: Get one paragraph--data_chart resource by UUID tags: - Paragraphs description: Returns a single `paragraph--data_chart` 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/ParagraphDataChart' '404': $ref: '#/components/responses/NotFound' '503': $ref: '#/components/responses/ServiceUnavailable' /paragraph/data_tab: get: operationId: listParagraphDataTab summary: List paragraph--data_tab resources tags: - Paragraphs description: 'Tab paragraphs grouping charts inside a data story. Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 3 resource object(s) returned from https://data-openjustice.doj.ca.gov/jsonapi/paragraph/data_tab?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/ParagraphDataTab' '400': $ref: '#/components/responses/BadRequest' '503': $ref: '#/components/responses/ServiceUnavailable' x-probe: url: https://data-openjustice.doj.ca.gov/jsonapi/paragraph/data_tab?page[limit]=3 http_status: 200 content_type: application/vnd.api+json fetched: '2026-09-17' resources_returned: 3 /paragraph/data_tab/{id}: get: operationId: getParagraphDataTab summary: Get one paragraph--data_tab resource by UUID tags: - Paragraphs description: Returns a single `paragraph--data_tab` 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/ParagraphDataTab' '404': $ref: '#/components/responses/NotFound' '503': $ref: '#/components/responses/ServiceUnavailable' /paragraph/publication_report: get: operationId: listParagraphPublicationReport summary: List paragraph--publication_report resources tags: - Paragraphs description: 'One published report year of a publication, with `field_publication_year` and the PDF in `field_publication_file`. Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 3 resource object(s) returned from https://data-openjustice.doj.ca.gov/jsonapi/paragraph/publication_report?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/ParagraphPublicationReport' '400': $ref: '#/components/responses/BadRequest' '503': $ref: '#/components/responses/ServiceUnavailable' x-probe: url: https://data-openjustice.doj.ca.gov/jsonapi/paragraph/publication_report?page[limit]=3 http_status: 200 content_type: application/vnd.api+json fetched: '2026-09-17' resources_returned: 3 /paragraph/publication_report/{id}: get: operationId: getParagraphPublicationReport summary: Get one paragraph--publication_report resource by UUID tags: - Paragraphs description: Returns a single `paragraph--publication_report` 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/ParagraphPublicationReport' '404': $ref: '#/components/responses/NotFound' '503': $ref: '#/components/responses/ServiceUnavailable' /paragraph/section_block: get: operationId: listParagraphSectionBlock summary: List paragraph--section_block resources tags: - Paragraphs description: 'Landing-page section blocks. Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 2 resource object(s) returned from https://data-openjustice.doj.ca.gov/jsonapi/paragraph/section_block?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/ParagraphSectionBlock' '400': $ref: '#/components/responses/BadRequest' '503': $ref: '#/components/responses/ServiceUnavailable' x-probe: url: https://data-openjustice.doj.ca.gov/jsonapi/paragraph/section_block?page[limit]=3 http_status: 200 content_type: application/vnd.api+json fetched: '2026-09-17' resources_returned: 2 /paragraph/section_block/{id}: get: operationId: getParagraphSectionBlock summary: Get one paragraph--section_block resource by UUID tags: - Paragraphs description: Returns a single `paragraph--section_block` 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/ParagraphSectionBlock' '404': $ref: '#/components/responses/NotFound' '503': $ref: '#/components/responses/ServiceUnavailable' /paragraph/block_item: get: operationId: listParagraphBlockItem summary: List paragraph--block_item resources tags: - Paragraphs description: 'Individual items within a landing-page block. Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 3 resource object(s) returned from https://data-openjustice.doj.ca.gov/jsonapi/paragraph/block_item?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/ParagraphBlockItem' '400': $ref: '#/components/responses/BadRequest' '503': $ref: '#/components/responses/ServiceUnavailable' x-probe: url: https://data-openjustice.doj.ca.gov/jsonapi/paragraph/block_item?page[limit]=3 http_status: 200 content_type: application/vnd.api+json fetched: '2026-09-17' resources_returned: 3 /paragraph/block_item/{id}: get: operationId: getParagraphBlockItem summary: Get one paragraph--block_item resource by UUID tags: - Paragraphs description: Returns a single `paragraph--block_item` 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/ParagraphBlockItem' '404': $ref: '#/components/responses/NotFound' '503': $ref: '#/components/responses/ServiceUnavailable' /paragraph/blocks_quad: get: operationId: listParagraphBlocksQuad summary: List paragraph--blocks_quad resources tags: - Paragraphs description: 'Four-up block layout paragraphs. Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 1 resource object(s) returned from https://data-openjustice.doj.ca.gov/jsonapi/paragraph/blocks_quad?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/ParagraphBlocksQuad' '400': $ref: '#/components/responses/BadRequest' '503': $ref: '#/components/responses/ServiceUnavailable' x-probe: url: https://data-openjustice.doj.ca.gov/jsonapi/paragraph/blocks_quad?page[limit]=3 http_status: 200 content_type: application/vnd.api+json fetched: '2026-09-17' resources_returned: 1 /paragraph/blocks_quad/{id}: get: operationId: getParagraphBlocksQuad summary: Get one paragraph--blocks_quad resource by UUID tags: - Paragraphs description: Returns a single `paragraph--blocks_quad` 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/ParagraphBlocksQuad' '404': $ref: '#/components/responses/NotFound' '503': $ref: '#/components/responses/ServiceUnavailable' /paragraph/highlight_item: get: operationId: listParagraphHighlightItem summary: List paragraph--highlight_item resources tags: - Paragraphs description: 'Highlight items on landing pages. Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 3 resource object(s) returned from https://data-openjustice.doj.ca.gov/jsonapi/paragraph/highlight_item?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/ParagraphHighlightItem' '400': $ref: '#/components/responses/BadRequest' '503': $ref: '#/components/responses/ServiceUnavailable' x-probe: url: https://data-openjustice.doj.ca.gov/jsonapi/paragraph/highlight_item?page[limit]=3 http_status: 200 content_type: application/vnd.api+json fetched: '2026-09-17' resources_returned: 3 /paragraph/highlight_item/{id}: get: operationId: getParagraphHighlightItem summary: Get one paragraph--highlight_item resource by UUID tags: - Paragraphs description: Returns a single `paragraph--highlight_item` 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/ParagraphHighlightItem' '404': $ref: '#/components/responses/NotFound' '503': $ref: '#/components/responses/ServiceUnavailable' /paragraph/highlight_tri: get: operationId: listParagraphHighlightTri summary: List paragraph--highlight_tri resources tags: - Paragraphs description: 'Three-up highlight layout paragraphs. Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 1 resource object(s) returned from https://data-openjustice.doj.ca.gov/jsonapi/paragraph/highlight_tri?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/ParagraphHighlightTri' '400': $ref: '#/components/responses/BadRequest' '503': $ref: '#/components/responses/ServiceUnavailable' x-probe: url: https://data-openjustice.doj.ca.gov/jsonapi/paragraph/highlight_tri?page[limit]=3 http_status: 200 content_type: application/vnd.api+json fetched: '2026-09-17' resources_returned: 1 /paragraph/highlight_tri/{id}: get: operationId: getParagraphHighlightTri summary: Get one paragraph--highlight_tri resource by UUID tags: - Paragraphs description: Returns a single `paragraph--highlight_tri` 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/ParagraphHighlightTri' '404': $ref: '#/components/responses/NotFound' '503': $ref: '#/components/responses/ServiceUnavailable' /paragraph/intro_header: get: operationId: listParagraphIntroHeader summary: List paragraph--intro_header resources tags: - Paragraphs description: 'Intro header paragraphs. Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 1 resource object(s) returned from https://data-openjustice.doj.ca.gov/jsonapi/paragraph/intro_header?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/ParagraphIntroHeader' '400': $ref: '#/components/responses/BadRequest' '503': $ref: '#/components/responses/ServiceUnavailable' x-probe: url: https://data-openjustice.doj.ca.gov/jsonapi/paragraph/intro_header?page[limit]=3 http_status: 200 content_type: application/vnd.api+json fetched: '2026-09-17' resources_returned: 1 /paragraph/intro_header/{id}: get: operationId: getParagraphIntroHeader summary: Get one paragraph--intro_header resource by UUID tags: - Paragraphs description: Returns a single `paragraph--intro_header` 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/ParagraphIntroHeader' '404': $ref: '#/components/responses/NotFound' '503': $ref: '#/components/responses/ServiceUnavailable' /paragraph/link: get: operationId: listParagraphLink summary: List paragraph--link resources tags: - Paragraphs description: 'Link paragraphs. Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 3 resource object(s) returned from https://data-openjustice.doj.ca.gov/jsonapi/paragraph/link?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/ParagraphLink' '400': $ref: '#/components/responses/BadRequest' '503': $ref: '#/components/responses/ServiceUnavailable' x-probe: url: https://data-openjustice.doj.ca.gov/jsonapi/paragraph/link?page[limit]=3 http_status: 200 content_type: application/vnd.api+json fetched: '2026-09-17' resources_returned: 3 /paragraph/link/{id}: get: operationId: getParagraphLink summary: Get one paragraph--link resource by UUID tags: - Paragraphs description: Returns a single `paragraph--link` 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/ParagraphLink' '404': $ref: '#/components/responses/NotFound' '503': $ref: '#/components/responses/ServiceUnavailable' /taxonomy_term/data_type: get: operationId: listTaxonomyTermDataType summary: List taxonomy_term--data_type resources tags: - Taxonomies description: 'Data-type vocabulary used to classify datasets. Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 3 resource object(s) returned from https://data-openjustice.doj.ca.gov/jsonapi/taxonomy_term/data_type?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/TaxonomyTermDataType' '400': $ref: '#/components/responses/BadRequest' '503': $ref: '#/components/responses/ServiceUnavailable' x-probe: url: https://data-openjustice.doj.ca.gov/jsonapi/taxonomy_term/data_type?page[limit]=3 http_status: 200 content_type: application/vnd.api+json fetched: '2026-09-17' resources_returned: 3 /taxonomy_term/data_type/{id}: get: operationId: getTaxonomyTermDataType summary: Get one taxonomy_term--data_type resource by UUID tags: - Taxonomies description: Returns a single `taxonomy_term--data_type` 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/TaxonomyTermDataType' '404': $ref: '#/components/responses/NotFound' '503': $ref: '#/components/responses/ServiceUnavailable' /taxonomy_term/data_story_year: get: operationId: listTaxonomyTermDataStoryYear summary: List taxonomy_term--data_story_year resources tags: - Taxonomies description: 'Year vocabulary for data stories. Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 3 resource object(s) returned from https://data-openjustice.doj.ca.gov/jsonapi/taxonomy_term/data_story_year?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/TaxonomyTermDataStoryYear' '400': $ref: '#/components/responses/BadRequest' '503': $ref: '#/components/responses/ServiceUnavailable' x-probe: url: https://data-openjustice.doj.ca.gov/jsonapi/taxonomy_term/data_story_year?page[limit]=3 http_status: 200 content_type: application/vnd.api+json fetched: '2026-09-17' resources_returned: 3 /taxonomy_term/data_story_year/{id}: get: operationId: getTaxonomyTermDataStoryYear summary: Get one taxonomy_term--data_story_year resource by UUID tags: - Taxonomies description: Returns a single `taxonomy_term--data_story_year` 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/TaxonomyTermDataStoryYear' '404': $ref: '#/components/responses/NotFound' '503': $ref: '#/components/responses/ServiceUnavailable' /taxonomy_term/site_section: get: operationId: listTaxonomyTermSiteSection summary: List taxonomy_term--site_section resources tags: - Taxonomies description: 'Site-section vocabulary. Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 1 resource object(s) returned from https://data-openjustice.doj.ca.gov/jsonapi/taxonomy_term/site_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/TaxonomyTermSiteSection' '400': $ref: '#/components/responses/BadRequest' '503': $ref: '#/components/responses/ServiceUnavailable' x-probe: url: https://data-openjustice.doj.ca.gov/jsonapi/taxonomy_term/site_section?page[limit]=3 http_status: 200 content_type: application/vnd.api+json fetched: '2026-09-17' resources_returned: 1 /taxonomy_term/site_section/{id}: get: operationId: getTaxonomyTermSiteSection summary: Get one taxonomy_term--site_section resource by UUID tags: - Taxonomies description: Returns a single `taxonomy_term--site_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/TaxonomyTermSiteSection' '404': $ref: '#/components/responses/NotFound' '503': $ref: '#/components/responses/ServiceUnavailable' /taxonomy_term/story_type: get: operationId: listTaxonomyTermStoryType summary: List taxonomy_term--story_type resources tags: - Taxonomies description: 'Story-type vocabulary. Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 3 resource object(s) returned from https://data-openjustice.doj.ca.gov/jsonapi/taxonomy_term/story_type?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/TaxonomyTermStoryType' '400': $ref: '#/components/responses/BadRequest' '503': $ref: '#/components/responses/ServiceUnavailable' x-probe: url: https://data-openjustice.doj.ca.gov/jsonapi/taxonomy_term/story_type?page[limit]=3 http_status: 200 content_type: application/vnd.api+json fetched: '2026-09-17' resources_returned: 3 /taxonomy_term/story_type/{id}: get: operationId: getTaxonomyTermStoryType summary: Get one taxonomy_term--story_type resource by UUID tags: - Taxonomies description: Returns a single `taxonomy_term--story_type` 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/TaxonomyTermStoryType' '404': $ref: '#/components/responses/NotFound' '503': $ref: '#/components/responses/ServiceUnavailable' /node_type/node_type: get: operationId: listNodeTypeNodeType summary: List node_type--node_type resources tags: - Site Configuration description: 'The 13 content types of the site (config entity). 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_type/node_type?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/NodeTypeNodeType' '400': $ref: '#/components/responses/BadRequest' '503': $ref: '#/components/responses/ServiceUnavailable' x-probe: url: https://data-openjustice.doj.ca.gov/jsonapi/node_type/node_type?page[limit]=3 http_status: 200 content_type: application/vnd.api+json fetched: '2026-09-17' resources_returned: 3 /node_type/node_type/{id}: get: operationId: getNodeTypeNodeType summary: Get one node_type--node_type resource by UUID tags: - Site Configuration description: Returns a single `node_type--node_type` 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/NodeTypeNodeType' '404': $ref: '#/components/responses/NotFound' '503': $ref: '#/components/responses/ServiceUnavailable' /paragraphs_type/paragraphs_type: get: operationId: listParagraphsTypeParagraphsType summary: List paragraphs_type--paragraphs_type resources tags: - Site Configuration description: 'Paragraph types (config entity). Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 3 resource object(s) returned from https://data-openjustice.doj.ca.gov/jsonapi/paragraphs_type/paragraphs_type?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/ParagraphsTypeParagraphsType' '400': $ref: '#/components/responses/BadRequest' '503': $ref: '#/components/responses/ServiceUnavailable' x-probe: url: https://data-openjustice.doj.ca.gov/jsonapi/paragraphs_type/paragraphs_type?page[limit]=3 http_status: 200 content_type: application/vnd.api+json fetched: '2026-09-17' resources_returned: 3 /paragraphs_type/paragraphs_type/{id}: get: operationId: getParagraphsTypeParagraphsType summary: Get one paragraphs_type--paragraphs_type resource by UUID tags: - Site Configuration description: Returns a single `paragraphs_type--paragraphs_type` 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/ParagraphsTypeParagraphsType' '404': $ref: '#/components/responses/NotFound' '503': $ref: '#/components/responses/ServiceUnavailable' /menu/menu: get: operationId: listMenuMenu summary: List menu--menu resources tags: - Site Configuration description: 'Site menus (config entity). Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 3 resource object(s) returned from https://data-openjustice.doj.ca.gov/jsonapi/menu/menu?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/MenuMenu' '400': $ref: '#/components/responses/BadRequest' '503': $ref: '#/components/responses/ServiceUnavailable' x-probe: url: https://data-openjustice.doj.ca.gov/jsonapi/menu/menu?page[limit]=3 http_status: 200 content_type: application/vnd.api+json fetched: '2026-09-17' resources_returned: 3 /menu/menu/{id}: get: operationId: getMenuMenu summary: Get one menu--menu resource by UUID tags: - Site Configuration description: Returns a single `menu--menu` 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/MenuMenu' '404': $ref: '#/components/responses/NotFound' '503': $ref: '#/components/responses/ServiceUnavailable' /menu_link_content/menu_link_content: get: operationId: listMenuLinkContentMenuLinkContent summary: List menu_link_content--menu_link_content resources tags: - Site Configuration description: 'Menu link content items. Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 3 resource object(s) returned from https://data-openjustice.doj.ca.gov/jsonapi/menu_link_content/menu_link_content?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/MenuLinkContentMenuLinkContent' '400': $ref: '#/components/responses/BadRequest' '503': $ref: '#/components/responses/ServiceUnavailable' x-probe: url: https://data-openjustice.doj.ca.gov/jsonapi/menu_link_content/menu_link_content?page[limit]=3 http_status: 200 content_type: application/vnd.api+json fetched: '2026-09-17' resources_returned: 3 /menu_link_content/menu_link_content/{id}: get: operationId: getMenuLinkContentMenuLinkContent summary: Get one menu_link_content--menu_link_content resource by UUID tags: - Site Configuration description: Returns a single `menu_link_content--menu_link_content` 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/MenuLinkContentMenuLinkContent' '404': $ref: '#/components/responses/NotFound' '503': $ref: '#/components/responses/ServiceUnavailable' /contact_form/contact_form: get: operationId: listContactFormContactForm summary: List contact_form--contact_form resources tags: - Site Configuration description: 'Contact form configuration (config entity). Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 1 resource object(s) returned from https://data-openjustice.doj.ca.gov/jsonapi/contact_form/contact_form?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/ContactFormContactForm' '400': $ref: '#/components/responses/BadRequest' '503': $ref: '#/components/responses/ServiceUnavailable' x-probe: url: https://data-openjustice.doj.ca.gov/jsonapi/contact_form/contact_form?page[limit]=3 http_status: 200 content_type: application/vnd.api+json fetched: '2026-09-17' resources_returned: 1 /contact_form/contact_form/{id}: get: operationId: getContactFormContactForm summary: Get one contact_form--contact_form resource by UUID tags: - Site Configuration description: Returns a single `contact_form--contact_form` 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/ContactFormContactForm' '404': $ref: '#/components/responses/NotFound' '503': $ref: '#/components/responses/ServiceUnavailable' /date_format/date_format: get: operationId: listDateFormatDateFormat summary: List date_format--date_format resources tags: - Site Configuration description: 'Date format configuration (config entity). Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 3 resource object(s) returned from https://data-openjustice.doj.ca.gov/jsonapi/date_format/date_format?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/DateFormatDateFormat' '400': $ref: '#/components/responses/BadRequest' '503': $ref: '#/components/responses/ServiceUnavailable' x-probe: url: https://data-openjustice.doj.ca.gov/jsonapi/date_format/date_format?page[limit]=3 http_status: 200 content_type: application/vnd.api+json fetched: '2026-09-17' resources_returned: 3 /date_format/date_format/{id}: get: operationId: getDateFormatDateFormat summary: Get one date_format--date_format resource by UUID tags: - Site Configuration description: Returns a single `date_format--date_format` 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/DateFormatDateFormat' '404': $ref: '#/components/responses/NotFound' '503': $ref: '#/components/responses/ServiceUnavailable' /block/block: get: operationId: listBlockBlock summary: List block--block resources tags: - Site Configuration description: 'Theme block placements (config entity). Probed anonymously 2026-09-17: HTTP 200, `application/vnd.api+json`, 3 resource object(s) returned from https://data-openjustice.doj.ca.gov/jsonapi/block/block?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/BlockBlock' '400': $ref: '#/components/responses/BadRequest' '503': $ref: '#/components/responses/ServiceUnavailable' x-probe: url: https://data-openjustice.doj.ca.gov/jsonapi/block/block?page[limit]=3 http_status: 200 content_type: application/vnd.api+json fetched: '2026-09-17' resources_returned: 3 /block/block/{id}: get: operationId: getBlockBlock summary: Get one block--block resource by UUID tags: - Site Configuration description: Returns a single `block--block` 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/BlockBlock' '404': $ref: '#/components/responses/NotFound' '503': $ref: '#/components/responses/ServiceUnavailable' /node/signup: post: operationId: createNodeSignup summary: Submit a newsletter sign-up (email address) tags: - Feedback description: 'Anonymous create of a `node--signup` resource. This is the operation the OpenJustice site footer performs (its app bundle POSTs `/jsonapi/node/signup` with a `node--signup` payload whose `title` and `body.value` both carry the submitted text, `body.format` "plain_text"). Verified 2026-09-17: an anonymous POST with an EMPTY body returned HTTP 400 "Empty request body." rather than 401, i.e. anonymous access to this create route is granted (by contrast an empty anonymous POST to /node/dataset returns 401 "No authentication credentials provided."). No populated request was sent by API Evangelist — do not call this operation to test; it creates a record the DOJ staff will read. Anonymous GET on this collection returns an empty page with meta.omitted (submissions are not readable back).' requestBody: required: true content: application/vnd.api+json: schema: type: object required: - data properties: data: type: object required: - type - attributes properties: type: type: string const: node--signup attributes: type: object properties: title: type: string body: type: object properties: value: type: string format: type: string const: plain_text responses: '201': description: Created (the site code checks for statusText "Created"). Not exercised by API Evangelist. '400': $ref: '#/components/responses/BadRequest' '422': description: JSON:API validation error document (Drupal entity validation). content: application/vnd.api+json: schema: $ref: '#/components/schemas/ErrorDocument' x-probe: url: https://data-openjustice.doj.ca.gov/jsonapi/node/signup method: POST body: (empty) http_status: 400 detail: Empty request body. fetched: '2026-09-17' /node/suggestion: post: operationId: createNodeSuggestion summary: Submit a dataset suggestion tags: - Feedback description: 'Anonymous create of a `node--suggestion` resource. This is the operation the OpenJustice site footer performs (its app bundle POSTs `/jsonapi/node/suggestion` with a `node--suggestion` payload whose `title` and `body.value` both carry the submitted text, `body.format` "plain_text"). Verified 2026-09-17: an anonymous POST with an EMPTY body returned HTTP 400 "Empty request body." rather than 401, i.e. anonymous access to this create route is granted (by contrast an empty anonymous POST to /node/dataset returns 401 "No authentication credentials provided."). No populated request was sent by API Evangelist — do not call this operation to test; it creates a record the DOJ staff will read. Anonymous GET on this collection returns an empty page with meta.omitted (submissions are not readable back).' requestBody: required: true content: application/vnd.api+json: schema: type: object required: - data properties: data: type: object required: - type - attributes properties: type: type: string const: node--suggestion attributes: type: object properties: title: type: string body: type: object properties: value: type: string format: type: string const: plain_text responses: '201': description: Created (the site code checks for statusText "Created"). Not exercised by API Evangelist. '400': $ref: '#/components/responses/BadRequest' '422': description: JSON:API validation error document (Drupal entity validation). content: application/vnd.api+json: schema: $ref: '#/components/schemas/ErrorDocument' x-probe: url: https://data-openjustice.doj.ca.gov/jsonapi/node/suggestion method: POST body: (empty) http_status: 400 detail: Empty request body. fetched: '2026-09-17' /node/bug: post: operationId: createNodeBug summary: Submit a bug report tags: - Feedback description: 'Anonymous create of a `node--bug` resource. This is the operation the OpenJustice site footer performs (its app bundle POSTs `/jsonapi/node/bug` with a `node--bug` payload whose `title` and `body.value` both carry the submitted text, `body.format` "plain_text"). Verified 2026-09-17: an anonymous POST with an EMPTY body returned HTTP 400 "Empty request body." rather than 401, i.e. anonymous access to this create route is granted (by contrast an empty anonymous POST to /node/dataset returns 401 "No authentication credentials provided."). No populated request was sent by API Evangelist — do not call this operation to test; it creates a record the DOJ staff will read. Anonymous GET on this collection returns an empty page with meta.omitted (submissions are not readable back).' requestBody: required: true content: application/vnd.api+json: schema: type: object required: - data properties: data: type: object required: - type - attributes properties: type: type: string const: node--bug attributes: type: object properties: title: type: string body: type: object properties: value: type: string format: type: string const: plain_text responses: '201': description: Created (the site code checks for statusText "Created"). Not exercised by API Evangelist. '400': $ref: '#/components/responses/BadRequest' '422': description: JSON:API validation error document (Drupal entity validation). content: application/vnd.api+json: schema: $ref: '#/components/schemas/ErrorDocument' x-probe: url: https://data-openjustice.doj.ca.gov/jsonapi/node/bug method: POST body: (empty) http_status: 400 detail: Empty request body. fetched: '2026-09-17' components: schemas: NodeDatasetAttributes: type: object description: Attributes observed on live `node--dataset` resources (26 sampled on 2026-09-17). Names are the Drupal field machine names. properties: drupal_internal__nid: type: integer drupal_internal__vid: type: integer langcode: type: string revision_timestamp: type: string format: date-time revision_log: type: string nullable: true status: type: boolean title: type: string created: type: string format: date-time changed: type: string format: date-time promote: type: boolean sticky: type: boolean default_langcode: type: boolean revision_translation_affected: type: boolean moderation_state: type: string path: type: object properties: alias: type: string pid: type: integer langcode: type: string body: type: object properties: value: type: string format: type: string processed: type: string summary: type: string field_path: type: string NodeDatasetRelationships: type: object properties: node_type: type: object description: To-one relationship to node_type--node_type. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' revision_uid: type: object description: To-one relationship to user--user. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' uid: type: object description: To-one relationship to user--user. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' field_data_type: type: object description: To-one relationship to taxonomy_term--data_type. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' field_source: type: object description: To-many relationship to file--file. properties: data: type: array items: $ref: '#/components/schemas/ResourceIdentifier' links: $ref: '#/components/schemas/Links' NodeDataset: type: object 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. properties: type: type: string const: node--dataset id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/NodeDatasetAttributes' relationships: $ref: '#/components/schemas/NodeDatasetRelationships' NodeStatsAttributes: type: object description: Attributes observed on live `node--stats` resources (3 sampled on 2026-09-17). Names are the Drupal field machine names. properties: drupal_internal__nid: type: integer drupal_internal__vid: type: integer langcode: type: string revision_timestamp: type: string format: date-time revision_log: type: string status: type: boolean title: type: string created: type: string format: date-time changed: type: string format: date-time promote: type: boolean sticky: type: boolean default_langcode: type: boolean revision_translation_affected: type: boolean moderation_state: type: string path: type: object properties: alias: type: string pid: type: integer langcode: type: string body: type: object properties: value: type: string format: type: string processed: type: string summary: type: string field_data_query: type: string field_ext_link: type: string nullable: true field_path: type: string NodeStatsRelationships: type: object properties: node_type: type: object description: To-one relationship to node_type--node_type. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' revision_uid: type: object description: To-one relationship to user--user. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' uid: type: object description: To-one relationship to user--user. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' field_private_interactive_tables: type: object description: To-many relationship. properties: data: type: array items: $ref: '#/components/schemas/ResourceIdentifier' links: $ref: '#/components/schemas/Links' field_source: type: object description: To-many relationship to file--file. properties: data: type: array items: $ref: '#/components/schemas/ResourceIdentifier' links: $ref: '#/components/schemas/Links' NodeStats: type: object 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. properties: type: type: string const: node--stats id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/NodeStatsAttributes' relationships: $ref: '#/components/schemas/NodeStatsRelationships' NodePublicationAttributes: type: object description: Attributes observed on live `node--publication` resources (3 sampled on 2026-09-17). Names are the Drupal field machine names. properties: drupal_internal__nid: type: integer drupal_internal__vid: type: integer langcode: type: string revision_timestamp: type: string format: date-time revision_log: type: string nullable: true status: type: boolean title: type: string created: type: string format: date-time changed: type: string format: date-time promote: type: boolean sticky: type: boolean default_langcode: type: boolean revision_translation_affected: type: boolean moderation_state: type: string path: type: object properties: alias: type: string pid: type: integer langcode: type: string body: type: object properties: value: type: string format: type: string processed: type: string summary: type: string NodePublicationRelationships: type: object properties: node_type: type: object description: To-one relationship to node_type--node_type. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' revision_uid: type: object description: To-one relationship to user--user. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' uid: type: object description: To-one relationship to user--user. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' field_publication_reports: type: object description: To-many relationship to paragraph--publication_report. properties: data: type: array items: $ref: '#/components/schemas/ResourceIdentifier' links: $ref: '#/components/schemas/Links' field_pub_image: type: object description: To-one relationship to file--file. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' NodePublication: type: object 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`. properties: type: type: string const: node--publication id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/NodePublicationAttributes' relationships: $ref: '#/components/schemas/NodePublicationRelationships' NodeDocumentationAttributes: type: object description: Attributes observed on live `node--documentation` resources (2 sampled on 2026-09-17). Names are the Drupal field machine names. properties: drupal_internal__nid: type: integer drupal_internal__vid: type: integer langcode: type: string revision_timestamp: type: string format: date-time revision_log: type: string nullable: true status: type: boolean title: type: string created: type: string format: date-time changed: type: string format: date-time promote: type: boolean sticky: type: boolean default_langcode: type: boolean revision_translation_affected: type: boolean nullable: true moderation_state: type: string nullable: true path: type: object properties: alias: type: string pid: type: integer langcode: type: string body: type: object properties: value: type: string format: type: string processed: type: string summary: type: string NodeDocumentationRelationships: type: object properties: node_type: type: object description: To-one relationship to node_type--node_type. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' revision_uid: type: object description: To-one relationship to user--user. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' uid: type: object description: To-one relationship to user--user. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' NodeDocumentation: type: object description: Data documentation pages published alongside the datasets. properties: type: type: string const: node--documentation id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/NodeDocumentationAttributes' relationships: $ref: '#/components/schemas/NodeDocumentationRelationships' NodeExplorationAttributes: type: object description: Attributes observed on live `node--exploration` resources (3 sampled on 2026-09-17). Names are the Drupal field machine names. properties: drupal_internal__nid: type: integer drupal_internal__vid: type: integer langcode: type: string revision_timestamp: type: string format: date-time revision_log: type: string nullable: true status: type: boolean title: type: string created: type: string format: date-time changed: type: string format: date-time promote: type: boolean sticky: type: boolean default_langcode: type: boolean revision_translation_affected: type: string nullable: true moderation_state: type: string nullable: true path: type: object properties: alias: type: string pid: type: integer langcode: type: string body: type: object properties: value: type: string format: type: string processed: type: string summary: type: string NodeExplorationRelationships: type: object properties: node_type: type: object description: To-one relationship to node_type--node_type. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' revision_uid: type: object description: To-one relationship to user--user. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' uid: type: object description: To-one relationship to user--user. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' NodeExploration: type: object description: Landing pages for the Exploration section of OpenJustice. properties: type: type: string const: node--exploration id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/NodeExplorationAttributes' relationships: $ref: '#/components/schemas/NodeExplorationRelationships' NodeDataStoryAttributes: type: object description: Attributes observed on live `node--data_story` resources (3 sampled on 2026-09-17). Names are the Drupal field machine names. properties: drupal_internal__nid: type: integer drupal_internal__vid: type: integer langcode: type: string revision_timestamp: type: string format: date-time revision_log: type: string nullable: true status: type: boolean title: type: string created: type: string format: date-time changed: type: string format: date-time promote: type: boolean sticky: type: boolean default_langcode: type: boolean revision_translation_affected: type: boolean moderation_state: type: string path: type: object properties: alias: type: string pid: type: integer langcode: type: string body: type: object properties: value: type: string format: type: string processed: type: string summary: type: string field_chart_layout: type: string nullable: true field_data_subtitle: type: string field_focus_box: type: string nullable: true field_tabs: type: string nullable: true NodeDataStoryRelationships: type: object properties: node_type: type: object description: To-one relationship to node_type--node_type. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' revision_uid: type: object description: To-one relationship to user--user. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' uid: type: object description: To-one relationship to user--user. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' field_data_chart: type: object description: To-many relationship to paragraph--data_chart. properties: data: type: array items: $ref: '#/components/schemas/ResourceIdentifier' links: $ref: '#/components/schemas/Links' field_data_story_section: type: object description: To-many relationship to node--data_story_section. properties: data: type: array items: $ref: '#/components/schemas/ResourceIdentifier' links: $ref: '#/components/schemas/Links' field_story_type: type: object description: To-one relationship to taxonomy_term--story_type. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' field_tab: type: object description: To-many relationship. properties: data: type: array items: $ref: '#/components/schemas/ResourceIdentifier' links: $ref: '#/components/schemas/Links' NodeDataStory: type: object description: OpenJustice Data Stories — narrative statistical stories composed of chart paragraphs (`field_data_chart`), tabs and sections. properties: type: type: string const: node--data_story id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/NodeDataStoryAttributes' relationships: $ref: '#/components/schemas/NodeDataStoryRelationships' NodeDataStorySectionAttributes: type: object description: Attributes observed on live `node--data_story_section` resources (3 sampled on 2026-09-17). Names are the Drupal field machine names. properties: drupal_internal__nid: type: integer drupal_internal__vid: type: integer langcode: type: string revision_timestamp: type: string format: date-time revision_log: type: string nullable: true status: type: boolean title: type: string created: type: string format: date-time changed: type: string format: date-time promote: type: boolean sticky: type: boolean default_langcode: type: boolean revision_translation_affected: type: boolean moderation_state: type: string path: type: object properties: alias: type: string pid: type: integer langcode: type: string body: type: object properties: value: type: string format: type: string processed: type: string summary: type: string field_path: type: string field_short_title: type: string NodeDataStorySectionRelationships: type: object properties: node_type: type: object description: To-one relationship to node_type--node_type. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' revision_uid: type: object description: To-one relationship to user--user. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' uid: type: object description: To-one relationship to user--user. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' field_data_story: type: object description: To-many relationship to node--data_story. properties: data: type: array items: $ref: '#/components/schemas/ResourceIdentifier' links: $ref: '#/components/schemas/Links' field_data_story_year: type: object description: To-one relationship to taxonomy_term--data_story_year. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' field_story_type: type: object description: To-one relationship. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' NodeDataStorySection: type: object description: Sections within a data story, related to the parent story, its year term and story type. properties: type: type: string const: node--data_story_section id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/NodeDataStorySectionAttributes' relationships: $ref: '#/components/schemas/NodeDataStorySectionRelationships' NodePageAttributes: type: object description: Attributes observed on live `node--page` resources (3 sampled on 2026-09-17). Names are the Drupal field machine names. properties: drupal_internal__nid: type: integer drupal_internal__vid: type: integer langcode: type: string revision_timestamp: type: string format: date-time revision_log: type: string nullable: true status: type: boolean title: type: string created: type: string format: date-time changed: type: string format: date-time promote: type: boolean sticky: type: boolean default_langcode: type: boolean revision_translation_affected: type: boolean moderation_state: type: string path: type: object properties: alias: type: string pid: type: integer langcode: type: string body: type: object properties: value: type: string format: type: string processed: type: string summary: type: string field_display_sidebar: type: string nullable: true field_jumbotron: type: string nullable: true NodePageRelationships: type: object properties: node_type: type: object description: To-one relationship to node_type--node_type. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' revision_uid: type: object description: To-one relationship to user--user. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' uid: type: object description: To-one relationship to user--user. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' field_section: type: object description: To-one relationship to taxonomy_term--site_section. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' field_story_type: type: object description: To-one relationship to taxonomy_term--story_type. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' NodePage: type: object description: Basic content pages of the OpenJustice site. properties: type: type: string const: node--page id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/NodePageAttributes' relationships: $ref: '#/components/schemas/NodePageRelationships' NodeLandingPageAttributes: type: object description: Attributes observed on live `node--landing_page` resources (2 sampled on 2026-09-17). Names are the Drupal field machine names. properties: drupal_internal__nid: type: integer drupal_internal__vid: type: integer langcode: type: string revision_timestamp: type: string format: date-time revision_log: type: string nullable: true status: type: boolean title: type: string created: type: string format: date-time changed: type: string format: date-time promote: type: boolean sticky: type: boolean default_langcode: type: boolean revision_translation_affected: type: boolean nullable: true moderation_state: type: string nullable: true path: type: object properties: alias: type: string pid: type: integer langcode: type: string body: type: object properties: value: type: string format: type: string processed: type: string summary: type: string nullable: true NodeLandingPageRelationships: type: object properties: node_type: type: object description: To-one relationship to node_type--node_type. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' revision_uid: type: object description: To-one relationship to user--user. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' uid: type: object description: To-one relationship to user--user. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' field_banner: type: object description: To-one relationship to file--file. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' field_section_block: type: object description: To-many relationship to paragraph--section_block. properties: data: type: array items: $ref: '#/components/schemas/ResourceIdentifier' links: $ref: '#/components/schemas/Links' NodeLandingPage: type: object description: Section landing pages composed of section-block paragraphs. properties: type: type: string const: node--landing_page id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/NodeLandingPageAttributes' relationships: $ref: '#/components/schemas/NodeLandingPageRelationships' NodeFrontPageAttributes: type: object description: Attributes observed on live `node--front_page` resources (1 sampled on 2026-09-17). Names are the Drupal field machine names. properties: drupal_internal__nid: type: integer drupal_internal__vid: type: integer langcode: type: string revision_timestamp: type: string format: date-time revision_log: type: string nullable: true status: type: boolean title: type: string created: type: string format: date-time changed: type: string format: date-time promote: type: boolean sticky: type: boolean default_langcode: type: boolean revision_translation_affected: type: boolean moderation_state: type: string nullable: true path: type: object properties: alias: type: string pid: type: integer langcode: type: string NodeFrontPageRelationships: type: object properties: node_type: type: object description: To-one relationship to node_type--node_type. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' revision_uid: type: object description: To-one relationship to user--user. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' uid: type: object description: To-one relationship to user--user. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' field_paragraph: type: object description: To-many relationship to paragraph--blocks_quad, paragraph--highlight_tri, paragraph--intro_header. properties: data: type: array items: $ref: '#/components/schemas/ResourceIdentifier' links: $ref: '#/components/schemas/Links' NodeFrontPage: type: object description: The OpenJustice front page composition. properties: type: type: string const: node--front_page id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/NodeFrontPageAttributes' relationships: $ref: '#/components/schemas/NodeFrontPageRelationships' FileFileAttributes: type: object description: Attributes observed on live `file--file` resources (3 sampled on 2026-09-17). Names are the Drupal field machine names. properties: drupal_internal__fid: type: integer langcode: type: string filename: type: string uri: type: object properties: value: type: string description: Drupal stream URI, e.g. public://dataset/2026-07/file.csv url: type: string description: Site-relative download path under /sites/default/files/ filemime: type: string filesize: type: integer status: type: boolean created: type: string format: date-time changed: type: string format: date-time FileFileRelationships: type: object properties: uid: type: object description: To-one relationship to user--user. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' FileFile: type: object description: 'File entities — the actual CSV, XLSX, ZIP and PDF distributions behind the datasets and publications. `uri.url` is a site-relative path under /sites/default/files/ that resolves to a direct download on https://data-openjustice.doj.ca.gov (verified: text/csv, 1,749,288 bytes for Adult_Probation_2003-2025_0.csv).' properties: type: type: string const: file--file id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/FileFileAttributes' relationships: $ref: '#/components/schemas/FileFileRelationships' ParagraphDataChartAttributes: type: object description: Attributes observed on live `paragraph--data_chart` resources (3 sampled on 2026-09-17). Names are the Drupal field machine names. properties: drupal_internal__id: type: integer drupal_internal__revision_id: type: integer langcode: type: string status: type: boolean created: type: string format: date-time parent_id: type: string parent_type: type: string parent_field_name: type: string behavior_settings: type: array default_langcode: type: boolean revision_translation_affected: type: boolean field_chart_title: type: string nullable: true field_chart_type: type: string nullable: true field_custom_chart: type: string nullable: true field_custom_chart_js: type: string nullable: true field_custom_legend: type: string nullable: true field_focus_box: type: string nullable: true field_spline_marker: type: string nullable: true field_y_axis_label: type: string nullable: true ParagraphDataChartRelationships: type: object properties: paragraph_type: type: object description: To-one relationship to paragraphs_type--paragraphs_type. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' field_chart_file: type: object description: To-one relationship to file--file. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' ParagraphDataChart: type: object description: Chart paragraphs used by data stories; `field_chart_file` points at the CSV a chart is drawn from. properties: type: type: string const: paragraph--data_chart id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/ParagraphDataChartAttributes' relationships: $ref: '#/components/schemas/ParagraphDataChartRelationships' ParagraphDataTabAttributes: type: object description: Attributes observed on live `paragraph--data_tab` resources (3 sampled on 2026-09-17). Names are the Drupal field machine names. properties: drupal_internal__id: type: integer drupal_internal__revision_id: type: integer langcode: type: string status: type: boolean created: type: string format: date-time parent_id: type: string parent_type: type: string parent_field_name: type: string behavior_settings: type: array default_langcode: type: boolean revision_translation_affected: type: boolean field_tab_title: type: string nullable: true ParagraphDataTabRelationships: type: object properties: paragraph_type: type: object description: To-one relationship to paragraphs_type--paragraphs_type. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' field_data_chart: type: object description: To-many relationship to paragraph--data_chart. properties: data: type: array items: $ref: '#/components/schemas/ResourceIdentifier' links: $ref: '#/components/schemas/Links' ParagraphDataTab: type: object description: Tab paragraphs grouping charts inside a data story. properties: type: type: string const: paragraph--data_tab id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/ParagraphDataTabAttributes' relationships: $ref: '#/components/schemas/ParagraphDataTabRelationships' ParagraphPublicationReportAttributes: type: object description: Attributes observed on live `paragraph--publication_report` resources (3 sampled on 2026-09-17). Names are the Drupal field machine names. properties: drupal_internal__id: type: integer drupal_internal__revision_id: type: integer langcode: type: string status: type: boolean created: type: string format: date-time parent_id: type: string parent_type: type: string parent_field_name: type: string behavior_settings: type: array default_langcode: type: boolean revision_translation_affected: type: boolean nullable: true field_publication_year: type: string nullable: true ParagraphPublicationReportRelationships: type: object properties: paragraph_type: type: object description: To-one relationship to paragraphs_type--paragraphs_type. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' field_publication_file: type: object description: To-one relationship to file--file. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' ParagraphPublicationReport: type: object description: One published report year of a publication, with `field_publication_year` and the PDF in `field_publication_file`. properties: type: type: string const: paragraph--publication_report id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/ParagraphPublicationReportAttributes' relationships: $ref: '#/components/schemas/ParagraphPublicationReportRelationships' ParagraphSectionBlockAttributes: type: object description: Attributes observed on live `paragraph--section_block` resources (2 sampled on 2026-09-17). Names are the Drupal field machine names. properties: drupal_internal__id: type: integer drupal_internal__revision_id: type: integer langcode: type: string status: type: boolean created: type: string format: date-time parent_id: type: string parent_type: type: string parent_field_name: type: string behavior_settings: type: array default_langcode: type: boolean revision_translation_affected: type: boolean nullable: true field_description: type: object nullable: true field_section_link: type: object nullable: true field_subtitle: type: string nullable: true field_title: type: string nullable: true ParagraphSectionBlockRelationships: type: object properties: paragraph_type: type: object description: To-one relationship to paragraphs_type--paragraphs_type. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' field_link_block: type: object description: To-many relationship to paragraph--link. properties: data: type: array items: $ref: '#/components/schemas/ResourceIdentifier' links: $ref: '#/components/schemas/Links' ParagraphSectionBlock: type: object description: Landing-page section blocks. properties: type: type: string const: paragraph--section_block id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/ParagraphSectionBlockAttributes' relationships: $ref: '#/components/schemas/ParagraphSectionBlockRelationships' ParagraphBlockItemAttributes: type: object description: Attributes observed on live `paragraph--block_item` resources (3 sampled on 2026-09-17). Names are the Drupal field machine names. properties: drupal_internal__id: type: integer drupal_internal__revision_id: type: integer langcode: type: string status: type: boolean created: type: string format: date-time parent_id: type: string parent_type: type: string parent_field_name: type: string behavior_settings: type: array default_langcode: type: boolean revision_translation_affected: type: boolean field_description: type: object field_icon: type: string field_link: type: array field_title: type: string ParagraphBlockItemRelationships: type: object properties: paragraph_type: type: object description: To-one relationship to paragraphs_type--paragraphs_type. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' ParagraphBlockItem: type: object description: Individual items within a landing-page block. properties: type: type: string const: paragraph--block_item id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/ParagraphBlockItemAttributes' relationships: $ref: '#/components/schemas/ParagraphBlockItemRelationships' ParagraphBlocksQuadAttributes: type: object description: Attributes observed on live `paragraph--blocks_quad` resources (1 sampled on 2026-09-17). Names are the Drupal field machine names. properties: drupal_internal__id: type: integer drupal_internal__revision_id: type: integer langcode: type: string status: type: boolean created: type: string format: date-time parent_id: type: string parent_type: type: string parent_field_name: type: string behavior_settings: type: array default_langcode: type: boolean revision_translation_affected: type: boolean ParagraphBlocksQuadRelationships: type: object properties: paragraph_type: type: object description: To-one relationship to paragraphs_type--paragraphs_type. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' field_block: type: object description: To-many relationship to paragraph--block_item. properties: data: type: array items: $ref: '#/components/schemas/ResourceIdentifier' links: $ref: '#/components/schemas/Links' ParagraphBlocksQuad: type: object description: Four-up block layout paragraphs. properties: type: type: string const: paragraph--blocks_quad id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/ParagraphBlocksQuadAttributes' relationships: $ref: '#/components/schemas/ParagraphBlocksQuadRelationships' ParagraphHighlightItemAttributes: type: object description: Attributes observed on live `paragraph--highlight_item` resources (3 sampled on 2026-09-17). Names are the Drupal field machine names. properties: drupal_internal__id: type: integer drupal_internal__revision_id: type: integer langcode: type: string status: type: boolean created: type: string format: date-time parent_id: type: string parent_type: type: string parent_field_name: type: string behavior_settings: type: array default_langcode: type: boolean revision_translation_affected: type: boolean field_description: type: object field_link: type: array field_title: type: string ParagraphHighlightItemRelationships: type: object properties: paragraph_type: type: object description: To-one relationship to paragraphs_type--paragraphs_type. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' field_image: type: object description: To-one relationship to file--file. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' ParagraphHighlightItem: type: object description: Highlight items on landing pages. properties: type: type: string const: paragraph--highlight_item id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/ParagraphHighlightItemAttributes' relationships: $ref: '#/components/schemas/ParagraphHighlightItemRelationships' ParagraphHighlightTriAttributes: type: object description: Attributes observed on live `paragraph--highlight_tri` resources (1 sampled on 2026-09-17). Names are the Drupal field machine names. properties: drupal_internal__id: type: integer drupal_internal__revision_id: type: integer langcode: type: string status: type: boolean created: type: string format: date-time parent_id: type: string parent_type: type: string parent_field_name: type: string behavior_settings: type: array default_langcode: type: boolean revision_translation_affected: type: boolean ParagraphHighlightTriRelationships: type: object properties: paragraph_type: type: object description: To-one relationship to paragraphs_type--paragraphs_type. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' field_highlight: type: object description: To-many relationship to paragraph--highlight_item. properties: data: type: array items: $ref: '#/components/schemas/ResourceIdentifier' links: $ref: '#/components/schemas/Links' ParagraphHighlightTri: type: object description: Three-up highlight layout paragraphs. properties: type: type: string const: paragraph--highlight_tri id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/ParagraphHighlightTriAttributes' relationships: $ref: '#/components/schemas/ParagraphHighlightTriRelationships' ParagraphIntroHeaderAttributes: type: object description: Attributes observed on live `paragraph--intro_header` resources (1 sampled on 2026-09-17). Names are the Drupal field machine names. properties: drupal_internal__id: type: integer drupal_internal__revision_id: type: integer langcode: type: string status: type: boolean created: type: string format: date-time parent_id: type: string parent_type: type: string parent_field_name: type: string behavior_settings: type: array default_langcode: type: boolean revision_translation_affected: type: boolean field_description: type: object field_title: type: string ParagraphIntroHeaderRelationships: type: object properties: paragraph_type: type: object description: To-one relationship to paragraphs_type--paragraphs_type. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' field_image: type: object description: To-one relationship to file--file. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' ParagraphIntroHeader: type: object description: Intro header paragraphs. properties: type: type: string const: paragraph--intro_header id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/ParagraphIntroHeaderAttributes' relationships: $ref: '#/components/schemas/ParagraphIntroHeaderRelationships' ParagraphLinkAttributes: type: object description: Attributes observed on live `paragraph--link` resources (3 sampled on 2026-09-17). Names are the Drupal field machine names. properties: drupal_internal__id: type: integer drupal_internal__revision_id: type: integer langcode: type: string status: type: boolean created: type: string format: date-time parent_id: type: string parent_type: type: string parent_field_name: type: string behavior_settings: type: array default_langcode: type: boolean revision_translation_affected: type: boolean field_link: type: array field_title: type: string nullable: true ParagraphLinkRelationships: type: object properties: paragraph_type: type: object description: To-one relationship to paragraphs_type--paragraphs_type. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' ParagraphLink: type: object description: Link paragraphs. properties: type: type: string const: paragraph--link id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/ParagraphLinkAttributes' relationships: $ref: '#/components/schemas/ParagraphLinkRelationships' TaxonomyTermDataTypeAttributes: type: object description: Attributes observed on live `taxonomy_term--data_type` resources (3 sampled on 2026-09-17). Names are the Drupal field machine names. properties: drupal_internal__tid: type: integer drupal_internal__revision_id: type: integer langcode: type: string revision_created: type: string nullable: true revision_log_message: type: string nullable: true status: type: boolean name: type: string description: type: string nullable: true weight: type: integer changed: type: string format: date-time default_langcode: type: boolean revision_translation_affected: type: boolean path: type: object properties: alias: type: string pid: type: integer langcode: type: string TaxonomyTermDataTypeRelationships: type: object properties: vid: type: object description: To-one relationship to taxonomy_vocabulary--taxonomy_vocabulary. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' revision_user: type: object description: To-one relationship. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' parent: type: object description: To-many relationship to taxonomy_term--data_type. properties: data: type: array items: $ref: '#/components/schemas/ResourceIdentifier' links: $ref: '#/components/schemas/Links' TaxonomyTermDataType: type: object description: Data-type vocabulary used to classify datasets. properties: type: type: string const: taxonomy_term--data_type id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/TaxonomyTermDataTypeAttributes' relationships: $ref: '#/components/schemas/TaxonomyTermDataTypeRelationships' TaxonomyTermDataStoryYearAttributes: type: object description: Attributes observed on live `taxonomy_term--data_story_year` resources (3 sampled on 2026-09-17). Names are the Drupal field machine names. properties: drupal_internal__tid: type: integer drupal_internal__revision_id: type: integer langcode: type: string revision_created: type: string format: date-time nullable: true revision_log_message: type: string nullable: true status: type: boolean name: type: string description: type: string nullable: true weight: type: integer changed: type: string format: date-time default_langcode: type: boolean revision_translation_affected: type: boolean path: type: object properties: alias: type: string pid: type: integer langcode: type: string TaxonomyTermDataStoryYearRelationships: type: object properties: vid: type: object description: To-one relationship to taxonomy_vocabulary--taxonomy_vocabulary. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' revision_user: type: object description: To-one relationship. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' parent: type: object description: To-many relationship to taxonomy_term--data_story_year. properties: data: type: array items: $ref: '#/components/schemas/ResourceIdentifier' links: $ref: '#/components/schemas/Links' TaxonomyTermDataStoryYear: type: object description: Year vocabulary for data stories. properties: type: type: string const: taxonomy_term--data_story_year id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/TaxonomyTermDataStoryYearAttributes' relationships: $ref: '#/components/schemas/TaxonomyTermDataStoryYearRelationships' TaxonomyTermSiteSectionAttributes: type: object description: Attributes observed on live `taxonomy_term--site_section` resources (1 sampled on 2026-09-17). Names are the Drupal field machine names. properties: drupal_internal__tid: type: integer drupal_internal__revision_id: type: integer langcode: type: string revision_created: type: string nullable: true revision_log_message: type: string nullable: true status: type: boolean name: type: string description: type: string nullable: true weight: type: integer changed: type: string format: date-time default_langcode: type: boolean revision_translation_affected: type: boolean path: type: object properties: alias: type: string pid: type: integer langcode: type: string TaxonomyTermSiteSectionRelationships: type: object properties: vid: type: object description: To-one relationship to taxonomy_vocabulary--taxonomy_vocabulary. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' revision_user: type: object description: To-one relationship. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' parent: type: object description: To-many relationship to taxonomy_term--site_section. properties: data: type: array items: $ref: '#/components/schemas/ResourceIdentifier' links: $ref: '#/components/schemas/Links' TaxonomyTermSiteSection: type: object description: Site-section vocabulary. properties: type: type: string const: taxonomy_term--site_section id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/TaxonomyTermSiteSectionAttributes' relationships: $ref: '#/components/schemas/TaxonomyTermSiteSectionRelationships' TaxonomyTermStoryTypeAttributes: type: object description: Attributes observed on live `taxonomy_term--story_type` resources (3 sampled on 2026-09-17). Names are the Drupal field machine names. properties: drupal_internal__tid: type: integer drupal_internal__revision_id: type: integer langcode: type: string revision_created: type: string nullable: true revision_log_message: type: string nullable: true status: type: boolean name: type: string description: type: string nullable: true weight: type: integer changed: type: string format: date-time default_langcode: type: boolean revision_translation_affected: type: boolean path: type: object properties: alias: type: string pid: type: integer langcode: type: string TaxonomyTermStoryTypeRelationships: type: object properties: vid: type: object description: To-one relationship to taxonomy_vocabulary--taxonomy_vocabulary. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' revision_user: type: object description: To-one relationship. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' parent: type: object description: To-many relationship to taxonomy_term--story_type. properties: data: type: array items: $ref: '#/components/schemas/ResourceIdentifier' links: $ref: '#/components/schemas/Links' TaxonomyTermStoryType: type: object description: Story-type vocabulary. properties: type: type: string const: taxonomy_term--story_type id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/TaxonomyTermStoryTypeAttributes' relationships: $ref: '#/components/schemas/TaxonomyTermStoryTypeRelationships' NodeTypeNodeTypeAttributes: type: object description: Attributes observed on live `node_type--node_type` resources (3 sampled on 2026-09-17). Names are the Drupal field machine names. properties: langcode: type: string status: type: boolean dependencies: type: object third_party_settings: type: object name: type: string drupal_internal__type: type: string description: type: string help: type: string new_revision: type: boolean preview_mode: type: integer display_submitted: type: boolean NodeTypeNodeTypeRelationships: type: object properties: {} NodeTypeNodeType: type: object description: The 13 content types of the site (config entity). properties: type: type: string const: node_type--node_type id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/NodeTypeNodeTypeAttributes' relationships: $ref: '#/components/schemas/NodeTypeNodeTypeRelationships' ParagraphsTypeParagraphsTypeAttributes: type: object description: Attributes observed on live `paragraphs_type--paragraphs_type` resources (3 sampled on 2026-09-17). Names are the Drupal field machine names. properties: label: type: string ParagraphsTypeParagraphsTypeRelationships: type: object properties: {} ParagraphsTypeParagraphsType: type: object description: Paragraph types (config entity). properties: type: type: string const: paragraphs_type--paragraphs_type id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/ParagraphsTypeParagraphsTypeAttributes' relationships: $ref: '#/components/schemas/ParagraphsTypeParagraphsTypeRelationships' MenuMenuAttributes: type: object description: Attributes observed on live `menu--menu` resources (3 sampled on 2026-09-17). Names are the Drupal field machine names. properties: langcode: type: string status: type: boolean dependencies: type: array drupal_internal__id: type: string label: type: string description: type: string locked: type: boolean MenuMenuRelationships: type: object properties: {} MenuMenu: type: object description: Site menus (config entity). properties: type: type: string const: menu--menu id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/MenuMenuAttributes' relationships: $ref: '#/components/schemas/MenuMenuRelationships' MenuLinkContentMenuLinkContentAttributes: type: object description: Attributes observed on live `menu_link_content--menu_link_content` resources (3 sampled on 2026-09-17). Names are the Drupal field machine names. properties: drupal_internal__id: type: integer drupal_internal__revision_id: type: integer langcode: type: string bundle: type: string revision_created: type: string nullable: true revision_log_message: type: string nullable: true enabled: type: boolean title: type: string description: type: string nullable: true menu_name: type: string link: type: object external: type: boolean rediscover: type: boolean weight: type: integer expanded: type: boolean parent: type: string nullable: true changed: type: string format: date-time default_langcode: type: boolean revision_translation_affected: type: boolean MenuLinkContentMenuLinkContentRelationships: type: object properties: revision_user: type: object description: To-one relationship. properties: data: oneOf: - $ref: '#/components/schemas/ResourceIdentifier' - type: 'null' links: $ref: '#/components/schemas/Links' MenuLinkContentMenuLinkContent: type: object description: Menu link content items. properties: type: type: string const: menu_link_content--menu_link_content id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/MenuLinkContentMenuLinkContentAttributes' relationships: $ref: '#/components/schemas/MenuLinkContentMenuLinkContentRelationships' ContactFormContactFormAttributes: type: object description: Attributes observed on live `contact_form--contact_form` resources (1 sampled on 2026-09-17). Names are the Drupal field machine names. properties: langcode: type: string status: type: boolean dependencies: type: array drupal_internal__id: type: string label: type: string recipients: type: array reply: type: string weight: type: integer message: type: string redirect: type: string ContactFormContactFormRelationships: type: object properties: {} ContactFormContactForm: type: object description: Contact form configuration (config entity). properties: type: type: string const: contact_form--contact_form id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/ContactFormContactFormAttributes' relationships: $ref: '#/components/schemas/ContactFormContactFormRelationships' DateFormatDateFormatAttributes: type: object description: Attributes observed on live `date_format--date_format` resources (3 sampled on 2026-09-17). Names are the Drupal field machine names. properties: label: type: string DateFormatDateFormatRelationships: type: object properties: {} DateFormatDateFormat: type: object description: Date format configuration (config entity). properties: type: type: string const: date_format--date_format id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/DateFormatDateFormatAttributes' relationships: $ref: '#/components/schemas/DateFormatDateFormatRelationships' BlockBlockAttributes: type: object description: Attributes observed on live `block--block` resources (3 sampled on 2026-09-17). Names are the Drupal field machine names. properties: langcode: type: string status: type: boolean dependencies: type: object drupal_internal__id: type: string theme: type: string region: type: string weight: type: integer provider: type: string nullable: true plugin: type: string settings: type: object visibility: type: array BlockBlockRelationships: type: object properties: {} BlockBlock: type: object description: Theme block placements (config entity). properties: type: type: string const: block--block id: type: string format: uuid links: $ref: '#/components/schemas/Links' attributes: $ref: '#/components/schemas/BlockBlockAttributes' relationships: $ref: '#/components/schemas/BlockBlockRelationships' Links: type: object additionalProperties: oneOf: - type: string format: uri - type: object properties: href: type: string format: uri meta: type: object JsonApiObject: type: object properties: version: type: string const: '1.0' meta: type: object ResourceIdentifier: type: object required: - type - id properties: type: type: string description: entity--bundle id: type: string format: uuid meta: type: object properties: drupal_internal__target_id: oneOf: - type: integer - type: string ResourceObject: type: object required: - type - id properties: type: type: string id: type: string format: uuid attributes: type: object relationships: type: object links: $ref: '#/components/schemas/Links' IndexDocument: type: object properties: jsonapi: $ref: '#/components/schemas/JsonApiObject' data: type: array items: {} description: Empty array on the index. links: type: object description: One entry per resource type, keyed `entity--bundle`, plus `self`. additionalProperties: type: object properties: href: type: string format: uri CollectionDocument: type: object properties: jsonapi: $ref: '#/components/schemas/JsonApiObject' data: type: array items: $ref: '#/components/schemas/ResourceObject' included: type: array items: $ref: '#/components/schemas/ResourceObject' description: Present when ?include= names relationships. meta: type: object properties: omitted: type: object description: Present when Drupal withheld resources the anonymous caller may not view; carries a detail message and per-item links. links: type: object properties: self: $ref: '#/components/schemas/Links' next: $ref: '#/components/schemas/Links' prev: $ref: '#/components/schemas/Links' IndividualDocument: type: object properties: jsonapi: $ref: '#/components/schemas/JsonApiObject' data: $ref: '#/components/schemas/ResourceObject' included: type: array items: $ref: '#/components/schemas/ResourceObject' links: $ref: '#/components/schemas/Links' ErrorDocument: type: object required: - errors properties: jsonapi: $ref: '#/components/schemas/JsonApiObject' errors: type: array items: $ref: '#/components/schemas/ErrorObject' ErrorObject: type: object properties: title: type: string examples: - Bad Request - Not Found - Unauthorized - Method Not Allowed status: type: string description: HTTP status as a STRING, per JSON:API 1.0. examples: - '400' - '404' - '401' detail: type: string links: type: object properties: via: type: object properties: href: type: string format: uri info: type: object properties: href: type: string format: uri source: type: object properties: pointer: type: string parameter: type: string parameters: resourceId: name: id in: path required: true schema: type: string format: uuid description: Resource UUID (the JSON:API `id`, not `drupal_internal__nid`). pageLimit: name: page[limit] in: query schema: type: integer minimum: 1 maximum: 50 default: 50 description: 'Page size. Drupal caps the page at 50 and silently clamps larger values — verified 2026-09-17: `?page[limit]=100` on node/data_story returned 50 items and a `links.next` offset of 50.' pageOffset: name: page[offset] in: query schema: type: integer minimum: 0 default: 0 description: Zero-based offset. Follow `links.next` rather than computing offsets. sort: name: sort in: query schema: type: string description: Comma-separated attribute names; prefix with `-` for descending (JSON:API 1.0). Verified with `sort=title`. example: title filter: name: filter in: query style: deepObject explode: true schema: type: object additionalProperties: true description: 'Drupal JSON:API filter family: `filter[]=value` for equality, or `filter[][operator]=CONTAINS&filter[][value]=...` for other operators (=, <>, >, >=, <, <=, STARTS_WITH, CONTAINS, ENDS_WITH, IN, NOT IN, IS NULL, IS NOT NULL, BETWEEN). Verified 2026-09-17: `filter[title][operator]=CONTAINS&filter[title][value]=Arrest` on node/dataset returned 3 datasets; an unknown field returns HTTP 400 "Invalid nested filtering."' example: filter[title][operator]=CONTAINS&filter[title][value]=Arrest include: name: include in: query schema: type: string description: 'Comma-separated relationship paths to side-load into `included` (JSON:API compound documents). Verified 2026-09-17: `include=field_source,field_data_type` on node/dataset side-loaded 148 file--file distributions across the 26 datasets.' example: field_source,field_data_type fields: name: fields in: query style: deepObject explode: true schema: type: object additionalProperties: type: string description: 'Sparse fieldsets keyed by resource type: `fields[file--file]=uri,filesize,filemime,filename`. Verified.' example: fields[file--file]=uri,filesize,filemime,filename responses: BadRequest: description: Malformed query (unknown filter field, bad sort, empty request body). JSON:API error document. content: application/vnd.api+json: schema: $ref: '#/components/schemas/ErrorDocument' example: jsonapi: version: '1.0' meta: links: self: href: http://jsonapi.org/format/1.0/ errors: - title: Bad Request status: '400' detail: Invalid nested filtering. The field `nonexistent_field`, given in the path `nonexistent_field`, does not exist. links: via: href: https://data-openjustice.doj.ca.gov/jsonapi/node/dataset?filter%5Bnonexistent_field%5D=x info: href: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1 NotFound: description: No resource with that UUID. JSON:API error document. content: application/vnd.api+json: schema: $ref: '#/components/schemas/ErrorDocument' example: jsonapi: version: '1.0' meta: links: self: href: http://jsonapi.org/format/1.0/ errors: - title: Not Found status: '404' detail: 'The "entity" parameter was not converted for the path "/jsonapi/node/dataset/{entity}" (route name: "jsonapi.node--dataset.individual")' links: via: href: https://data-openjustice.doj.ca.gov/jsonapi/node/dataset/00000000-0000-0000-0000-000000000000 info: href: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5 Unauthorized: description: Write attempted without credentials on a route that requires them. content: application/vnd.api+json: schema: $ref: '#/components/schemas/ErrorDocument' example: jsonapi: version: '1.0' meta: links: self: href: http://jsonapi.org/format/1.0/ errors: - title: Unauthorized status: '401' detail: No authentication credentials provided. links: via: href: https://data-openjustice.doj.ca.gov/jsonapi/node/dataset info: href: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2 ServiceUnavailable: description: Not observed during the probe; listed because the site runs behind an F5 load balancer (persistence cookie `oag.ca.gov`) that answers on behalf of an unavailable origin.