> ## Documentation Index
> Fetch the complete documentation index at: https://developer.box.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List all metadata on an item

export const MultiRelatedLinks = ({sections = []}) => {
  if (!sections || sections.length === 0) {
    return null;
  }
  return <div className="space-y-8">
      {sections.map((section, index) => <RelatedLinks key={index} title={section.title} items={section.items} />)}
    </div>;
};

export const RelatedLinks = ({title, items = []}) => {
  const getBadgeClass = badge => {
    if (!badge) return "badge-default";
    const badgeType = badge.toLowerCase().replace(/\s+/g, "-");
    return `badge-${badge === "ガイド" ? "guide" : badgeType}`;
  };
  if (!items || items.length === 0) {
    return null;
  }
  return <div className="my-8">
      {}
      <h3 className="text-sm font-bold uppercase tracking-wider mb-4">{title}</h3>

      {}
      <div className="flex flex-col gap-3">
        {items.map((item, index) => <a key={index} href={item.href} className="py-2 px-3 rounded related_link hover:bg-[#f2f2f2] dark:hover:bg-[#111827] flex items-center gap-3 group no-underline hover:no-underline border-b-0">
            {}
            <span className={`px-2 py-1 rounded-full text-xs font-semibold uppercase tracking-wide flex-shrink-0 ${getBadgeClass(item.badge)}`}>
              {item.badge}
            </span>

            {}
            <span className="text-base">{item.label}</span>
          </a>)}
      </div>
    </div>;
};

export const Link = ({href, children, className, ...props}) => {
  const localizedHref = localizeLink(href);
  return <a href={localizedHref} className={className} {...props}>
      {children}
    </a>;
};

Metadata instances can be listed for either a file or a folder.

## List metadata on a file

To list all metadata instances on a file, call the
<Link href="/reference/get-files-id-metadata">`GET /files/:file_id/metadata`</Link> API endpoint.

<CodeGroup>
  ```sh cURL theme={null}
  curl -i -X GET "https://api.box.com/2.0/files/12345/metadata" \
       -H "authorization: Bearer <ACCESS_TOKEN>"
  ```

  ```typescript Node/TypeScript v10 theme={null}
  await client.fileMetadata.getFileMetadata(file.id);
  ```

  ```python Python v10 theme={null}
  client.file_metadata.get_file_metadata(file.id)
  ```

  ```csharp .NET v10 theme={null}
  await client.FileMetadata.GetFileMetadataAsync(fileId: file.Id);
  ```

  ```swift Swift v10 theme={null}
  try await client.fileMetadata.getFileMetadata(fileId: file.id)
  ```

  ```java Java v10 theme={null}
  client.getFileMetadata().getFileMetadata(file.getId())
  ```

  ```java Java v5 theme={null}
  BoxFile file = new BoxFile(api, "id");
  Iterable<Metadata> metadataList = file.getAllMetadata();
  for (Metadata metadata : metadataList) {
      // Do something with the metadata.
  }
  ```

  ```py Python v4 theme={null}
  file_metadata = client.file(file_id='11111').get_all_metadata()
  for instance in file_metadata:
      if 'foo' in instance:
          print(f'Metadata instance {instance["id"]} has value "{instance["foo"]}" for foo')
  ```

  ```csharp .NET v6 theme={null}
  BoxMetadataTemplateCollection<Dictionary<string, object>> metadataInstances = await client.MetadataManager
      .GetAllFileMetadataTemplatesAsync(fileId: "11111");
  ```

  ```js Node v4 theme={null}
  client.files.getAllMetadata('11111')
   .then(metadata => {
    /* metadata -> {
     entries: 
     [ { currentDocumentStage: 'Init',
      '$type': 'documentFlow-452b4c9d-c3ad-4ac7-b1ad-9d5192f2fc5f',
      '$parent': 'file_11111',
      '$id': '50ba0dba-0f89-4395-b867-3e057c1f6ed9',
      '$version': 4,
      '$typeVersion': 2,
      needsApprovalFrom: 'Smith',
      '$template': 'documentFlow',
      '$scope': 'enterprise_12345' },
      { '$type': 'productInfo-9d7b6993-b09e-4e52-b197-e42f0ea995b9',
      '$parent': 'file_11111',
      '$id': '15d1014a-06c2-47ad-9916-014eab456194',
      '$version': 2,
      '$typeVersion': 1,
      skuNumber: 45334223,
      description: 'Watch',
      '$template': 'productInfo',
      '$scope': 'enterprise_12345' },
      { Popularity: '25',
      '$type': 'properties',
      '$parent': 'file_11111',
      '$id': 'b6f36cbc-fc7a-4eda-8889-130f350cc057',
      '$version': 0,
      '$typeVersion': 2,
      '$template': 'properties',
      '$scope': 'global' } ],
     limit: 100 }
    */
   });
  ```
