diff --git src/bp-groups/bp-groups-functions.php src/bp-groups/bp-groups-functions.php
index 11439ba..76d031f 100644
--- src/bp-groups/bp-groups-functions.php
+++ src/bp-groups/bp-groups-functions.php
@@ -708,6 +708,7 @@ function groups_get_groups( $args = '' ) {
 		'include'            => false,          // Only include these specific groups (group_ids).
 		'exclude'            => false,          // Do not include these specific groups (group_ids).
 		'parent_id'          => null,           // Get groups that are children of the specified group(s).
+		'slug'               => false,          // Find a group by slug.
 		'search_terms'       => false,          // Limit to groups that match these search terms.
 		'search_columns'     => array(),        // Select which columns to search.
 		'group_type'         => '',             // Array or comma-separated list of group types to limit results to.
@@ -728,6 +729,7 @@ function groups_get_groups( $args = '' ) {
 		'user_id'            => $r['user_id'],
 		'include'            => $r['include'],
 		'exclude'            => $r['exclude'],
+		'slug'               => $r['slug'],
 		'parent_id'          => $r['parent_id'],
 		'search_terms'       => $r['search_terms'],
 		'search_columns'     => $r['search_columns'],
diff --git src/bp-groups/classes/class-bp-groups-group.php src/bp-groups/classes/class-bp-groups-group.php
index a851750..6b35cb3 100644
--- src/bp-groups/classes/class-bp-groups-group.php
+++ src/bp-groups/classes/class-bp-groups-group.php
@@ -876,7 +876,10 @@ class BP_Groups_Group {
 	 *                                            Default: null (no limit).
 	 *     @type int          $user_id            Optional. If provided, results will be limited to groups
 	 *                                            of which the specified user is a member. Default: null.
- 	 *     @type string       $search_terms       Optional. If provided, only groups whose names or descriptions
+ 	 *     @type string       $slug               Optional. If provided, only the group whose slug matches
+	 *                                            the provided slug will be returned.
+	 *                                            Default: false.
+	 *     @type string       $search_terms       Optional. If provided, only groups whose names or descriptions
 	 *                                            match the search terms will be returned. Allows specifying the
 	 *                                            wildcard position using a '*' character before or after the
 	 *                                            string or both. Works in concert with $search_columns.
@@ -938,6 +941,7 @@ class BP_Groups_Group {
 			'per_page'           => null,
 			'page'               => null,
 			'user_id'            => 0,
+			'slug'               => false,
 			'search_terms'       => false,
 			'search_columns'     => array(),
 			'group_type'         => '',
@@ -974,6 +978,10 @@ class BP_Groups_Group {
 			$where_conditions['hidden'] = "g.status != 'hidden'";
 		}
 
+		if ( ! empty( $r['slug'] ) ) {
+			$where_conditions['slug'] = $wpdb->prepare( "g.slug LIKE %s", $r['slug'] );
+		}
+
 		$search = '';
 		if ( isset( $r['search_terms'] ) ) {
 			$search = trim( $r['search_terms'] );
diff --git tests/phpunit/testcases/groups/class-bp-groups-group.php tests/phpunit/testcases/groups/class-bp-groups-group.php
index 6f6d625..de30d48 100644
--- tests/phpunit/testcases/groups/class-bp-groups-group.php
+++ tests/phpunit/testcases/groups/class-bp-groups-group.php
@@ -2011,6 +2011,31 @@ class BP_Tests_BP_Groups_Group_TestCases extends BP_UnitTestCase {
 		$found = wp_list_pluck( $groups['groups'], 'id' );
 		$this->assertEqualSets( array( $g1, $g4 ), $found );
 	}
+
+	/**
+	 * @group group_exists
+	 */
+	public function test_group_exists_expected_behavior() {
+		$g1 = $this->factory->group->create( array(
+			'slug' => 'sam',
+		) );
+		$g2 = $this->factory->group->create( array(
+			'slug' => 'sam-e',
+		) );
+
+		$group_id = BP_Groups_Group::group_exists( 'sam' );
+
+		$this->assertSame( $g1, $group_id );
+	}
+
+	/**
+	 * @group group_exists
+	 */
+	public function test_group_exists_expected_behavior_no_match() {
+		$group_id = BP_Groups_Group::group_exists( 'brandywine-river' );
+
+		$this->assertNull( $group_id );
+	}
 }
 
 /**
