Drupal JSON:API

The Drupal JSON:API module is a core component that exposes all Drupal entity types and bundles as a standards-compliant JSON:API interface, requiring no configuration to enable. Each entity bundle receives a unique URL path following the pattern /jsonapi/{entity_type}/{bundle}, and the module supports GET, POST, PATCH, and DELETE operations for full CRUD access.

OpenAPI Specification

drupal-jsonapi-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Drupal JSON:API
  description: >-
    The Drupal JSON:API module is a core component that exposes all Drupal entity
    types and bundles as a standards-compliant JSON:API interface, requiring no
    configuration to enable. Each entity bundle receives a unique URL path following
    the pattern /jsonapi/{entity_type}/{bundle}, and the module supports GET, POST,
    PATCH, and DELETE operations for full CRUD access. It supports filtering, sorting,
    pagination, sparse fieldsets, includes for relationship resolution, translations,
    revisions, and file uploads out of the box. All resource identifiers use entity
    UUIDs rather than numeric IDs. The JSON:API module is the recommended approach
    for most decoupled and headless Drupal applications due to its adherence to the
    open JSON:API specification (jsonapi.org) and its compatibility with the broader
    JSON:API client ecosystem.
  version: '1.1'
  contact:
    name: Drupal Community
    url: https://www.drupal.org/community
  termsOfService: https://www.drupal.org/about/legal
externalDocs:
  description: Drupal JSON:API Module Documentation
  url: https://www.drupal.org/docs/core-modules-and-themes/core-modules/jsonapi-module/api-overview
servers:
  - url: https://example.com/jsonapi
    description: Drupal JSON:API Base (replace with your Drupal installation base URL)
tags:
  - name: Files
    description: >-
      JSON:API endpoints for file entities and file upload operations.
  - name: Node Articles
    description: >-
      JSON:API endpoints for article content nodes. The bundle slug varies by
      Drupal installation; article is shown as an example bundle name.
  - name: Node Pages
    description: >-
      JSON:API endpoints for basic page content nodes. The bundle slug varies
      by Drupal installation.
  - name: Taxonomy Terms
    description: >-
      JSON:API endpoints for taxonomy term entities across all configured
      vocabularies.
  - name: Users
    description: >-
      JSON:API endpoints for Drupal user entities. Config entities are read-only
      via JSON:API and require authentication.
security:
  - basicAuth: []
  - oAuth2:
      - content