</CodeGroup>

<Warning>
  This API does not support paging and it will always return all of the metadata
  instances for this file.
</Warning>

## List metadata on a folder

To list all metadata instances on any folder (except for the root folder), call
the <Link href="/reference/get-files-id-metadata">`GET /folders/:file_id/metadata`</Link> API endpoint.

<CodeGroup>
  ```sh cURL theme={null}
  curl -i -X GET "https://api.box.com/2.0/folders/4353455/metadata" \
       -H "authorization: Bearer <ACCESS_TOKEN>"
  ```

  ```typescript Node/TypeScript v10 theme={null}
  await client.folderMetadata.getFolderMetadata(folder.id);
  ```

  ```python Python v10 theme={null}
  client.folder_metadata.get_folder_metadata(folder.id)
  ```

  ```csharp .NET v10 theme={null}
  await client.FolderMetadata.GetFolderMetadataAsync(folderId: folder.Id);
  ```

  ```swift Swift v10 theme={null}
  try await client.folderMetadata.getFolderMetadata(folderId: folder.id)
  ```

  ```java Java v10 theme={null}
  client.getFolderMetadata().getFolderMetadata(folder.getId())
  ```

  ```java Java v5 theme={null}
  BoxFolder file = new BoxFolder(api, "id");
  Iterable<Metadata> metadataList = folder.getAllMetadata();
  for (Metadata metadata : metadataList) {
      // Do something with the metadata.
  }
  ```

  ```py Python v4 theme={null}
  folder_metadata = client.folder(folder_id='22222').get_all_metadata()
  for instance in folder_metadata:
      if 'foo' in instance:
          print(f'Metadata instance {instance["id"]} has value "{instance["foo"]}" for foo')
  ```

  ```csharp .NET v6 theme={null}
  BoxMetadataTemplateCollection<Dictionary<string, object>> metadataInstances = await client.MetadataManager
      .GetAllFolderMetadataTemplatesAsync(folderId: "11111");
  ```

  ```js Node v4 theme={null}
  client.folders.getAllMetadata('11111')
   .then(metadata => {
    /* metadata -> {
     entries: 
     [ { currentDocumentStage: 'Init',
      '$type': 'documentFlow-452b4c9d-c3ad-4ac7-b1ad-9d5192f2fc5f',
      '$parent': 'folder_11111',
      '$id': '50ba0dba-0f89-4395-b867-3e057c1f6ed9',
      '$version': 4,
      '$typeVersion': 2,
      needsApprovalFrom: 'Smith',
      '$template': 'documentFlow',
      '$scope': 'enterprise_12345' },
      { '$type': 'productInfo-9d7b6993-b09e-4e52-b197-e42f0ea995b9',
      '$parent': 'folder_11111',
      '$id': '15d1014a-06c2-47ad-9916-014eab456194',
      '$version': 2,
      '$typeVersion': 1,
      skuNumber: 45334223,
      description: 'Watch',
      '$template': 'productInfo',
      '$scope': 'enterprise_12345' },
      { Popularity: '25',
      '$type': 'properties',
      '$parent': 'folder_11111',
      '$id': 'b6f36cbc-fc7a-4eda-8889-130f350cc057',
      '$version': 0,
      '$typeVersion': 2,
      '$template': 'properties',
      '$scope': 'global' } ],
     limit: 100 }
    */
   });
  ```
</CodeGroup>

<Warning>
  This API does not support paging and it will always return all of the metadata
  instances for this file. This API can not be used on the root folder with ID `0`.
</Warning>

[get_metadata_folder]: /reference/get-folders-id-metadata

<RelatedLinks
  title="RELATED APIS"
  items={[
{ label: translate("List metadata instances on file"), href: "/reference/get-files-id-metadata", badge: "GET" },
{ label: translate("List metadata instances on folder"), href: "/reference/get-folders-id-metadata", badge: "GET" }
]}
/>

<RelatedLinks
  title="RELATED GUIDES"
  items={[
{ label: translate("Get metadata on item"), href: "/guides/metadata/instances/get", badge: "GUIDE" },
{ label: translate("Apply metadata to an item"), href: "/guides/metadata/instances/create", badge: "GUIDE" },
{ label: translate("Update metadata on an item"), href: "/guides/metadata/instances/update", badge: "GUIDE" }
]}
/>

<RelatedLinks
  title="RELATED RESOURCES"
  items={[
{ label: translate("Metadata"), href: "/guides/metadata/index", badge: "GUIDE" }
]}
/>
