# IRPCVault.GetMetadataStructureItemIdsByAliases

Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Vault API](https://developer.m-files.com/APIs/gRPC-API/vault/index.md) > [Vault information](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCVault/index.md)

HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCVault/GetMetadataStructureItemIdsByAliases/

Badges: `Vault API / core` `write` `session or assertion` `returns metadata structure version`

Gets all unambiguous alias-to-ID mappings of one kind of metadata structure item, or of all
kinds, as JSON.

- **Service:** [Vault information](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCVault/index.md) `MFiles.IRPCVault`
- **gRPC method:** `/MFiles.IRPCVault/GetMetadataStructureItemIdsByAliases`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-metadata-structure-item-ids-by-aliases`
- **Request:** [`GetMetadataStructureItemIdsByAliasesRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCVault/GetMetadataStructureItemIdsByAliases/index.md#request)
- **Response:** [`GetMetadataStructureItemIdsByAliasesResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCVault/GetMetadataStructureItemIdsByAliases/index.md#response)
- **Book and level:** Vault API, core
- **Kind:** write
- **Session:** Required: a session (mfiles-session-id-bin metadata) or a session assertion (x-mf-session-assertion metadata).
- **Idempotent:** no
- **Returns metadata structure version:** yes (in the mfiles-metadata-version-bin trailer)
- **Streaming:** none (unary)

<a id="remarks"></a>

## Remarks

`unambiguous_aliases_only` must be true; false fails with `E_NOTIMPL`. Aliases used by more than
one item of the same kind are left out.

`data` is UTF-8 JSON followed by one NUL byte. If `uncompressed_length` is 4294967295 the bytes
are the JSON as is; otherwise they are zlib-compressed (`zlib.decompress` in Python) and
`uncompressed_length` is the decompressed size including the NUL. The JSON maps the item kind to
an object of alias-to-ID pairs; kinds without aliases are left out, so an empty vault gives `{}`:

```json
{"PropertyDef": {"PD.InvoiceNumber": 1021}, "Class": {"CL.Invoice": 5}}
```

Kind names: `ObjectType`, `ValueList`, `PropertyDef`, `Class`, `Workflow`, `State`,
`StateTransition`, `NamedACL`, `UserGroup`. Aliases keep the case the administrator gave them.
Object types and value lists are one collection, so with `METADATA_STRUCTURE_ITEM_ALL` an alias of
either appears under both `ObjectType` and `ValueList`.

[GetAllMetadataStructureItemIdswithAliases](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCVault/GetAllMetadataStructureItemIdswithAliases/index.md)
returns the same data as typed messages and is easier to use.

<a id="request"></a>

## Request: GetMetadataStructureItemIdsByAliasesRequest

> Nested message fields are expanded to depth 3; follow a type link for deeper levels and for the type's own page.

| Field | Type | Description |
|---|---|---|
| `emsi` | [`MetadataStructureItem`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.MetadataStructureItem/index.md) | The kind of item, or `METADATA_STRUCTURE_ITEM_ALL` for every kind that can have aliases. |
| `unambiguous_aliases_only` | `bool` | Must be true; false fails with `E_NOTIMPL`. |

<a id="response"></a>

## Response: GetMetadataStructureItemIdsByAliasesResponse

> Nested message fields are expanded to depth 3; follow a type link for deeper levels and for the type's own page.

| Field | Type | Description |
|---|---|---|
| `data` | `bytes` | NUL-terminated UTF-8 JSON, zlib-compressed unless `uncompressed_length` is 4294967295. The method description shows the format. |
| `uncompressed_length` | `uint32` | Size of the decompressed `data`, or 4294967295 if `data` is not compressed. |

<a id="related"></a>

## Related methods

- [GetAllMetadataStructureItemIdswithAliases](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCVault/GetAllMetadataStructureItemIdswithAliases/index.md): Gets all unambiguous alias-to-ID mappings of one kind of metadata structure item, or of all kinds, as typed lists.
- [GetMetadataStructureItemIdsByAliases_Compressed](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCVault/GetMetadataStructureItemIdsByAliases_Compressed/index.md): Gets alias-to-ID mappings of several kinds of metadata structure item as JSON, with the option to exclude kinds.
- [GetMetadataStructure](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCVault/GetMetadataStructure/index.md): Gets the vault's real object types (not value lists), with icons, in one call.
