Drupal is a registered trademark of Dries Buytaert
drupal 11.3.7 Update released for Drupal core (11.3.7)! drupal 11.2.11 Update released for Drupal core (11.2.11)! drupal 10.6.7 Update released for Drupal core (10.6.7)! drupal 10.5.9 Update released for Drupal core (10.5.9)! cms 2.1.1 Update released for Drupal core (2.1.1)! drupal 11.3.6 Update released for Drupal core (11.3.6)! drupal 10.6.6 Update released for Drupal core (10.6.6)! cms 2.1.0 Update released for Drupal core (2.1.0)! bootstrap 8.x-3.40 Minor update available for theme bootstrap (8.x-3.40). menu_link_attributes 8.x-1.7 Minor update available for module menu_link_attributes (8.x-1.7). eca 3.1.1 Minor update available for module eca (3.1.1). layout_paragraphs 2.1.3 Minor update available for module layout_paragraphs (2.1.3). ai 1.3.3 Minor update available for module ai (1.3.3). ai 1.2.14 Minor update available for module ai (1.2.14). node_revision_delete 2.0.3 Minor update available for module node_revision_delete (2.0.3). moderated_content_bulk_publish 2.0.52 Minor update available for module moderated_content_bulk_publish (2.0.52). klaro 3.0.10 Minor update available for module klaro (3.0.10). klaro 3.0.9 Minor update available for module klaro (3.0.9). layout_paragraphs 2.1.2 Minor update available for module layout_paragraphs (2.1.2). geofield_map 11.1.8 Minor update available for module geofield_map (11.1.8).

jsonapi_frontend_menu

2 sites No security coverage
View on drupal.org

JSON:API Frontend Menu is an optional add-on for jsonapi_frontend">jsonapi_frontend that exposes a ready-to-render menu tree for decoupled frontends.

Features

  • Menu tree JSON endpoint: nested children structure (no client-side tree building required).
  • Role-aware filtering: only returns links the current Drupal user can access (no “leaky” menu items).
  • Active trail (optional): pass path to mark active and in_active_trail.
  • Hybrid routing hints (optional): per-link resolve output compatible with /jsonapi/resolve
    (includes headless, jsonapi_url/data_url, or drupal_url).
  • Cache-safe defaults: anonymous responses can be cached; authenticated responses are no-store.

Post-Installation

Install and enable the module, then call the endpoint from your frontend:

composer require drupal/jsonapi_frontend_menu
drush en jsonapi_frontend_menu

Examples:

GET /jsonapi/menu/main?_format=json
GET /jsonapi/menu/main?path=/about-us&_format=json

Optional query parameters:

  • path: compute active trail flags for the current page.
  • langcode: forwarded to the resolver for alias/language resolution.
  • min_depth / max_depth: limit returned depth.
  • parent: return a subtree under a specific parent plugin id.
  • resolve=0: skip per-link resolver decoration for maximum performance/caching.

Additional Requirements

Similar projects

  • jsonapi_menu_items: exposes menu links via JSON:API Resources. This module focuses on a turnkey frontend contract: nested tree + optional active trail + optional /jsonapi/resolve style routing hints.

Supporting this Module

Please file issues and patches in the project issue queue. Contributions and co-maintainers are welcome.

Community Documentation

  • jsonapi_frontend project page and documentation
  • Migration guide: see the MIGRATION.md in the project repository

Activity

Total releases
3
First release
Jan 2026
Latest release
3 months ago
Release cadence
1 day
Stability
100% stable

Release Timeline

Releases

Version Type Release date
1.0.3 Stable Jan 4, 2026
1.0.2 Stable Jan 2, 2026
1.0.1 Stable Jan 2, 2026