* @throws ApiError On failure. */ public function sites(): array { $response = $this->call( 'GET', self::BASE . '/sites' ); $result = array(); foreach ( (array) ( $response['siteEntry'] ?? array() ) as $site ) { if ( ! is_array( $site ) ) { continue; } $permission = (string) ( $site['permissionLevel'] ?? '' ); if ( 'siteUnverifiedUser' === $permission ) { continue; } $result[] = array( 'site_url' => (string) ( $site['siteUrl'] ?? '' ), 'permission' => $permission, ); } return $result; } /** * Runs a Search Analytics query for a site. * * @param string $site_url The site URL, e.g. 'sc-domain:example.com'. * @param array $body SearchAnalyticsQueryRequest body. * @return array SearchAnalyticsQueryResponse. * @throws ApiError On failure. */ public function query( string $site_url, array $body ): array { $url = self::BASE . '/sites/' . rawurlencode( $site_url ) . '/searchAnalytics/query'; return $this->call( 'POST', $url, $body ); } }