Title: REST API blocks
Author: Jonny Harris
Published: <strong>August 11, 2021</strong>
Last modified: January 3, 2026

---

Search plugins

![](https://ps.w.org/rest-api-blocks/assets/banner-772x250.png?rev=2581604)

![](https://ps.w.org/rest-api-blocks/assets/icon-256x256.png?rev=2581604)

# REST API blocks

 By [Jonny Harris](https://profiles.wordpress.org/spacedmonkey/)

[Download](https://downloads.wordpress.org/plugin/rest-api-blocks.2.0.0.zip)

 * [Details](https://scn.wordpress.org/plugins/rest-api-blocks/#description)
 * [Reviews](https://scn.wordpress.org/plugins/rest-api-blocks/#reviews)
 *  [Installation](https://scn.wordpress.org/plugins/rest-api-blocks/#installation)
 * [Development](https://scn.wordpress.org/plugins/rest-api-blocks/#developers)

 [Support](https://wordpress.org/support/plugin/rest-api-blocks/)

## Description

A simple plugin to add block data in json format into the rest api. Once installed,
there will be two new fields added to the rest api, `has_blocks` and `blocks`.
 
For example output. `"has_blocks": true, "block_data": [ { "blockName": "core/image","
attrs": { "url": "https://www.spacedmonkey.com/wp-content/uploads/2018/12/test-image.
jpg", "alt": "Terminal de aeropuerto", "caption": "fsfsdfdsfdssfd", "href": "https://
www.spacedmonkey.com/test-image", "rel": "noreferrer noopener", "linkClass": "jonny-
123", "linkTarget": "_blank", "id": 147355, "width": 582, "height": 327, "linkDestination":"
attachment" }, "innerBlocks": [ ], "innerHTML": "\n<figure class=\"wp-block-image
is-resized\"><a class=\"jonny-123\" href=\"https://www.spacedmonkey.com/test-image\"
target=\"_blank\" rel=\"noreferrer noopener\"><img src=\"https://www.spacedmonkey.
com/wp-content/uploads/2018/12/test-image.jpg\" alt=\"Terminal de aeropuerto\" class
=\"wp-image-147355\" width=\"582\" height=\"327\"/></a><figcaption>fsfsdfdsfdssfd
</figcaption></figure>\n", "innerContent": [ "\n<figure class=\"wp-block-image is-
resized\"><a class=\"jonny-123\" href=\"https://www.spacedmonkey.com/test-image\"
target=\"_blank\" rel=\"noreferrer noopener\"><img src=\"https://www.spacedmonkey.
com/wp-content/uploads/2018/12/test-image.jpg\" alt=\"Terminal de aeropuerto\" class
=\"wp-image-147355\" width=\"582\" height=\"327\"/></a><figcaption>fsfsdfdsfdssfd
</figcaption></figure>\n" ], "rendered": "\n<figure class=\"wp-block-image is-resized\"
><a class=\"jonny-123\" href=\"https://www.spacedmonkey.com/test-image\" target=\"
_blank\" rel=\"noreferrer noopener\"><img src=\"https://www.spacedmonkey.com/wp-
content/uploads/2018/12/test-image.jpg\" alt=\"Terminal de aeropuerto\" class=\"
wp-image-147355\" width=\"582\" height=\"327\"/></a><figcaption>fsfsdfdsfdssfd</
figcaption></figure>\n" } ],

### Technical Notes

 * Requires PHP 5.6+.
 * Requires WordPress 5.5+.
 * Issues and Pull requests welcome on the GitHub repository: https://github.com/
   spacedmonkey/wp-rest-blocks

### Development

This plugin uses `@wordpress/env` for local development and testing.

### Prerequisites

 * Node.js 20+ and npm
 * Docker Desktop (must be installed and running)

### Setup

 1. Clone the repository
 2. Install dependencies:
     `bash npm install composer install
 3. Start the WordPress environment:
     `bash npm run env:start
 4. This will start a local WordPress instance at `http://localhost:8888` (admin: `
    http://localhost:8888/wp-admin` with username `admin` and password `password`)
 5. **Note:** Docker must be running for this to work. The first time you run this,
    it will download WordPress and set up the database, which may take a few minutes.

### Available Commands

 * `npm run env:start` – Start the WordPress environment
 * `npm run env:stop` – Stop the WordPress environment
 * `npm run env:reset` – Reset the environment (clean database)
 * `npm run env:destroy` – Destroy the environment completely
 * `npm run test:php` – Run PHPUnit tests
 * `npm run test:php:multisite` – Run PHPUnit tests in multisite mode
 * `npm run lint:php` – Run PHP CodeSniffer
 * `npm run lint:php:fix` – Fix PHP coding standards issues automatically

### Running Tests

After starting the environment with `npm run env:start`, you can run the tests:

    ```
    `bash
    ```

npm run test:php
 `

For multisite tests:

    ```
    `bash
    ```

npm run test:php:multisite
 `

### Accessing the Site

 * **Development site**: http://localhost:8888
 * **Admin dashboard**: http://localhost:8888/wp-admin (admin/password)
 * **Test site**: http://localhost:8889
 * **Test admin**: http://localhost:8889/wp-admin (admin/password)

## Screenshots

 * [[
 * Add fields to the rest api.

## Installation

### Using The WordPress Dashboard

 1. Navigate to the ‘Add New’ in the plugins dashboard
 2. Search for ‘wp-rest-blocks’
 3. Click ‘Install Now’
 4. Activate the plugin on the Plugin dashboard

### Uploading in WordPress Dashboard

 1. Navigate to the ‘Add New’ in the plugins dashboard
 2. Navigate to the ‘Upload’ area
 3. Select `wp-rest-blocks.zip` from your computer
 4. Click ‘Install Now’
 5. Activate the plugin in the Plugin dashboard

### Using FTP

 1. Download `wp-rest-blocks.zip`
 2. Extract the `wp-rest-blocks` directory to your computer
 3. Upload the `wp-rest-blocks` directory to the `/wp-content/plugins/` directory
 4. Activate the plugin in the Plugin dashboard

## Reviews

![](https://secure.gravatar.com/avatar/fbebe65f283904bec6a196c861d02df23025bc73cfa5914fbb6b4528884a07f7?
s=60&d=retro&r=g)

### 󠀁[Not supported for php 8.1](https://wordpress.org/support/topic/not-supported-for-php-8-1/)󠁿

 [guycohen](https://profiles.wordpress.org/guycohen/) May 13, 2024

Deprecated: Return type of pQuery::offsetExists($offset) should either be compatible
with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange]
attribute should be used to temporarily suppress the notice in /var/www/html/wp-
content/plugins/rest-api-blocks/vendor/tburry/pquery/pQuery.php on line 121And more
errors like that..

![](https://secure.gravatar.com/avatar/e375f8b274badb1c1c5d360299feaba06ec1658a48a3fe983d77ca149b93b15c?
s=60&d=retro&r=g)

### 󠀁[Amazing plugin](https://wordpress.org/support/topic/amazing-plugin-1953/)󠁿

 [certainlyakey](https://profiles.wordpress.org/certainlyakey/) August 11, 2021 
1 reply

Should be in WP core.

 [ Read all 2 reviews ](https://wordpress.org/support/plugin/rest-api-blocks/reviews/)

## Contributors & Developers

“REST API blocks” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Jonny Harris ](https://profiles.wordpress.org/spacedmonkey/)

[Translate “REST API blocks” into your language.](https://translate.wordpress.org/projects/wp-plugins/rest-api-blocks)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/rest-api-blocks/), 
check out the [SVN repository](https://plugins.svn.wordpress.org/rest-api-blocks/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/rest-api-blocks/)
by [RSS](https://plugins.trac.wordpress.org/log/rest-api-blocks/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

### 1.0.2

 * Fix issue with WordPress 6.5
 * Update coding standards to WP coding standards 3.1.0
 * Mark tested up to WP 6.5

### 1.0.1

 * Update coding standards to WP coding standards 3.0.1
 * Mark tested up to WP 6.4

### 1.0.0

Breaking change!
 The field in the REST API is changed from `blocks` to `block_data`.

### 0.5.0

 * Add support for new post types added in WordPress 5.9.

### 0.4.0

 * Added support for block based widget, added in WordPress 5.8. Block data is added
   to the /wp/v2/widgets endpoint.

### 0.3.2

 * Update translations

### 0.3.1

 * Hot fix.

### 0.3.0

 * Improve support for block that have attributes that use query source type.
 * Improve error handling for those that install this plugin without using composer.

### 0.2.1

 * Update dependency.

### 0.2.0

 * Breaking change. Field names have changed and required WordPress 5.5+

### 0.1.0

 * First version.

## Meta

 *  Version **2.0.0**
 *  Last updated **3 months ago**
 *  Active installations **200+**
 *  WordPress version ** 5.9 or higher **
 *  Tested up to **6.9.4**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/rest-api-blocks/)
 * Tags
 * [api](https://scn.wordpress.org/plugins/tags/api/)[blocks](https://scn.wordpress.org/plugins/tags/blocks/)
   [gutenberg](https://scn.wordpress.org/plugins/tags/gutenberg/)[rest-api](https://scn.wordpress.org/plugins/tags/rest-api/)
   [wp-json](https://scn.wordpress.org/plugins/tags/wp-json/)
 *  [Advanced View](https://scn.wordpress.org/plugins/rest-api-blocks/advanced/)

## Ratings

 5 out of 5 stars.

 *  [  2 5-star reviews     ](https://wordpress.org/support/plugin/rest-api-blocks/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/rest-api-blocks/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/rest-api-blocks/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/rest-api-blocks/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/rest-api-blocks/reviews/?filter=1)

[Add my review](https://wordpress.org/support/plugin/rest-api-blocks/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/rest-api-blocks/reviews/)

## Contributors

 *   [ Jonny Harris ](https://profiles.wordpress.org/spacedmonkey/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/rest-api-blocks/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://github.com/sponsors/spacedmonkey)