paths:
  /node/article:
    get:
      operationId: listNodeArticles
      summary: List article nodes
      description: >-
        Retrieves a collection of article content nodes. Supports filtering by
        any field using the filter query parameter, ascending and descending
        sorting via sort, cursor-based pagination via page[limit] and page[offset],
        sparse fieldsets via fields[node--article], and relationship resolution
        via include. Published nodes are accessible to anonymous users; unpublished
        nodes require authentication and appropriate permissions.
      tags:
        - Node Articles
      parameters:
        - $ref: '#/components/parameters/JsonApiAccept'
        - $ref: '#/components/parameters/FilterPath'
        - $ref: '#/components/parameters/FilterValue'
        - $ref: '#/components/parameters/FilterOperator'
        - $ref: '#/components/parameters/SortParam'
        - $ref: '#/components/parameters/PageLimit'
        - $ref: '#/components/parameters/PageOffset'
        - $ref: '#/components/parameters/IncludeParam'
        - $ref: '#/components/parameters/FieldsParam'
      responses:
        '200':
          description: Collection of article nodes returned successfully.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/NodeArticleCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
    post:
      operationId: createNodeArticle
      summary: Create an article node
      description: >-
        Creates a new article content node. The request body must be a JSON:API
        resource object with type set to node--article and the desired attributes
        and relationships. Entity reference fields must be expressed as relationship
        objects, not plain attributes. Requires authentication and create article
        content permission.
      tags:
        - Node Articles
      parameters:
        - $ref: '#/components/parameters/JsonApiContentType'
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/NodeArticleCreateRequest'
      responses:
        '201':
          description: Article node created successfully.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/NodeArticleResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
  /node/article/{uuid}:
    get:
      operationId: getNodeArticle
      summary: Get an article node
      description: >-
        Retrieves a single article content node by its UUID. Supports sparse
        fieldsets via fields[node--article] and relationship resolution via
        include. Note that JSON:API always uses UUID as the identifier, not the
        numeric node ID.
      tags:
        - Node Articles
      parameters:
        - $ref: '#/components/parameters/EntityUuid'
        - $ref: '#/components/parameters/JsonApiAccept'
        - $ref: '#/components/parameters/IncludeParam'
        - $ref: '#/components/parameters/FieldsParam'
      responses:
        '200':
          description: Article node returned successfully.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/NodeArticleResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      operationId: updateNodeArticle
      summary: Update an article node
      description: >-
        Updates an existing article content node by its UUID. Only the attributes
        and relationships included in the request body are modified; omitted fields
        retain their current values. Requires authentication and edit permissions
        for the article content type.
      tags:
        - Node Articles
      parameters:
        - $ref: '#/components/parameters/EntityUuid'
        - $ref: '#/components/parameters/JsonApiContentType'
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/NodeArticleUpdateRequest'
      responses:
        '200':
          description: Article node updated successfully.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/NodeArticleResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteNodeArticle
      summary: Delete an article node
      description: >-
        Permanently deletes an article content node by its UUID. Requires
        authentication and delete permissions for the article content type.
        This operation cannot be undone.
      tags:
        - Node Articles
      parameters:
        - $ref: '#/components/parameters/EntityUuid'
      responses:
        '204':
          description: Article node deleted successfully. No content returned.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /node/page:
    get:
      operationId: listNodePages
      summary: List basic page nodes
      description: >-
        Retrieves a collection of basic page content nodes. Supports the same
        query parameters as other JSON:API collection endpoints including filter,
        sort, page, include, and fields.
      tags:
        - Node Pages
      parameters:
        - $ref: '#/components/parameters/JsonApiAccept'
        - $ref: '#/components/parameters/FilterPath'
        - $ref: '#/components/parameters/FilterValue'
        - $ref: '#/components/parameters/SortParam'
        - $ref: '#/components/parameters/PageLimit'
        - $ref: '#/components/parameters/PageOffset'
        - $ref: '#/components/parameters/IncludeParam'
        - $ref: '#/components/parameters/FieldsParam'
      responses:
        '200':
          description: Collection of basic page nodes returned successfully.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/JsonApiCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
  /node/page/{uuid}:
    get:
      operationId: getNodePage
      summary: Get a basic page node
      description: >-
        Retrieves a single basic page content node by its UUID. Supports sparse
        fieldsets and relationship includes.
      tags:
        - Node Pages
      parameters:
        - $ref: '#/components/parameters/EntityUuid'
        - $ref: '#/components/parameters/JsonApiAccept'
        - $ref: '#/components/parameters/IncludeParam'
        - $ref: '#/components/parameters/FieldsParam'
      responses:
        '200':
          description: Basic page node returned successfully.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/JsonApiSingleResponse'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /user/user:
    get:
      operationId: listUsers
      summary: List users
      description: >-
        Retrieves a collection of user entities. Requires authentication and
        administer users permission to access. Supports filtering, sorting,
        pagination, sparse fieldsets, and includes.
      tags:
        - Users
      parameters:
        - $ref: '#/components/parameters/JsonApiAccept'
        - $ref: '#/components/parameters/FilterPath'
        - $ref: '#/components/parameters/FilterValue'
        - $ref: '#/components/parameters/SortParam'
        - $ref: '#/components/parameters/PageLimit'
        - $ref: '#/components/parameters/PageOffset'
        - $ref: '#/components/parameters/IncludeParam'
        - $ref: '#/components/parameters/FieldsParam'
      responses:
        '200':
          description: Collection of user entities returned successfully.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/JsonApiCollection'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /user/user/{uuid}:
    get:
      operationId: getUser
      summary: Get a user
      description: >-
        Retrieves a single user entity by UUID. Users can read their own profile;
        administrators can read any user. Sensitive fields like email may be
        restricted to authenticated users with appropriate permissions.
      tags:
        - Users
      parameters:
        - $ref: '#/components/parameters/EntityUuid'
        - $ref: '#/components/parameters/JsonApiAccept'
        - $ref: '#/components/parameters/IncludeParam'
        - $ref: '#/components/parameters/FieldsParam'
      responses:
        '200':
          description: User entity returned successfully.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/JsonApiSingleResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      operationId: updateUser
      summary: Update a user
      description: >-
        Updates an existing user entity by UUID. Users can update their own
        profiles; administrators can update any user account. Requires
        authentication.
      tags:
        - Users
      parameters:
        - $ref: '#/components/parameters/EntityUuid'
        - $ref: '#/components/parameters/JsonApiContentType'
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/JsonApiUpdateRequest'
      responses:
        '200':
          description: User updated successfully.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/JsonApiSingleResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /taxonomy_term/{vocabulary}:
    get:
      operationId: listTaxonomyTerms
      summary: List taxonomy terms by vocabulary
      description: >-
        Retrieves a collection of taxonomy terms for a specific vocabulary bundle.
        Replace {vocabulary} with the machine name of the vocabulary (e.g., tags,
        categories). Supports filtering, sorting, pagination, and includes.
      tags:
        - Taxonomy Terms
      parameters:
        - $ref: '#/components/parameters/VocabularyBundle'
        - $ref: '#/components/parameters/JsonApiAccept'
        - $ref: '#/components/parameters/FilterPath'
        - $ref: '#/components/parameters/FilterValue'
        - $ref: '#/components/parameters/SortParam'
        - $ref: '#/components/parameters/PageLimit'
        - $ref: '#/components/parameters/PageOffset'
        - $ref: '#/components/parameters/IncludeParam'
        - $ref: '#/components/parameters/FieldsParam'
      responses:
        '200':
          description: Collection of taxonomy terms returned successfully.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/JsonApiCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /taxonomy_term/{vocabulary}/{uuid}:
    get:
      operationId: getTaxonomyTerm
      summary: Get a taxonomy term
      description: >-
        Retrieves a single taxonomy term by vocabulary bundle and UUID. Returns
        the term's name, description, weight, and any configured relationships
        such as parent terms.
      tags:
        - Taxonomy Terms
      parameters:
        - $ref: '#/components/parameters/VocabularyBundle'
        - $ref: '#/components/parameters/EntityUuid'
        - $ref: '#/components/parameters/JsonApiAccept'
        - $ref: '#/components/parameters/IncludeParam'
        - $ref: '#/components/parameters/FieldsParam'
      responses:
        '200':
          description: Taxonomy term returned successfully.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/JsonApiSingleResponse'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /file/file:
    get:
      operationId: listFiles
      summary: List file entities
      description: >-
        Retrieves a collection of file entities. Returns file metadata including
        filename, MIME type, size, and URI. Requires authentication with
        appropriate file access permissions.
      tags:
        - Files
      parameters:
        - $ref: '#/components/parameters/JsonApiAccept'
        - $ref: '#/components/parameters/FilterPath'
        - $ref: '#/components/parameters/FilterValue'
        - $ref: '#/components/parameters/SortParam'
        - $ref: '#/components/parameters/PageLimit'
        - $ref: '#/components/parameters/PageOffset'
        - $ref: '#/components/parameters/FieldsParam'
      responses:
        '200':
          description: Collection of file entities returned successfully.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/JsonApiCollection'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /file/file/{uuid}:
    get:
      operationId: getFile
      summary: Get a file entity
      description: >-
        Retrieves a single file entity by UUID. Returns file metadata. The file
        binary is accessible via the URI field returned in the response.
      tags:
        - Files
      parameters:
        - $ref: '#/components/parameters/EntityUuid'
        - $ref: '#/components/parameters/JsonApiAccept'
        - $ref: '#/components/parameters/FieldsParam'
      responses:
        '200':
          description: File entity returned successfully.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/JsonApiSingleResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteFile
      summary: Delete a file entity
      description: >-
        Permanently deletes a file entity and its associated file from storage
        by UUID. Requires file management permissions and authentication.
      tags:
        - Files
      parameters:
        - $ref: '#/components/parameters/EntityUuid'
      responses:
        '204':
          description: File entity deleted successfully. No content returned.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: HTTP Basic Authentication using Drupal username and password.
    cookieAuth:
      type: apiKey
      in: cookie
      name: SESS
      description: >-
        Cookie-based session authentication obtained via Drupal login.
    oAuth2:
      type: oauth2
      description: OAuth 2.0 via the Simple OAuth module.
      flows:
        authorizationCode:
          authorizationUrl: https://example.com/oauth/authorize
          tokenUrl: https://example.com/oauth/token
          scopes:
            content: Access and manage content entities
            user: Access and manage user entities
  parameters:
    EntityUuid:
      name: uuid
      in: path
      required: true
      description: >-
        The UUID of the entity. JSON:API always uses UUID as the identifier,
        not the numeric entity ID.
      schema:
        type: string
        format: uuid
        example: 550e8400-e29b-41d4-a716-446655440000
    VocabularyBundle:
      name: vocabulary
      in: path
      required: true
      description: >-
        The machine name of the taxonomy vocabulary bundle (e.g., tags,
        categories, topics).
      schema:
        type: string
        example: tags
    JsonApiAccept:
      name: Accept
      in: header
      required: false
      description: >-
        The JSON:API media type. Include this header to receive a properly
        formatted JSON:API response.
      schema:
        type: string
        default: application/vnd.api+json
    JsonApiContentType:
      name: Content-Type
      in: header
      required: true
      description: Must be application/vnd.api+json for all JSON:API write requests.
      schema:
        type: string
        default: application/vnd.api+json
    FilterPath:
      name: filter[name][path]
      in: query
      required: false
      description: >-
        The dotted field path to filter on, e.g. title, status, uid.name, or
        field_tags.name for nested relationship fields.
      schema:
        type: string
        example: status
    FilterValue:
      name: filter[name][value]
      in: query
      required: false
      description: The value to filter against.
      schema:
        type: string
        example: '1'
    FilterOperator:
      name: filter[name][operator]
      in: query
      required: false
      description: >-
        The comparison operator for the filter condition. Supported operators:
        =, <>, >, >=, <, <=, STARTS_WITH, CONTAINS, ENDS_WITH, IN, NOT IN,
        BETWEEN, NOT BETWEEN, IS NULL, IS NOT NULL.
      schema:
        type: string
        enum:
          - '='
          - '<>'
          - '>'
          - '>='
          - '<'
          - '<='
          - STARTS_WITH
          - CONTAINS
          - ENDS_WITH
          - IN
          - NOT IN
          - BETWEEN
          - NOT BETWEEN
          - IS NULL
          - IS NOT NULL
        default: '='
    SortParam:
      name: sort
      in: query
      required: false
      description: >-
        Sort the results by the given field. Prefix with - for descending order.
        For example, sort=title for ascending by title or sort=-created for
        descending by creation date.
      schema:
        type: string
        example: '-created'
    PageLimit:
      name: page[limit]
      in: query
      required: false
      description: >-
        The maximum number of resources to return in a single page. Used for
        cursor-based pagination.
      schema:
        type: integer
        minimum: 1
        maximum: 50
        default: 50
    PageOffset:
      name: page[offset]
      in: query
      required: false
      description: >-
        The number of resources to skip before beginning to return results.
        Used in combination with page[limit] for pagination.
      schema:
        type: integer
        minimum: 0
        default: 0
    IncludeParam:
      name: include
      in: query
      required: false
      description: >-
        A comma-separated list of relationship paths to include in the response.
        For example, include=uid resolves the author relationship, and
        include=field_tags includes related taxonomy terms inline.
      schema:
        type: string
        example: uid,field_tags
    FieldsParam:
      name: fields[node--article]
      in: query
      required: false
      description: >-
        Sparse fieldset parameter to limit which attributes are returned, reducing
        response payload size. Replace node--article with the relevant resource
        type. Value is a comma-separated list of field names.
      schema:
        type: string
        example: title,body,created
  responses:
    BadRequest:
      description: The request body or query parameters are invalid.
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/JsonApiErrorResponse'
    Unauthorized:
      description: Authentication is required to access this resource.
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/JsonApiErrorResponse'
    Forbidden:
      description: The authenticated user lacks permission to perform this operation.
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/JsonApiErrorResponse'
    NotFound:
      description: The requested resource does not exist or is inaccessible.
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/JsonApiErrorResponse'
    UnprocessableEntity:
      description: >-
        The request body is syntactically valid but semantically unprocessable,
        such as failing field validation.
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/JsonApiErrorResponse'
  schemas:
    JsonApiResourceObject:
      type: object
      description: A JSON:API resource object representing a single Drupal entity.
      required:
        - type
        - id
      properties:
        type:
          type: string
          description: >-
            The JSON:API resource type in the format {entity_type}--{bundle},
            e.g. node--article, taxonomy_term--tags.
          example: node--article
        id:
          type: string
          format: uuid
          description: The UUID of the resource.
        attributes:
          type: object
          description: >-
            The resource's field values excluding entity references. Keys are
            field machine names.
        relationships:
          type: object
          description: >-
            The resource's entity reference fields expressed as relationship
            objects with data containing type and id.
        links:
          $ref: '#/components/schemas/JsonApiLinks'
    JsonApiLinks:
      type: object
      description: Navigation links included in JSON:API responses.
      properties:
        self:
          type: object
          description: Link to the current resource or collection.
          properties:
            href:
              type: string
              format: uri
              description: The URL of the current resource.
        related:
          type: object
          description: Link to a related resource.
          properties:
            href:
              type: string
              format: uri
              description: The URL of the related resource.
    JsonApiCollectionLinks:
      type: object
      description: Pagination links for collection responses.
      properties:
        self:
          type: object
          properties:
            href:
              type: string
              format: uri
              description: Link to the current page.
        first:
          type: object
          properties:
            href:
              type: string
              format: uri
              description: Link to the first page of results.
        prev:
          type: object
          properties:
            href:
              type: string
              format: uri
              description: Link to the previous page of results.
        next:
          type: object
          properties:
            href:
              type: string
              format: uri
              description: Link to the next page of results.
        last:
          type: object
          properties:
            href:
              type: string
              format: uri
              description: Link to the last page of results.
    JsonApiCollection:
      type: object
      description: A JSON:API collection response containing multiple resource objects.
      properties:
        jsonapi:
          type: object
          description: JSON:API version metadata.
          properties:
            version:
              type: string
              description: The JSON:API specification version.
              example: '1.0'
        data:
          type: array
          description: Array of resource objects.
          items:
            $ref: '#/components/schemas/JsonApiResourceObject'
        included:
          type: array
          description: Array of included related resources when using the include parameter.
          items:
            $ref: '#/components/schemas/JsonApiResourceObject'
        links:
          $ref: '#/components/schemas/JsonApiCollectionLinks'
        meta:
          type: object
          description: >-
            Non-standard meta-information about the response, such as total
            result count.
          properties:
            count:
              type: integer
              description: Total number of matching resources across all pages.
    JsonApiSingleResponse:
      type: object
      description: A JSON:API response containing a single resource object.
      properties:
        jsonapi:
          type: object
          description: JSON:API version metadata.
          properties:
            version:
              type: string
              description: The JSON:API specification version.
              example: '1.0'
        data:
          $ref: '#/components/schemas/JsonApiResourceObject'
        included:
          type: array
          description: Array of included related resources when using the include parameter.
          items:
            $ref: '#/components/schemas/JsonApiResourceObject'
        links:
          $ref: '#/components/schemas/JsonApiLinks'
    NodeArticleAttributes:
      type: object
      description: Attributes for a Drupal article node resource object.
      properties:
        drupal_internal__nid:
          type: integer
          description: The internal numeric node ID (not used as the primary identifier).
        drupal_internal__vid:
          type: integer
          description: The internal numeric revision ID.
        langcode:
          type: string
          description: The language code for this node (e.g., en).
        status:
          type: boolean
          description: Whether the node is published (true) or unpublished (false).
        title:
          type: string
          description: The title of the article node.
        created:
          type: string
          format: date-time
          description: ISO 8601 timestamp of when the node was created.
        changed:
          type: string
          format: date-time
          description: ISO 8601 timestamp of when the node was last modified.
        promote:
          type: boolean
          description: Whether the node is promoted to the front page.
        sticky:
          type: boolean
          description: Whether the node is sticky at the top of lists.
        body:
          type: object
          description: The main body field of the article.
          properties:
            value:
              type: string
              description: The full body text, may contain HTML markup.
            summary:
              type: string
              description: Optional trimmed summary of the body text.
            format:
              type: string
              description: The text format machine name applied to the body.
            processed:
              type: string
              description: The body text after applying the text format processing.
        path:
          type: object
          description: The URL alias configuration for this node.
          properties:
            alias:
              type: string
              description: The URL alias path, e.g. /my-article-title.
            pid:
              type: integer
              description: The path ID.
            langcode:
              type: string
              description: The language code for this path alias.
    NodeArticleResponse:
      type: object
      description: A JSON:API response for a single article node.
      properties:
        jsonapi:
          type: object
          properties:
            version:
              type: string
              example: '1.0'
        data:
          type: object
          description: The article node resource object.
          properties:
            type:
              type: string
              example: node--article
            id:
              type: string
              format: uuid
            attributes:
              $ref: '#/components/schemas/NodeArticleAttributes'
            relationships:
              type: object
              description: Entity reference relationships for the article node.
              properties:
                node_type:
                  type: object
                  description: Reference to the node type configuration entity.
                  properties:
                    data:
                      $ref: '#/components/schemas/JsonApiRelationshipData'
                uid:
                  type: object
                  description: Reference to the authoring user entity.
                  properties:
                    data:
                      $ref: '#/components/schemas/JsonApiRelationshipData'
                field_tags:
                  type: object
                  description: References to taxonomy term entities for tagging.
 

# --- truncated at 32 KB (38 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/drupal/refs/heads/main/openapi/drupal-jsonapi-openapi.yml