diff --git a/.changeset/friendly-kings-poke.md b/.changeset/friendly-kings-poke.md
new file mode 100644
index 0000000000000000000000000000000000000000..b7299f4ebaa7ce84ea3b1182ad6960b5de7e0bb5
--- /dev/null
+++ b/.changeset/friendly-kings-poke.md
@@ -0,0 +1,6 @@
+---
+"@rocket.chat/meteor": patch
+"@rocket.chat/rest-typings": patch
+---
+
+Allows users to fetch the `packageValue` of settings when calling `/settings` endpoint via `includeDefaults` query param.
diff --git a/apps/meteor/app/api/server/v1/settings.ts b/apps/meteor/app/api/server/v1/settings.ts
index 1c09e8c72937c097b18517cd08ab539db0d1731b..6d2bbab89afd802a5697e0a9d19069f592d1b38d 100644
--- a/apps/meteor/app/api/server/v1/settings.ts
+++ b/apps/meteor/app/api/server/v1/settings.ts
@@ -12,6 +12,7 @@ import {
 	isSettingsUpdatePropsActions,
 	isSettingsUpdatePropsColor,
 	isSettingsPublicWithPaginationProps,
+	isSettingsGetParams,
 } from '@rocket.chat/rest-typings';
 import { Meteor } from 'meteor/meteor';
 import type { FindOptions } from 'mongodb';
@@ -131,9 +132,10 @@ API.v1.addRoute(
 
 API.v1.addRoute(
 	'settings',
-	{ authRequired: true },
+	{ authRequired: true, validateParams: isSettingsGetParams },
 	{
 		async get() {
+			const { includeDefaults } = this.queryParams;
 			const { offset, count } = await getPaginationItems(this.queryParams);
 			const { sort, fields, query } = await this.parseJsonQuery();
 
@@ -147,6 +149,11 @@ API.v1.addRoute(
 
 			ourQuery = Object.assign({}, query, ourQuery);
 
+			// Note: change this when `fields` gets removed
+			if (includeDefaults) {
+				fields.packageValue = 1;
+			}
+
 			const { settings, totalCount: total } = await fetchSettings(ourQuery, sort, offset, count, fields);
 
 			return API.v1.success({
diff --git a/apps/meteor/tests/end-to-end/api/settings.ts b/apps/meteor/tests/end-to-end/api/settings.ts
index 973d21e84f949bd75979734ffda5d440837eb243..0873190b7ba8a1ebb1a49714fa58476dac045c23 100644
--- a/apps/meteor/tests/end-to-end/api/settings.ts
+++ b/apps/meteor/tests/end-to-end/api/settings.ts
@@ -100,6 +100,20 @@ describe('[Settings]', () => {
 				})
 				.end(done);
 		});
+		it('should return the default values of the settings when includeDefaults is true', async () => {
+			return request
+				.get(api('settings'))
+				.query({ includeDefaults: true })
+				.set(credentials)
+				.expect('Content-Type', 'application/json')
+				.expect(200)
+				.expect((res) => {
+					expect(res.body).to.have.property('success', true);
+					expect(res.body).to.have.property('settings');
+					expect(res.body).to.have.property('count');
+					expect(res.body.settings[0]).to.have.property('packageValue');
+				});
+		});
 	});
 
 	describe('[/settings/:_id]', () => {
diff --git a/packages/rest-typings/src/v1/settings.ts b/packages/rest-typings/src/v1/settings.ts
index 7aec62fdfceb3414441de6be03a493de04486259..a7bf38c8145ee02ecce7d253e963fe048aef97fb 100644
--- a/packages/rest-typings/src/v1/settings.ts
+++ b/packages/rest-typings/src/v1/settings.ts
@@ -57,6 +57,36 @@ const SettingsPublicWithPaginationSchema = {
 
 export const isSettingsPublicWithPaginationProps = ajv.compile<SettingsPublicWithPaginationProps>(SettingsPublicWithPaginationSchema);
 
+type SettingsGetParams = PaginatedRequest<{ includeDefaults?: boolean; query?: string }>;
+
+const SettingsGetSchema = {
+	type: 'object',
+	properties: {
+		includeDefaults: {
+			type: 'boolean',
+		},
+		count: {
+			type: 'number',
+		},
+		offset: {
+			type: 'number',
+		},
+		sort: {
+			type: 'string',
+		},
+		fields: {
+			type: 'string',
+		},
+		query: {
+			type: 'string',
+		},
+	},
+	required: [],
+	additionalProperties: false,
+};
+
+export const isSettingsGetParams = ajv.compile<SettingsGetParams>(SettingsGetSchema);
+
 export type SettingsEndpoints = {
 	'/v1/settings.public': {
 		GET: (params: SettingsPublicWithPaginationProps) => PaginatedResult & {
@@ -75,7 +105,7 @@ export type SettingsEndpoints = {
 	};
 
 	'/v1/settings': {
-		GET: () => {
+		GET: (params: SettingsGetParams) => {
 			settings: ISetting[];
 		};
 	};