diff --git src/bp-groups/classes/class-bp-groups-component.php src/bp-groups/classes/class-bp-groups-component.php
index b53835ea0..609f9c657 100644
--- src/bp-groups/classes/class-bp-groups-component.php
+++ src/bp-groups/classes/class-bp-groups-component.php
@@ -932,12 +932,18 @@ class BP_Groups_Component extends BP_Component {
 	 *                           description.
 	 */
 	public function rest_api_init( $controllers = array() ) {
-		parent::rest_api_init( array(
+		$controllers = array(
 			'BP_REST_Groups_Endpoint',
 			'BP_REST_Group_Membership_Endpoint',
 			'BP_REST_Group_Invites_Endpoint',
 			'BP_REST_Group_Membership_Request_Endpoint',
-			'BP_REST_Attachments_Group_Avatar_Endpoint',
-		) );
+		);
+
+		// Only Load the Group's Avatar controller if Group Avatar uploads are allowed.
+		if ( ! bp_disable_group_avatar_uploads() ) {
+			$controllers[] = 'BP_REST_Attachments_Group_Avatar_Endpoint';
+		}
+
+		parent::rest_api_init( $controllers );
 	}
 }
diff --git src/bp-members/classes/class-bp-members-component.php src/bp-members/classes/class-bp-members-component.php
index a83344feb..73b63348b 100644
--- src/bp-members/classes/class-bp-members-component.php
+++ src/bp-members/classes/class-bp-members-component.php
@@ -473,7 +473,6 @@ class BP_Members_Component extends BP_Component {
 			 */
 			'BP_REST_Components_Endpoint',
 			'BP_REST_Members_Endpoint',
-			'BP_REST_Attachments_Member_Avatar_Endpoint',
 		) );
 	}
 }
diff --git src/bp-xprofile/classes/class-bp-xprofile-component.php src/bp-xprofile/classes/class-bp-xprofile-component.php
index b43879d34..e2133287d 100644
--- src/bp-xprofile/classes/class-bp-xprofile-component.php
+++ src/bp-xprofile/classes/class-bp-xprofile-component.php
@@ -499,10 +499,17 @@ class BP_XProfile_Component extends BP_Component {
 	 *                           description.
 	 */
 	public function rest_api_init( $controllers = array() ) {
-		parent::rest_api_init( array(
+		$controllers = array(
 			'BP_REST_XProfile_Fields_Endpoint',
 			'BP_REST_XProfile_Field_Groups_Endpoint',
 			'BP_REST_XProfile_Data_Endpoint',
-		) );
+		);
+
+		// Only Load the Member's Avatar controller if Avatar uploads are allowed.
+		if ( ! bp_disable_avatar_uploads() ) {
+			$controllers[] = 'BP_REST_Attachments_Member_Avatar_Endpoint';
+		}
+
+		parent::rest_api_init( $controllers );
 	}
 }
