JSON:API
This documentation needs work. See "Help improve this page" in the sidebar.
The JSON:API module is a fully compliant implementation of the JSON:API Specification.
In its own words, the JSON:API specification is:
[A] specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests.
JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability.
Drupal's datastructures, i.e. entity types, bundles, and fields, are incredibly well suited to the JSON:API.
By enabling the JSON:API module, you immediately gain a full REST API for every type in your Drupal application. JSON:API inspects your entity types and bundles so that it can dynamically provide URLs by which to access each and every one of them using the standard HTTP methods, GET, POST, PATCH, and DELETE.
JSON:API takes the philosophy that the module should be production-ready "out of the box". This means the module is highly opinionated about where your resources will reside, what methods are immediately available on them, and leaves access control to Drupal Core's permissions system. At this time, there are no available configuration pages. This means that you can get up and running with an API-driven Drupal application with minimal effort.
The child pages of this documentation page will include:
- Core concepts of the JSON:API specification - and how they apply to Drupal
- A broad overview of the API that the module makes available.
- Practical information about how to craft your HTTP requests.
- How to authenticate your requests.
- Common "gotchas."
- Specific documentation for:
- Fetching individual resources (GET)
- Fetching collections of resources (GET with filters, pagination, and sorting)
- Creating new resources (POST)
- Updating existing resources (PATCH)
- Removing existing resources (DELETE)
If you have specific questions, please create a support request in the JSON:API module's issue queue.
Help improve this page
You can:
- Log in, click Edit, and edit this page
- Log in, click Discuss, update the Page status value, and suggest an improvement
- Log in and create a Documentation issue with your suggestion
Still on Drupal 7? Security support for Drupal 7 ended on 5 January 2025. Please visit our Drupal 7 End of Life resources page to review all of your options.