# IRPCIndexingDataSource2.GetValueListItemsForIX

Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Server integration API](https://developer.m-files.com/APIs/gRPC-API/integration/index.md) > [Indexing data source (version 2)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/index.md)

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

Badges: `Server integration API / specialized` `internal: not for applications` `read` `session` `idempotent`

Gets the items of one value list for a search index: all items page by page, or the changes since
a known version.

Unlike [GetValueListItemsWithPermissions](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCValueLists/GetValueListItemsWithPermissions/index.md),
it does not refresh items from an external database, does not replace "(current user)"
placeholders with the caller's identity, can return each item's permissions as stored, and pages
through long lists with `after_item_id`.

- **Service:** [Indexing data source (version 2)](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/index.md) `MFiles.IRPCIndexingDataSource2`
- **gRPC method:** `/MFiles.IRPCIndexingDataSource2/GetValueListItemsForIX`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/get-value-list-items-for-ix`
- **Request:** [`GetValueListItemsForIXRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/GetValueListItemsForIX/index.md#request)
- **Response:** [`GetValueListItemsForIXResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCIndexingDataSource2/GetValueListItemsForIX/index.md#response)
- **Book and level:** Server integration API, specialized
- **Kind:** read
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** yes
- **Returns metadata structure version:** no
- **Streaming:** none (unary)

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

## Remarks

**For M-Files components only.** M-Files' cloud search indexing services call it. Applications
should use [GetValueListItemsWithPermissions](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCValueLists/GetValueListItemsWithPermissions/index.md).
- Requires a vault session with the vault rights `see_all_objects` and `see_deleted_objects`.
- Read-only. With `results_limit` 0 the server applied a limit of 5000.
- Paging: pass `after_item_id` -1 on the first call, then the highest item ID of the previous
  page, until `has_more_results` is false.

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

## Request: GetValueListItemsForIXRequest

> 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 |
|---|---|---|
| `value_list` | `int32` | The ID of the value list to fetch. |
| `known_version` | `int64` | The version of the list that the caller has. 0 returns the full list (first page). |
| `allow_delta` | `bool` | True if the caller can process a delta response. |
| `include_permissions` | `bool` | True to return `item_acls` and `item_acls_for_indexing`. |
| `include_deleted_items` | `bool` | True to include deleted items, so that the index can mark them deleted. |
| `after_item_id` | `int32` | Paging cursor of the full list: -1 on the first call, then the highest item ID of the previous page. |
| `results_limit` | `uint32` | The maximum number of items. 0 means the server default. |

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

## Response: GetValueListItemsForIXResponse

> Nested message fields are expanded to depth 3; follow a type link for deeper levels and for the type's own page. Fields marked (recursive) refer to a type already on their path.

| Field | Type | Description |
|---|---|---|
| `current_version` | `int64` | The current version of the list. If it equals `known_version`, no items are returned. |
| `is_delta` | `bool` | True if the response is a delta. False if it is a full-list page (or the unchanged-since-caller no-op case). |
| `has_more_results` | `bool` | True if more items follow; call again with `after_item_id`. |
| `results_limit` | `uint32` | The actual results limit the server applied. |
| `removed_items[]` | repeated `int32` | Removed item IDs (delta mode only). Empty otherwise. |
| `items[]` | repeated [`ValueListItem`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ValueListItem/index.md) | The changed items (delta) or one page of the full list. Deleted items have the deleted flag set. |
| `items[].item_info` | [`ItemInfo`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ItemInfo/index.md) | The item's identity and name: `obj_id.type` is the value list ID, `obj_id.item_id.internal_id` the item ID (unique within the list only), plus `name`, `guid`, `external_id` and flags. `options.is_deleted` marks a deleted item. |
| `items[].item_info.obj_id` | [`ObjID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ObjID/index.md) | The object id or value list item id. Includes the object type or value list id. |
| `items[].item_info.name` | `string` | The name of the item. |
| `items[].item_info.external_id_status` | [`ExtIDStatus`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.ExtIDStatus/index.md) | The status of this item's external ID. Values: `EXT_IDSTATUS_UNKNOWN` (0), `EXT_IDSTATUS_EXTERNAL` (1), `EXT_IDSTATUS_INTERNAL` (2), `EXT_IDSTATUS_DISCARDED` (3), `EXT_IDSTATUS_NOT_AVAILABLE` (4), `EXT_IDSTATUS_EXTERNAL_REDUCED` (5). |
| `items[].item_info.external_id` | `string` | The external ID (display ID) of this item. unset means that the external ID is the same as the internal ID. |
| `items[].item_info.guid` | `string` | GUID for the item. |
| `items[].item_info.options` | [`ITEMFLAGS`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ITEMFLAGS/index.md) | Bit flags that provide additional information on the item (e.g. is the object deleted). |
| `items[].item_info.external_repository_icon_id` | `string` | The ID of the item's icon. |
| `items[].has_parent` | `bool` | True if the item has a parent item in the same (hierarchical) list. |
| `items[].has_owner` | `bool` | True if the item belongs to an item of the owner list (`ValueList.owner_object_type`). |
| `items[].parent_id` | `int32` | With `has_parent`, the item ID of the parent item; otherwise ignored. |
| `items[].owner_id` | `int32` | With `has_owner`, the item ID of the owner item in the owner list. |
| `items[].owner_name` | `string` | The name of the owner item. |
| `items[].automatic_permissions` | [`AutomaticPermissions`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AutomaticPermissions/index.md) | If set, specifies the automatic permissions for an object for which the user selects this item. |
| `items[].automatic_permissions.permissions` | [`NamedACL`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.NamedACL/index.md) | The automatic permissions for an object for which the user selects this item. |
| `items[].automatic_permissions.is_default` | `bool` | True if these automatic permissions are not private i.e. they are not directly specified for (owned by) this item but they come from somewhere else, e.g. from the default/common automatic permissions of the object type. |
| `items[].automatic_permissions.use_object_permissions` | `bool` | If true the object/item's own permissions are used as its automatic permissions. |
| `items[].icon` | [`Bytes`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.Bytes/index.md) | If set, contains the icon of this item in .ICO format. |
| `items[].icon.value` | `bytes` | Array of bytes. |
| `item_acls[]` | repeated [`AccessControlList`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlList/index.md) | The permissions of each item as stored, in the order of `items`. Empty if `include_permissions` was false. |
| `item_acls[].checked_out_to_user` | `int32` | Specifies the ID of the user who has extended rights because of the checkout operation performed by her. 0 if such user does not exist. |
| `item_acls[].is_fully_authoritative` | `bool` | Specifies whether this access control list is set to ignore the secondary permissions that come from the latest checked in version. |
| `item_acls[].custom_component` | [`AccessControlListComponent`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlListComponent/index.md) | Accesses the custom component of this ACL. |
| `item_acls[].custom_component.named_acl_id` | `int32` | Specifies the named ACL link of this component. |
| `item_acls[].custom_component.has_named_acl` | `bool` | True if the component links to a named ACL (`named_acl_id`). |
| `item_acls[].custom_component.current_user_id` | `int32` | Specifies the current user binding of this component. |
| `item_acls[].custom_component.has_current_user` | `bool` | True if the component has an access control entry for the current user. |
| `item_acls[].custom_component.permissions[]` | repeated [`AccessControlEntry`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlEntry/index.md) | The access control entry datas. The data belongs to the key in the corresponding index. |
| `item_acls[].custom_component.overridability_permissions[]` | repeated [`AccessControlEntry`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlEntry/index.md) | Overridability permission data of this ACL component. |
| `item_acls[].custom_component.status` | [`ACCESSCONTROLLISTCOMPONENTSTATUSFLAGS`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ACCESSCONTROLLISTCOMPONENTSTATUSFLAGS/index.md) | Modification status of this component. |
| `item_acls[].restrictive_components[]` | repeated [`AccessControlListComponentMapEntry`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlListComponentMapEntry/index.md) | Accesses the restrictive automatic components of this ACL. |
| `item_acls[].restrictive_components[].key` | [`AccessControlListComponentKey`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlListComponentKey/index.md) | Access control list component. |
| `item_acls[].restrictive_components[].component` | [`AccessControlListComponent`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlListComponent/index.md) | Access control list component. |
| `item_acls[].secondary_access_control_list` | [`AccessControlList`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlList/index.md) (recursive) | Secondary ACL used for latest version ACL. Not used for access check if null. |
| `item_acls[].additive_components[]` | repeated [`AccessControlListComponentMapEntry`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlListComponentMapEntry/index.md) | Accesses the additive automatic components of this ACL. |
| `item_acls[].additive_components[].key` | [`AccessControlListComponentKey`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlListComponentKey/index.md) | Access control list component. |
| `item_acls[].additive_components[].component` | [`AccessControlListComponent`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.AccessControlListComponent/index.md) | Access control list component. |
| `item_acls_for_indexing[]` | repeated [`SimpleACL`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.SimpleACL/index.md) | The read permissions of each item, resolved for the index, in the order of `items`. Empty if `include_permissions` was false or the server does not supply them. |
| `item_acls_for_indexing[].value[]` | repeated [`SimpleACLComponent`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.SimpleACLComponent/index.md) | Components. |
| `item_acls_for_indexing[].value[].allowed[]` | repeated `int32` | Users (positive IDs) and user groups (negative IDs) allowed read access by this component. |
| `item_acls_for_indexing[].value[].denied[]` | repeated `int32` | Users (positive IDs) and user groups (negative IDs) denied read access by this component. |

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

## Related methods

- [IRPCValueLists.GetValueListItemsWithPermissions](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCValueLists/GetValueListItemsWithPermissions/index.md): Gets the items of one value list or object type, or only the changes since a known version.
