Index: src/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php
===================================================================
--- src/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php	(revision 43438)
+++ src/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php	(working copy)
@@ -237,6 +237,14 @@
 			$prepared_args['offset'] = $prepared_args['number'] * ( absint( $request['page'] ) - 1 );
 		}
 
+		/*
+                 * If hierarchical is true, get just top level comments. Keep parent from response if set.
+		 * Children will be populated in $this->prepare_item_for_response().
+		*/             
+                if (  isset( $request[ 'hierarchical' ] ) && $request[ 'hierarchical' ] ) {
+ 			$prepared_args[ 'parent' ] = $request['parent'] ?: 0;
+		}
+
 		/**
 		 * Filters arguments, before passing to WP_Comment_Query, when querying comments via the REST API.
 		 *
@@ -942,6 +950,21 @@
 		$data    = $this->add_additional_fields_to_object( $data, $request );
 		$data    = $this->filter_response_by_context( $data, $context );
 
+		$children = $comment->get_children();
+		// Loop through children and prepare them too
+		if (!empty($children)){		
+			foreach ($children as $child){
+				//cehck read permission for each child				
+				if ( ! $this->check_read_permission( $child, $request ) ) {
+					continue;
+				}
+				//prepare child for response
+				$child_response = $this->prepare_item_for_response($child, $request);
+				//prepare response for collection and add child to parent's data
+				$data['children'][] =  $this->prepare_response_for_collection( $child_response->data);
+			}
+		}
+
 		// Wrap the data in a response object.
 		$response = rest_ensure_response( $data );
 
@@ -1251,6 +1274,11 @@
 						'sanitize_callback' => 'sanitize_text_field',
 					),
 				),
+				'children'             => array(
+					'description'  => __( "Comment's children, if hierarchical comments are requested." ),
+					'type'         => 'array',
+					'context'      => array( 'view', 'embed' ),
+				),
 				'content'           => array(
 					'description' => __( 'The content for the object.' ),
 					'type'        => 'object',
@@ -1405,6 +1433,12 @@
 			'default'     => array(),
 		);
 
+		$query_params['hierarchical'] = array(
+                        'description' => __( 'Whether to include comment descendants in the results. Returns a flat array of found comments plus their children.' ),
+                        'type'        => 'boolean',
+			'default'     => false,
+                );
+
 		$query_params['include'] = array(
 			'description' => __( 'Limit result set to specific IDs.' ),
 			'type'        => 'array',
