diff --git a/plugins/API/API.php b/plugins/API/API.php
index 5e046d41aaf69019c6922fa8592f54fa50d8df9b..8dcaf0186b512ec6cc0d2e9d7c94083b1bbefb55 100644
--- a/plugins/API/API.php
+++ b/plugins/API/API.php
@@ -504,12 +504,7 @@ class API extends \Piwik\Plugin\API
         if ($suggestedValuesCallbackRequiresTable) {
             $values = call_user_func($segmentFound['suggestedValuesCallback'], $idSite, $maxSuggestionsToReturn, $table);
         } else {
-            // Cleanup data to return the top suggested (non empty) labels for this segment
-            $values = $table->getColumn($segmentName);
-
-            // Select also flattened keys (custom variables "page" scope, page URLs for one visit, page titles for one visit)
-            $valuesBis = $table->getColumnsStartingWith($segmentName . ColumnDelete::APPEND_TO_COLUMN_NAME_TO_KEEP);
-            $values = array_merge($values, $valuesBis);
+            $values = $this->getSegmentValuesFromVisitorLog($segmentName, $table);
         }
 
         $values = $this->getMostFrequentValues($values);
diff --git a/plugins/API/SegmentMetadata.php b/plugins/API/SegmentMetadata.php
index e8a7092311ed09e33bd8e8444b7ed52a810b876c..caf89b7ea3fa220f109f488789fe5070645147d7 100644
--- a/plugins/API/SegmentMetadata.php
+++ b/plugins/API/SegmentMetadata.php
@@ -125,12 +125,12 @@ class SegmentMetadata
                 unset($segment['sqlFilter']);
                 unset($segment['sqlFilterValue']);
                 unset($segment['sqlSegment']);
-            }
 
-            if (isset($segment['suggestedValuesCallback'])
-                && !is_string($segment['suggestedValuesCallback'])
-            ) {
-                unset($segment['suggestedValuesCallback']);
+                if (isset($segment['suggestedValuesCallback'])
+                    && !is_string($segment['suggestedValuesCallback'])
+                ) {
+                    unset($segment['suggestedValuesCallback']);
+                }
             }
         }
 
diff --git a/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml b/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml
index 94b156a2963bfcc748aa737167d9c1441de822e5..ded012ba51ad738855e0bd47bcaeab4399795011 100644
--- a/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml
+++ b/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml
@@ -64,6 +64,7 @@
 		<name>Visitor IP</name>
 		<segment>visitIp</segment>
 		<acceptedValues>13.54.122.1. &lt;/code&gt;Select IP ranges with notation: &lt;code&gt;visitIp&gt;13.54.122.0;visitIp&lt;13.54.122.255</acceptedValues>
+		<permission>1</permission>
 	</row>
 	<row>
 		<type>dimension</type>
@@ -192,6 +193,7 @@
 		<name>User ID</name>
 		<segment>userId</segment>
 		<acceptedValues>any non empty unique string identifying the user (such as an email address or a username).</acceptedValues>
+		<permission>1</permission>
 	</row>
 	<row>
 		<type>dimension</type>
@@ -206,6 +208,7 @@
 		<name>Visit ID</name>
 		<segment>visitId</segment>
 		<acceptedValues>Any integer.</acceptedValues>
+		<permission>1</permission>
 	</row>
 	<row>
 		<type>dimension</type>
@@ -250,6 +253,7 @@
 		<name>Visitor ID</name>
 		<segment>visitorId</segment>
 		<acceptedValues>34c31e04394bdc63 - any 16 Hexadecimal chars ID, which can be fetched using the Tracking API function getVisitorId()</acceptedValues>
+		<permission>1</permission>
 	</row>
 	<row>
 		<type>dimension</type>