Title: API Versions
Published: April 21, 2021
Last modified: July 24, 2026

---

# API Versions

## In this article

 * [Version 3 (>= WordPress 6.3)](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-api-versions/?output_format=md#version-3-wordpress-6-3)
 * [Version 2 (>= WordPress 5.6)](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-api-versions/?output_format=md#version-2-wordpress-5-6)
 * [Version 1](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-api-versions/?output_format=md#version-1)

[ Back to top](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-api-versions/?output_format=md#wp--skip-link--target)

This document lists the changes made between the different API versions.

## 󠀁[Version 3 (>= WordPress 6.3)](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-api-versions/?output_format=md#version-3-wordpress-6-3)󠁿

 * WordPress 6.3 introduced the iframed post editor when all registered blocks use
   Block API version 3 or higher and no traditional meta boxes are present.
 * WordPress 7.0 evaluates the blocks in the post content instead of all registered
   blocks when deciding whether to use the iframe.
 * Gutenberg 23.6 and WordPress 7.1 always use the iframe for the post editor, regardless
   of the `apiVersion` of the blocks in the post content.

Adding version 3 support means that a block should work inside an iframe. Refer 
to the [iframe editor migration guide](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-api-versions/block-migration-for-iframe-editor-compatibility/)
for testing and migration guidance.

## 󠀁[Version 2 (>= WordPress 5.6)](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-api-versions/?output_format=md#version-2-wordpress-5-6)󠁿

 * To render the block element wrapper for the block’s `edit` implementation, the
   block author must use the `useBlockProps()` hook.
 * The generated class names and styles are no longer added automatically to the
   saved markup for static blocks when `save` is processed. To include them, the
   block author must explicitly use `useBlockProps.save()` and add to their block
   wrapper.

## 󠀁[Version 1](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-api-versions/?output_format=md#version-1)󠁿

Initial version.

First published

April 21, 2021

Last updated

July 24, 2026

Edit article

[ Improve it on GitHub: API Versions ](https://github.com/WordPress/gutenberg/edit/trunk/docs/reference-guides/block-api/block-api-versions/README.md)

[  Previous: Annotations](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-annotations/)

[  Next: Migrating Blocks for iframe Editor Compatibility](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-api-versions/block-migration-for-iframe-editor-compatibility/)