diff --git tests/phpunit/assets/bp-rest-api-controllers.php tests/phpunit/assets/bp-rest-api-controllers.php
index 66d685065..96760a6cd 100644
--- tests/phpunit/assets/bp-rest-api-controllers.php
+++ tests/phpunit/assets/bp-rest-api-controllers.php
@@ -17,7 +17,7 @@ class BP_REST_Mock_Class {
 class BP_REST_Attachments_Member_Avatar_Endpoint extends BP_REST_Mock_Class {
 	public function __construct() {
 		$this->namespace = bp_rest_namespace() . '/' . bp_rest_version();
-		$this->rest_base = 'members';
+		$this->rest_base = 'xprofile';
 	}
 
 	public function register_routes( $controller = '' ) {
@@ -52,3 +52,45 @@ class BP_REST_Members_Endpoint extends BP_REST_Mock_Class {
 		parent::register_routes( 'BP_REST_Members_Endpoint' );
 	}
 }
+
+/**
+ * BP xProfiles Data REST Controller's mock.
+ */
+class BP_REST_XProfile_Data_Endpoint extends BP_REST_Mock_Class {
+	public function __construct() {
+		$this->namespace = bp_rest_namespace() . '/' . bp_rest_version();
+		$this->rest_base = 'xprofile';
+	}
+
+	public function register_routes( $controller = '' ) {
+		parent::register_routes( 'BP_REST_XProfile_Data_Endpoint' );
+	}
+}
+
+/**
+ * BP xProfiles Field Groups REST Controller's mock.
+ */
+class BP_REST_XProfile_Field_Groups_Endpoint extends BP_REST_Mock_Class {
+	public function __construct() {
+		$this->namespace = bp_rest_namespace() . '/' . bp_rest_version();
+		$this->rest_base = 'xprofile/groups';
+	}
+
+	public function register_routes( $controller = '' ) {
+		parent::register_routes( 'BP_REST_XProfile_Field_Groups_Endpoint' );
+	}
+}
+
+/**
+ * BP xProfiles Fields REST Controller's mock.
+ */
+class BP_REST_XProfile_Fields_Endpoint extends BP_REST_Mock_Class {
+	public function __construct() {
+		$this->namespace = bp_rest_namespace() . '/' . bp_rest_version();
+		$this->rest_base = 'xprofile/fields';
+	}
+
+	public function register_routes( $controller = '' ) {
+		parent::register_routes( 'BP_REST_XProfile_Fields_Endpoint' );
+	}
+}
diff --git tests/phpunit/testcases/core/class-bp-component.php tests/phpunit/testcases/core/class-bp-component.php
index bb8ad1b90..3b10613e4 100644
--- tests/phpunit/testcases/core/class-bp-component.php
+++ tests/phpunit/testcases/core/class-bp-component.php
@@ -32,7 +32,6 @@ class BP_Tests_BP_Component_TestCases extends BP_UnitTestCase {
 		$this->assertSame( $bp->unit_test_rest->controllers, array(
 			'BP_REST_Components_Endpoint',
 			'BP_REST_Members_Endpoint',
-			'BP_REST_Attachments_Member_Avatar_Endpoint',
 		) );
 	}
 
@@ -48,7 +47,6 @@ class BP_Tests_BP_Component_TestCases extends BP_UnitTestCase {
 
 		$this->assertSame( $bp->unit_test_rest->controllers, array(
 			'BP_REST_Components_Endpoint',
-			'BP_REST_Attachments_Member_Avatar_Endpoint',
 		) );
 	}
 
@@ -65,7 +63,37 @@ class BP_Tests_BP_Component_TestCases extends BP_UnitTestCase {
 		$this->assertSame( $bp->unit_test_rest->controllers, array(
 			'BP_REST_Components_Endpoint',
 			'BP_REST_Members_Endpoint',
+		) );
+	}
+
+	public function test_rest_api_init_for_xprofile_component() {
+		$bp_xprofile = new BP_XProfile_Component();
+		$bp          = buddypress();
+
+		$bp_xprofile->rest_api_init();
+
+		$this->assertSame( $bp->unit_test_rest->controllers, array(
+			'BP_REST_XProfile_Fields_Endpoint',
+			'BP_REST_XProfile_Field_Groups_Endpoint',
+			'BP_REST_XProfile_Data_Endpoint',
 			'BP_REST_Attachments_Member_Avatar_Endpoint',
 		) );
 	}
+
+	public function test_rest_api_init_for_xprofile_component_without_avatar_enabled() {
+		add_filter( 'bp_disable_avatar_uploads', '__return_true' );
+
+		$bp_xprofile = new BP_XProfile_Component();
+		$bp          = buddypress();
+
+		$bp_xprofile->rest_api_init();
+
+		remove_filter( 'bp_disable_avatar_uploads', '__return_true' );
+
+		$this->assertSame( $bp->unit_test_rest->controllers, array(
+			'BP_REST_XProfile_Fields_Endpoint',
+			'BP_REST_XProfile_Field_Groups_Endpoint',
+			'BP_REST_XProfile_Data_Endpoint',
+		) );
+	}
 }
