Skip to main content
Drupal is a registered trademark of Dries Buytaert
Release: Entity Usage 5.0.0 Major update available for module entity_usage (5.0.0). Release: Entity Usage 8.x-2.3 Minor update available for module entity_usage (8.x-2.3). Release: Modeler API 1.1.7 Minor update available for module modeler_api (1.1.7). Release: Excel Serialization 2.2.0 Minor update available for module xls_serialization (2.2.0). Release: Custom Field 4.0.12 Minor update available for module custom_field (4.0.12). Release: Custom Field 5.0.3 Minor update available for module custom_field (5.0.3). Release: GraphQL Compose 2.4.2 Minor update available for module graphql_compose (2.4.2). Release: Freja eID for Drupal 1.0.1 Minor update available for module freja_eid (1.0.1). Module Revived: Two-factor Authentication (TFA) 8.x-1.13 Module tfa updated after 10 months of inactivity (8.x-1.13). Usage Milestone: Easy Email Module easy_email crossed 10,000 active installs.

OpenAPI Explorer

No security coverage Drupal 9–11 PHP >=7.3

Part of the Openapi ecosystem · 4 projects

View on drupal.org

Generates an OpenAPI 3 specification for the HTTP routes your Drupal site exposes, and renders it as browsable documentation with an interactive request tester.

The model is built from three sources, in order of authority:

  1. Route discovery — the router and the REST resource plugins
    provide the paths, HTTP methods, authentication providers and owning module.
  2. Reflection — the class and method behind each route give the
    {token} path parameters and a best-effort scan for the query
    keys the code reads.
  3. Docblock annotations — everything that cannot be inferred
    from the code: summaries, parameter types, request and response schemas,
    examples.

Each operation is reported as annotated, partial or
none, so a team can see at a glance how much of its API is actually
described.

Requirements

This module requires no other modules. It uses only Drupal core services and
the Symfony components core already ships.

These modules are optional. When present, the module reads their real
configuration instead of assuming anything:

  • REST (core) — to document routes served by REST resource
    plugins.
  • Basic Auth (core) — adds the basic_auth security scheme.
  • Key auth adds the key_auth scheme, using the header name that module
    is configured with.
  • Simple OAuth adds the oauth2 scheme, using that module's real token
    endpoint.
  • JWT adds the jwt_auth scheme. Its jwt_auth_issuer submodule also gives the tester a token
    endpoint to fetch from.

Installation

Install as you would any contributed Drupal module. See Installing modules for further information.

Configuration

Visit Configuration › Web services › API documentation to browse the documentation, and its Settings tab to control
what is documented.

  • Which modules to scan — either pick whole extension sources (custom, contributed, profile, core) or tick individual modules.
  • Path prefixes — one per line, for example /api. Only routes under one of these prefixes are documented.
    Leave the list empty to document every route on the site,
    which combined with selecting every source gives a complete picture of the
    APIs a site exposes.
  • Include REST resources / Include administrative routes — administrative pages are excluded by default, being rarely part of an API.
  • Maximum number of endpoints — discovery stops once this
    many endpoints have been found, which keeps the page responsive on a
    site-wide scan. Set it to 0 for no limit.
  • Docblock tag prefix — see below.
  • JWT header name — the header a JSON Web Token is sent in,
    used by the tester and written into the specification. This cannot be
    detected, so it is configured: leave it as Authorization
    unless your site reads another header.
  • Drupal's JWT module accepts JWT-Authorization as well, and some sites patch it to require that one.
  • Specification metadata — the title, version, description
    and server URLs written into the generated specification. An empty title
    uses the site name.
  • Interactive tester — turn off to render documentation only.

Depends on

Dependencies of the latest stable release

No dependencies recorded for this project.

Required by

Tracked projects that depend on this one

No tracked projects depend on this one yet.

Activity

Tracked releases
2
Tracked since
Sep 2026
Latest release
3 hours ago
Releases (12 mo)
2 ▲ from 0
Maintenance
Active

Releases

Version Type Core Release date
1.0.0 Stable 9–11 Sep 16, 2026
1.0.x-dev Dev 9–11 Sep 16, 2026