diff --git a/app/controllers/api/v1/sites_controller.rb b/app/controllers/api/v1/sites_controller.rb
index 5fc9ac46..b6e30bd9 100644
--- a/app/controllers/api/v1/sites_controller.rb
+++ b/app/controllers/api/v1/sites_controller.rb
@@ -14,7 +14,13 @@ module Api
 
       # Lista de nombres de dominios a emitir certificados
       def index
-        render json: sites_names.concat(alternative_names).concat(api_names).concat(www_names)
+        all_names = sites_names.concat(alternative_names).concat(api_names).concat(www_names).uniq.map do |name|
+          canonicalize name
+        end.reject do |name|
+          subdomain? name
+        end.uniq
+
+        render json: all_names
       end
 
       private
@@ -38,23 +44,18 @@ module Api
       end
 
       # Nombres de los sitios
+      #
+      # @param name [String]
+      # @return [Array<String>]
       def sites_names
-        Site.all.order(:name).pluck(:name).map do |name|
-          canonicalize name
-        end.reject do |name|
-          subdomain? name
-        end
+        Site.all.order(:name).pluck(:name)
       end
 
       # Dominios alternativos
       #
       # @return [Array<String>]
       def alternative_names
-        hostname_of(DeployAlternativeDomain.all).concat(hostname_of(DeployLocalizedDomain)).map do |name|
-          canonicalize name
-        end.reject do |name|
-          subdomain? name
-        end
+        hostname_of(DeployAlternativeDomain.all).concat(hostname_of(DeployLocalizedDomain))
       end
 
       # Obtener todos los sitios con API habilitada, es decir formulario
@@ -66,10 +67,6 @@ module Api
             .or(Site.where(colaboracion_anonima: true))
             .pluck(:name).map do |name|
               "api.#{name}"
-            end.map do |name|
-              canonicalize name
-            end.reject do |name|
-              subdomain? name
             end
       end