# Returned contact information

The `ReturnValue` property returned by a synchronous `GetList` call and by `callback` for an asynchronous `GetList` call is an iterator containing the requested contact information. Each item (object) in the iterator corresponds to one contact, contact group, or contacts database, depending on what type of contact information was requested:

- Table: ReturnValue properties for a contact describes the information returned per contact. The contact details are contained in one or more keys, with each key representing a specific piece of information.

- Table: ReturnValue properties for a contact group describes the information returned per contact group.

- Table: ReturnValue properties for a contacts database describes the information returned per contacts database.

Table: ReturnValue properties for a contact
Property | Description | Type
--- | --- | ---
`<item>.id` | Unique identifier of the contact. | string
`<item>.<key>` | Each key represents one piece of contact information, such as first name, last name, home phone number, or email address. For each contact, `GetList` returns as many keys as has been defined for that contact. For example: `<item>.FirstName` `<item>.LastName` `<item>.LandPhoneHome` `<item>.EmailHome` For a list of supported keys, see section Supported contact keys. | object
`<item>.<key>.Label` | Label that describes the key value. | string
`<item>.<key>.Value` | Value defined for the key. | string
`[<item>.<key>.Next]` | This is an object that represents an additional value defined for the key. This object contains the same properties as a key: `Label`, `Value`, and optionally `Next`, where `Next` is an object identical to this one, representing yet another value defined for the same key. There is no limit to how many nested values a key can contain. For example, an `EmailHome` key with two values (two email addresses) has the following property structure: `<item>.EmailHome` `<item>.EmailHome.Label` `<item>.EmailHome.Value` `<item>.EmailHome.Next` `<item>.EmailHome.Next.Label` `<item>.EmailHome.Next.Value` The first email address is contained in `<item>.EmailHome.Value` and the second one in `<item>.EmailHome.Next.Value`. | object

Table: ReturnValue properties for a contact group
Property | Description | Type
--- | --- | ---
`<item>.id` | Unique identifier of the contact group. | string
`<item>.GroupLabel` | Name of the group. | string
`<item>.Contents` | Contains the IDs of the contacts that belong to the group. `Contents[0]` contains the ID of the first listed contact. | array of strings

Table: ReturnValue properties for a contacts database
Property | Description | Type
--- | --- | ---
`<item>.DBUri` | URI of the contacts database. | string