diff --git src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php
index ef34f626e..445d7e9f6 100644
--- src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php
+++ src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php
@@ -1926,17 +1926,13 @@ class WP_REST_Posts_Controller extends WP_REST_Controller {
 					break;
 
 				case 'post-formats':
-					$supports_formats = get_theme_support( 'post-formats' );
-
-					// Force to an array. Supports formats can return true even if empty in some cases.
-					$supports_formats = is_array( $supports_formats ) ? array_values( $supports_formats[0] ) : array();
-
-					$supported_formats = array_merge( array( 'standard' ), $supports_formats );
+					// Get the native post formats and remove the array keys.
+					$formats = array_values( get_post_format_slugs() );
 
 					$schema['properties']['format'] = array(
 						'description' => __( 'The format for the object.' ),
 						'type'        => 'string',
-						'enum'        => $supported_formats,
+						'enum'        => $formats,
 						'context'     => array( 'view', 'edit' ),
 					);
 					break;
diff --git tests/phpunit/tests/rest-api/rest-posts-controller.php tests/phpunit/tests/rest-api/rest-posts-controller.php
index 67d4b0eea..35d6ce564 100644
--- tests/phpunit/tests/rest-api/rest-posts-controller.php
+++ tests/phpunit/tests/rest-api/rest-posts-controller.php
@@ -855,20 +855,12 @@ class WP_Test_REST_Posts_Controller extends WP_Test_REST_Post_Type_Controller_Te
 		$this->assertEquals( $post2, $data[0]['id'] );
 	}
 
-	public function test_get_items_no_supported_post_formats() {
-		// This causes get_theme_support( 'post-formats' ) to return `true` (not an array)
-		add_theme_support( 'post-formats' );
-
+	public function test_get_items_all_post_formats() {
 		$request = new WP_REST_Request( 'OPTIONS', '/wp/v2/posts' );
 		$response = $this->server->dispatch( $request );
 		$data = $response->get_data();
 
-		// Set the expected state back for the rest of the tests.
-		global $_wp_theme_features;
-		unset( $_wp_theme_features['post-formats'] );
-		add_theme_support( 'post-formats', array( 'post', 'gallery' ) );
-
-		$formats = array( 'standard' );
+		$formats = array_values( get_post_format_slugs() );
 
 		$this->assertEquals( $formats, $data['schema']['properties']['format']['enum'] );
 	}
@@ -1384,24 +1376,6 @@ class WP_Test_REST_Posts_Controller extends WP_Test_REST_Post_Type_Controller_Te
 		$this->assertErrorResponse( 'rest_invalid_param', $response, 400 );
 	}
 
-	/**
-	 * Test with a valid format, but one unsupported by the theme.
-	 *
-	 * https://core.trac.wordpress.org/ticket/38610
-	 */
-	public function test_create_post_with_unsupported_format() {
-		wp_set_current_user( self::$editor_id );
-
-		$request = new WP_REST_Request( 'POST', '/wp/v2/posts' );
-		$params = $this->set_post_data( array(
-			'format' => 'link',
-		) );
-		$request->set_body_params( $params );
-		$response = $this->server->dispatch( $request );
-
-		$this->assertErrorResponse( 'rest_invalid_param', $response, 400 );
-	}
-
 	public function test_create_update_post_with_featured_media() {
 
 		$file = DIR_TESTDATA . '/images/canola.jpg';
@@ -1882,24 +1856,6 @@ class WP_Test_REST_Posts_Controller extends WP_Test_REST_Post_Type_Controller_Te
 		$this->assertErrorResponse( 'rest_invalid_param', $response, 400 );
 	}
 
-	/**
-	 * Test with a valid format, but one unsupported by the theme.
-	 *
-	 * https://core.trac.wordpress.org/ticket/38610
-	 */
-	public function test_update_post_with_unsupported_format() {
-		wp_set_current_user( self::$editor_id );
-
-		$request = new WP_REST_Request( 'PUT', sprintf( '/wp/v2/posts/%d', self::$post_id ) );
-		$params = $this->set_post_data( array(
-			'format' => 'link',
-		) );
-		$request->set_body_params( $params );
-		$response = $this->server->dispatch( $request );
-
-		$this->assertErrorResponse( 'rest_invalid_param', $response, 400 );
-	}
-
 	public function test_update_post_ignore_readonly() {
 		wp_set_current_user( self::$editor_id );
 
