diff --git a/src/metabase/models/params.clj b/src/metabase/models/params.clj
index 6a639c0fd52363073699fd1caa8cbc239913345e..8664fd77de789844fd9cf6f13f42920f6d8b694a 100644
--- a/src/metabase/models/params.clj
+++ b/src/metabase/models/params.clj
@@ -82,14 +82,9 @@
   [fields]
   (let [table-id->name-field (fields->table-id->name-field (pk-fields fields))]
     (for [field fields]
-      (-> field
-          ;; add matching `:name_field` if it's a PK
-          (assoc :name_field (when (isa? (:special_type field) :type/PK)
-                               (-> (table-id->name-field (:table_id field))
-                                   ;; remove :table_id for these Fields since it's not needed for frontend
-                                   (dissoc :table_id))))
-          ;; now remove `:table_id` since we don't need it for frontend widgets, only for this function here
-          (dissoc :table_id)))))
+      ;; add matching `:name_field` if it's a PK
+      (assoc field :name_field (when (isa? (:special_type field) :type/PK)
+                                 (table-id->name-field (:table_id field)))))))
 
 
 ;; We hydrate the `:human_readable_field` for each Dimension using the usual hydration logic, so it contains columns we
diff --git a/test/metabase/api/embed_test.clj b/test/metabase/api/embed_test.clj
index 6818ada0e8b198d27844d0fcf6ad07c8bf549715..c67660527fec2d729782ff1d884686f5c0c43657 100644
--- a/test/metabase/api/embed_test.clj
+++ b/test/metabase/api/embed_test.clj
@@ -93,10 +93,11 @@
    :visualization_settings {}
    :dataset_query          {:type "query"}
    :parameters             ()
-   :param_values           nil})
+   :param_values           nil
+   :param_fields           nil})
 
 (def successful-dashboard-info
-  {:description nil, :parameters (), :ordered_cards (), :param_values nil})
+  {:description nil, :parameters (), :ordered_cards (), :param_values nil, :param_fields nil})
 
 
 ;;; ------------------------------------------- GET /api/embed/card/:token -------------------------------------------
diff --git a/test/metabase/api/field_test.clj b/test/metabase/api/field_test.clj
index 2658d5c229b49c2382e2d6cfe635af90ac133db3..9065871940bc1916ea3e3e86db9c252431280d57 100644
--- a/test/metabase/api/field_test.clj
+++ b/test/metabase/api/field_test.clj
@@ -83,7 +83,9 @@
      :base_type           "type/Text"
      :has_field_values    "list"
      :fk_target_field_id  nil
-     :parent_id           nil})
+     :parent_id           nil
+     :dimensions          []
+     :name_field          nil})
   ((user->client :rasta) :get 200 (format "field/%d" (id :users :name))))
 
 
diff --git a/test/metabase/api/public_test.clj b/test/metabase/api/public_test.clj
index 1356f0ceda35488926818f189546569b3b426793..3bf417df6224b51643d46f572789cc175181b2ce 100644
--- a/test/metabase/api/public_test.clj
+++ b/test/metabase/api/public_test.clj
@@ -88,7 +88,7 @@
 
 ;; Check that we can fetch a PublicCard
 (expect
-  #{:dataset_query :description :display :id :name :visualization_settings :param_values}
+  #{:dataset_query :description :display :id :name :visualization_settings :param_values :param_fields}
   (tu/with-temporary-setting-values [enable-public-sharing true]
     (with-temp-public-card [{uuid :public_uuid}]
       (set (keys (http/client :get 200 (str "public/card/" uuid)))))))