diff --git a/frontend/src/metabase-lib/v1/metadata/Database.ts b/frontend/src/metabase-lib/v1/metadata/Database.ts
index 1ae95300186fb74a1a63a5832ae60705f09e7058..6d88833939d28cff01a5fd21ae282e45b589e1e5 100644
--- a/frontend/src/metabase-lib/v1/metadata/Database.ts
+++ b/frontend/src/metabase-lib/v1/metadata/Database.ts
@@ -19,6 +19,9 @@ interface Database extends Omit<NormalizedDatabase, "tables" | "schemas"> {
   metadata?: Metadata;
 }
 
+/**
+ * @deprecated use RTK Query endpoints and plain api objects from metabase-types/api
+ */
 class Database {
   private readonly _plainObject: NormalizedDatabase;
 
diff --git a/frontend/src/metabase-lib/v1/metadata/Field.ts b/frontend/src/metabase-lib/v1/metadata/Field.ts
index 6f1b19535a74869cbd2ebafb06f56cd4f6187f62..a19c27e4505fdedcae80e80c5a53a1f9539e6202 100644
--- a/frontend/src/metabase-lib/v1/metadata/Field.ts
+++ b/frontend/src/metabase-lib/v1/metadata/Field.ts
@@ -70,6 +70,9 @@ const LONG_TEXT_MIN = 80;
  * Wrapper class for field metadata objects. Belongs to a Table.
  */
 
+/**
+ * @deprecated use RTK Query endpoints and plain api objects from metabase-types/api
+ */
 class FieldInner extends Base {
   id: FieldId | FieldReference;
   name: string;
diff --git a/frontend/src/metabase-lib/v1/metadata/ForeignKey.ts b/frontend/src/metabase-lib/v1/metadata/ForeignKey.ts
index 50a18a55924ae4a9e7600e0db05f28c8db2e64d0..3113fbfc8fe8c3ec4972349e253135080c9601cc 100644
--- a/frontend/src/metabase-lib/v1/metadata/ForeignKey.ts
+++ b/frontend/src/metabase-lib/v1/metadata/ForeignKey.ts
@@ -10,6 +10,9 @@ interface ForeignKey
   metadata?: Metadata;
 }
 
+/**
+ * @deprecated use RTK Query endpoints and plain api objects from metabase-types/api
+ */
 class ForeignKey {
   private readonly _plainObject: NormalizedForeignKey;
 
diff --git a/frontend/src/metabase-lib/v1/metadata/Metadata.ts b/frontend/src/metabase-lib/v1/metadata/Metadata.ts
index 16b87031b6f2c60808dd8f528a5aee306f6aa5e9..5cfdd3b650d7582adc0876486f593e365e75c457 100644
--- a/frontend/src/metabase-lib/v1/metadata/Metadata.ts
+++ b/frontend/src/metabase-lib/v1/metadata/Metadata.ts
@@ -35,6 +35,12 @@ interface MetadataOpts {
   settings?: Settings;
 }
 
+/**
+ * @deprecated The class shouldn't be used for anything but to create a MetadataProvider instance from MBQL lib.
+ *
+ *   For finding a database/table/field/card by id, use the corresponding RTK query endpoints.
+ *   Do not rely on data being implicitly loaded in some other place.
+ */
 class Metadata {
   databases: Record<string, Database> = {};
   schemas: Record<string, Schema> = {};
@@ -50,8 +56,7 @@ class Metadata {
   }
 
   /**
-   * @deprecated this won't be sorted or filtered in a meaningful way
-   * @returns {Database[]}
+   * @deprecated load data via RTK Query - useListDatabasesQuery
    */
   databasesList({ savedQuestions = true } = {}): Database[] {
     return _.chain(this.databases)
@@ -62,53 +67,78 @@ class Metadata {
   }
 
   /**
-   * @deprecated this won't be sorted or filtered in a meaningful way
-   * @returns {Table[]}
+   * @deprecated load data via RTK Query - useListDatabaseSchemaTablesQuery
    */
   tablesList(): Table[] {
     return Object.values(this.tables);
   }
 
+  /**
+   * @deprecated load data via RTK Query - useListFieldsQuery
+   */
   fieldsList(): Field[] {
     return Object.values(this.fields);
   }
 
   /**
-   * @deprecated this won't be sorted or filtered in a meaningful way
-   * @returns {Metric[]}
+   * @deprecated load data via RTK Query - useListMetricsQuery
    */
   metricsList(): Metric[] {
     return Object.values(this.metrics);
   }
 
+  /**
+   * @deprecated load data via RTK Query - useListSegmentsQuery
+   */
   segmentsList(): Segment[] {
     return Object.values(this.segments);
   }
 
+  /**
+   * @deprecated load data via RTK Query - useGetSegmentQuery
+   */
   segment(segmentId: SegmentId | undefined | null): Segment | null {
     return (segmentId != null && this.segments[segmentId]) || null;
   }
 
+  /**
+   * @deprecated load data via RTK Query - useGetMetricQuery
+   */
   metric(metricId: MetricId | undefined | null): Metric | null {
     return (metricId != null && this.metrics[metricId]) || null;
   }
 
+  /**
+   * @deprecated load data via RTK Query - useGetDatabaseQuery
+   */
   database(databaseId: DatabaseId | undefined | null): Database | null {
     return (databaseId != null && this.databases[databaseId]) || null;
   }
 
+  /**
+   * @deprecated load data via RTK Query - useListDatabasesQuery({ saved: true })
+   */
   savedQuestionsDatabase() {
     return this.databases[SAVED_QUESTIONS_VIRTUAL_DB_ID];
   }
 
+  /**
+   * @deprecated load data via RTK Query - useListSchemasQuery or useListDatabaseSchemaTablesQuery
+   */
   schema(schemaId: SchemaId | undefined | null): Schema | null {
     return (schemaId != null && this.schemas[schemaId]) || null;
   }
 
+  /**
+   * @deprecated load data via RTK Query - useGetTableQuery or useGetTableMetadataQuery
+   */
   table(tableId: TableId | undefined | null): Table | null {
     return (tableId != null && this.tables[tableId]) || null;
   }
 
+  /**
+   * @deprecated load data via RTK Query - useGetFieldQuery
+   */
   field(
     fieldId: FieldId | FieldReference | string | undefined | null,
     tableId?: TableId | undefined | null,
@@ -126,6 +156,9 @@ class Metadata {
     return this.fields[uniqueId] || null;
   }
 
+  /**
+   * @deprecated load data via RTK Query - useGetCardQuery
+   */
   question(cardId: CardId | undefined | null): Question | null {
     return (cardId != null && this.questions[cardId]) || null;
   }
diff --git a/frontend/src/metabase-lib/v1/metadata/Metric.ts b/frontend/src/metabase-lib/v1/metadata/Metric.ts
index bdbb62ae47729e4ac2976a59cec49c9223d50c6f..6eb83ebc8225f684940ae5a33b7a0956066a0548 100644
--- a/frontend/src/metabase-lib/v1/metadata/Metric.ts
+++ b/frontend/src/metabase-lib/v1/metadata/Metric.ts
@@ -9,6 +9,9 @@ interface Metric extends Omit<NormalizedMetric, "table"> {
   metadata?: Metadata;
 }
 
+/**
+ * @deprecated use RTK Query endpoints and plain api objects from metabase-types/api
+ */
 class Metric {
   private readonly _plainObject: NormalizedMetric;
 
diff --git a/frontend/src/metabase-lib/v1/metadata/Schema.ts b/frontend/src/metabase-lib/v1/metadata/Schema.ts
index 305f75140063d8282e8352106a2b830b2a3acbc0..c4a3c1b9807a2814306a2b7dfb1c9e7f39c4d4f1 100644
--- a/frontend/src/metabase-lib/v1/metadata/Schema.ts
+++ b/frontend/src/metabase-lib/v1/metadata/Schema.ts
@@ -11,6 +11,9 @@ interface Schema extends Omit<NormalizedSchema, "database" | "tables"> {
   metadata?: Metadata;
 }
 
+/**
+ * @deprecated use RTK Query endpoints and plain api objects from metabase-types/api
+ */
 class Schema {
   private readonly _plainObject: NormalizedSchema;
 
diff --git a/frontend/src/metabase-lib/v1/metadata/Segment.ts b/frontend/src/metabase-lib/v1/metadata/Segment.ts
index dca14f9dfaeb098f9b842d8c4fdfeb34f6b09d8f..d85e45d18571c55b1d32966a577e5729ea7b0e37 100644
--- a/frontend/src/metabase-lib/v1/metadata/Segment.ts
+++ b/frontend/src/metabase-lib/v1/metadata/Segment.ts
@@ -8,6 +8,9 @@ interface Segment extends Omit<NormalizedSegment, "table"> {
   metadata?: Metadata;
 }
 
+/**
+ * @deprecated use RTK Query endpoints and plain api objects from metabase-types/api
+ */
 class Segment {
   private readonly _plainObject: NormalizedSegment;
 
diff --git a/frontend/src/metabase-lib/v1/metadata/Table.ts b/frontend/src/metabase-lib/v1/metadata/Table.ts
index 957cac4e1a5df9c28da375d199778fa5cbc460e4..951a0814d082b186f17795e957568c91496b81c9 100644
--- a/frontend/src/metabase-lib/v1/metadata/Table.ts
+++ b/frontend/src/metabase-lib/v1/metadata/Table.ts
@@ -32,6 +32,9 @@ interface Table
   metadata?: Metadata;
 }
 
+/**
+ * @deprecated use RTK Query endpoints and plain api objects from metabase-types/api
+ */
 class Table {
   private readonly _plainObject: NormalizedTable;