diff --git a/app/assets/javascripts/packages_and_registries/package_registry/components/details/metadata/pypi.vue b/app/assets/javascripts/packages_and_registries/package_registry/components/details/metadata/pypi.vue
index 498ddbae7b143cc52a565f7c832402d6cccc08a5..d71773adb9d1d9b65b407eac6ed3b7aa5a8a9959 100644
--- a/app/assets/javascripts/packages_and_registries/package_registry/components/details/metadata/pypi.vue
+++ b/app/assets/javascripts/packages_and_registries/package_registry/components/details/metadata/pypi.vue
@@ -8,6 +8,9 @@ import DetailsRow from '~/vue_shared/components/registry/details_row.vue';
 export default {
   i18n: {
     requiredPython: s__('PackageRegistry|Required Python: %{pythonVersion}'),
+    summary: s__('PackageRegistry|Summary: %{summary}'),
+    authorEmail: s__('PackageRegistry|Author email: %{authorEmail}'),
+    keywords: s__('PackageRegistry|Keywords: %{keywords}'),
   },
   components: {
     DetailsRow,
@@ -24,12 +27,33 @@ export default {
 
 <template>
   <div>
-    <details-row icon="information-o" padding="gl-p-4" data-testid="pypi-required-python">
+    <details-row dashed icon="information-o" padding="gl-p-4" data-testid="pypi-required-python">
       <gl-sprintf :message="$options.i18n.requiredPython">
         <template #pythonVersion>
           <strong>{{ packageMetadata.requiredPython }}</strong>
         </template>
       </gl-sprintf>
     </details-row>
+    <details-row dashed icon="doc-text" padding="gl-p-4" data-testid="pypi-summary">
+      <gl-sprintf :message="$options.i18n.summary">
+        <template #summary>
+          <strong>{{ packageMetadata.summary }}</strong>
+        </template>
+      </gl-sprintf>
+    </details-row>
+    <details-row dashed icon="doc-text" padding="gl-p-4" data-testid="pypi-keywords">
+      <gl-sprintf :message="$options.i18n.keywords">
+        <template #keywords>
+          <strong>{{ packageMetadata.keywords }}</strong>
+        </template>
+      </gl-sprintf>
+    </details-row>
+    <details-row dashed icon="mail" padding="gl-p-4" data-testid="pypi-author-email">
+      <gl-sprintf :message="$options.i18n.authorEmail">
+        <template #authorEmail>
+          <strong>{{ packageMetadata.authorEmail }}</strong>
+        </template>
+      </gl-sprintf>
+    </details-row>
   </div>
 </template>
diff --git a/app/assets/javascripts/packages_and_registries/package_registry/graphql/queries/get_package_metadata.query.graphql b/app/assets/javascripts/packages_and_registries/package_registry/graphql/queries/get_package_metadata.query.graphql
index fc8b39b37ab555e490e5130f93f17315a617996f..b95b5c2bc745310c1262a15928fafe316566a645 100644
--- a/app/assets/javascripts/packages_and_registries/package_registry/graphql/queries/get_package_metadata.query.graphql
+++ b/app/assets/javascripts/packages_and_registries/package_registry/graphql/queries/get_package_metadata.query.graphql
@@ -12,7 +12,10 @@ query getPackageMetadata($id: PackagesPackageID!) {
       }
       ... on PypiMetadata {
         id
+        authorEmail
+        keywords
         requiredPython
+        summary
       }
       ... on ConanMetadata {
         id
diff --git a/app/assets/javascripts/vue_shared/components/registry/details_row.vue b/app/assets/javascripts/vue_shared/components/registry/details_row.vue
index 72e06b45561073017adaf9932b245d032349be75..85b4ea241ef2d7a3a7f69345143251b571c5e7b9 100644
--- a/app/assets/javascripts/vue_shared/components/registry/details_row.vue
+++ b/app/assets/javascripts/vue_shared/components/registry/details_row.vue
@@ -32,12 +32,14 @@ export default {
 
 <template>
   <div
-    class="gl-display-flex gl-align-items-center gl-font-monospace gl-font-sm gl-word-break-all"
+    class="gl-display-flex gl-align-items-top gl-font-monospace gl-font-sm gl-word-break-all"
     :class="[padding, borderClass]"
   >
-    <gl-icon v-if="icon" :name="icon" class="gl-mr-4" />
-    <span>
+    <div v-if="icon" class="gl-w-5 gl-mr-4">
+      <gl-icon :name="icon" />
+    </div>
+    <div>
       <slot></slot>
-    </span>
+    </div>
   </div>
 </template>
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index 2ebe97ba74bca3b275b1abb80bc0e3bd8bc8b168..741e1b41a1249bf92ef2bddfbe3e6cfdce7df526 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -33966,6 +33966,9 @@ msgstr ""
 msgid "PackageRegistry|App name: %{name}"
 msgstr ""
 
+msgid "PackageRegistry|Author email: %{authorEmail}"
+msgstr ""
+
 msgid "PackageRegistry|Built by pipeline %{link} triggered %{datetime} by %{author}"
 msgstr ""
 
@@ -34176,6 +34179,9 @@ msgstr ""
 msgid "PackageRegistry|Invalid Package: failed metadata extraction"
 msgstr ""
 
+msgid "PackageRegistry|Keywords: %{keywords}"
+msgstr ""
+
 msgid "PackageRegistry|Last downloaded %{dateTime}"
 msgstr ""
 
@@ -34343,6 +34349,9 @@ msgstr ""
 msgid "PackageRegistry|Source project located at %{link}"
 msgstr ""
 
+msgid "PackageRegistry|Summary: %{summary}"
+msgstr ""
+
 msgid "PackageRegistry|Target SHA: %{sha}"
 msgstr ""
 
diff --git a/spec/frontend/packages_and_registries/infrastructure_registry/components/details/components/__snapshots__/file_sha_spec.js.snap b/spec/frontend/packages_and_registries/infrastructure_registry/components/details/components/__snapshots__/file_sha_spec.js.snap
index 8e757c136ecc8f2287d31a9d078f9a4409ff3d5a..a544a679ff4af3727c1dab1054fa65483df1c232 100644
--- a/spec/frontend/packages_and_registries/infrastructure_registry/components/details/components/__snapshots__/file_sha_spec.js.snap
+++ b/spec/frontend/packages_and_registries/infrastructure_registry/components/details/components/__snapshots__/file_sha_spec.js.snap
@@ -2,9 +2,9 @@
 
 exports[`FileSha renders 1`] = `
 <div
-  class="gl-align-items-center gl-border-b-1 gl-border-b-solid gl-border-gray-100 gl-display-flex gl-font-monospace gl-font-sm gl-py-2 gl-word-break-all"
+  class="gl-align-items-top gl-border-b-1 gl-border-b-solid gl-border-gray-100 gl-display-flex gl-font-monospace gl-font-sm gl-py-2 gl-word-break-all"
 >
-  <span>
+  <div>
     <div
       class="gl-px-4"
     >
@@ -23,6 +23,6 @@ exports[`FileSha renders 1`] = `
         variant="default"
       />
     </div>
-  </span>
+  </div>
 </div>
 `;
diff --git a/spec/frontend/packages_and_registries/package_registry/components/details/__snapshots__/file_sha_spec.js.snap b/spec/frontend/packages_and_registries/package_registry/components/details/__snapshots__/file_sha_spec.js.snap
index 8e757c136ecc8f2287d31a9d078f9a4409ff3d5a..a544a679ff4af3727c1dab1054fa65483df1c232 100644
--- a/spec/frontend/packages_and_registries/package_registry/components/details/__snapshots__/file_sha_spec.js.snap
+++ b/spec/frontend/packages_and_registries/package_registry/components/details/__snapshots__/file_sha_spec.js.snap
@@ -2,9 +2,9 @@
 
 exports[`FileSha renders 1`] = `
 <div
-  class="gl-align-items-center gl-border-b-1 gl-border-b-solid gl-border-gray-100 gl-display-flex gl-font-monospace gl-font-sm gl-py-2 gl-word-break-all"
+  class="gl-align-items-top gl-border-b-1 gl-border-b-solid gl-border-gray-100 gl-display-flex gl-font-monospace gl-font-sm gl-py-2 gl-word-break-all"
 >
-  <span>
+  <div>
     <div
       class="gl-px-4"
     >
@@ -23,6 +23,6 @@ exports[`FileSha renders 1`] = `
         variant="default"
       />
     </div>
-  </span>
+  </div>
 </div>
 `;
diff --git a/spec/frontend/packages_and_registries/package_registry/components/details/metadata/pypi_spec.js b/spec/frontend/packages_and_registries/package_registry/components/details/metadata/pypi_spec.js
index 67f5fbc9e801167152968b41add98015be2051ab..39b525efdbc7fc30bd4731bdf7bcb2ec20efb8e4 100644
--- a/spec/frontend/packages_and_registries/package_registry/components/details/metadata/pypi_spec.js
+++ b/spec/frontend/packages_and_registries/package_registry/components/details/metadata/pypi_spec.js
@@ -21,14 +21,20 @@ describe('Package Additional Metadata', () => {
   };
 
   const findPypiRequiredPython = () => wrapper.findByTestId('pypi-required-python');
+  const findPypiAuthorEmail = () => wrapper.findByTestId('pypi-author-email');
+  const findPypiSummary = () => wrapper.findByTestId('pypi-summary');
+  const findPypiKeywords = () => wrapper.findByTestId('pypi-keywords');
 
   beforeEach(() => {
     mountComponent();
   });
 
   it.each`
-    name                      | finderFunction            | text                        | icon
-    ${'pypi-required-python'} | ${findPypiRequiredPython} | ${'Required Python: 1.0.0'} | ${'information-o'}
+    name                      | finderFunction            | text                                                      | icon
+    ${'pypi-required-python'} | ${findPypiRequiredPython} | ${'Required Python: 1.0.0'}                               | ${'information-o'}
+    ${'pypi-author-email'}    | ${findPypiAuthorEmail}    | ${'Author email: "C. Schultz" <cschultz@example.com>'}    | ${'mail'}
+    ${'pypi-summary'}         | ${findPypiSummary}        | ${'Summary: A module for collecting votes from beagles.'} | ${'doc-text'}
+    ${'pypi-keywords'}        | ${findPypiKeywords}       | ${'Keywords: dog,puppy,voting,election'}                  | ${'doc-text'}
   `('$name element', ({ finderFunction, text, icon }) => {
     const element = finderFunction();
     expect(element.exists()).toBe(true);
diff --git a/spec/frontend/packages_and_registries/package_registry/mock_data.js b/spec/frontend/packages_and_registries/package_registry/mock_data.js
index 6c03f91b73d12a02c02bab3dba5d749cf79595ab..fdd64cbe6a5ea9f9a042b214549167e2038a7170 100644
--- a/spec/frontend/packages_and_registries/package_registry/mock_data.js
+++ b/spec/frontend/packages_and_registries/package_registry/mock_data.js
@@ -183,7 +183,10 @@ export const composerMetadata = () => ({
 export const pypiMetadata = () => ({
   __typename: 'PypiMetadata',
   id: 'pypi-1',
+  authorEmail: '"C. Schultz" <cschultz@example.com>',
+  keywords: 'dog,puppy,voting,election',
   requiredPython: '1.0.0',
+  summary: 'A module for collecting votes from beagles.',
 });
 
 export const mavenMetadata = () => ({