ESC
Type to search...

Contacts.Read

Export JSON
Export CSV
Copy URL
Print
ApplicationDelegated Read User Scope

Allows the app to read all contacts in all mailboxes without a signed-in user.

Permission data: April 6, 2026 at 4:06 AM UTC
Delegated Access App-Only Access

Permission Details

Application Permission

Read contacts in all mailboxes

Allows the app to read all contacts in all mailboxes without a signed-in user.

Delegated Permission User consent allowed

Read user contacts

Allows the app to read user contacts.

Properties

Microsoft Graph v1.0 mapped-docs

Properties is shown from stable Microsoft Graph v1.0 metadata.

Property Type Description
assistantName StringNullable The name of the contact's assistant.
birthday DateTimeOffsetNullable The contact's birthday. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
businessAddress physicalAddress The contact's business address.
businessHomePage StringNullable The business home page of the contact.
businessPhones String collection The contact's business phone numbers.
categories String collection The categories associated with the contact.
changeKey StringNullable Identifies the version of the contact. Every time the contact is changed, ChangeKey changes as well. This allows Exchange to apply changes to the correct version of the object.
children String collection The names of the contact's children.
companyName StringNullable The name of the contact's company.
createdDateTime DateTimeOffsetNullable The time the contact was created. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z
department StringNullable The contact's department.
displayName StringNullable The contact's display name. You can specify the display name in a create or update operation. Note that later updates to other properties may cause an automatically generated value to overwrite the displayName value you have specified. To preserve a pre-existing value, always include it as displayName in an update operation.
emailAddresses emailAddress collection The contact's email addresses.
fileAs StringNullable The name the contact is filed under.
generation StringNullable The contact's suffix.

Showing 15 of 42 properties.

JSON Representation

Microsoft Graph v1.0 mapped-docs

JSON representation is shown from stable Microsoft Graph v1.0 metadata.

JSON representation
{
  "assistantName": "string",
  "birthday": "String (timestamp)",
  "businessAddress": {
    "@odata.type": "microsoft.graph.physicalAddress"
  },
  "businessHomePage": "string",
  "businessPhones": [
    "string"
  ],
  "categories": [
    "string"
  ],
  "changeKey": "string",
  "children": [
    "string"
  ],
  "companyName": "string",
  "createdDateTime": "String (timestamp)",
  "department": "string",
  "displayName": "string",
  "emailAddresses": [
    {
      "@odata.type": "microsoft.graph.emailAddress"
    }
  ],
  "fileAs": "string",
  "generation": "string",
  "givenName": "string",
  "homeAddress": {
    "@odata.type": "microsoft.graph.physicalAddress"
  },
  "homePhones": [
    "string"
  ],
  "id": "string (identifier)",
  "imAddresses": [
    "string"
  ],
  "initials": "string",
  "jobTitle": "string",
  "lastModifiedDateTime": "String (timestamp)",
  "manager": "string",
  "middleName": "string",
  "mobilePhone": "string",
  "nickName": "string",
  "officeLocation": "string",
  "otherAddress": {
    "@odata.type": "microsoft.graph.physicalAddress"
  },
  "parentFolderId": "string",
  "personalNotes": "string",
  "photo": {
    "@odata.type": "microsoft.graph.profilePhoto"
  },
  "primaryEmailAddress": {
    "@odata.type": "microsoft.graph.emailAddress"
  },
  "profession": "string",
  "secondaryEmailAddress": {
    "@odata.type": "microsoft.graph.emailAddress"
  },
  "spouseName": "string",
  "surname": "string",
  "tertiaryEmailAddress": {
    "@odata.type": "microsoft.graph.emailAddress"
  },
  "title": "string",
  "yomiCompanyName": "string",
  "yomiGivenName": "string",
  "yomiSurname": "string"
}

Relationships

Microsoft Graph v1.0 mapped-docs

Relationships is shown from stable Microsoft Graph v1.0 metadata.

Relationship Type Description
extensions extension collection The collection of open extensions defined for the contact. Read-only. Nullable.
multiValueExtendedProperties multiValueLegacyExtendedProperty collection The collection of multi-value extended properties defined for the contact. Read-only. Nullable.
photo profilePhoto Optional contact picture. You can get or set a photo for a contact.
singleValueExtendedProperties singleValueLegacyExtendedProperty collection The collection of single-value extended properties defined for the contact. Read-only. Nullable.
businessPhones string collection The contact's business phone numbers.
categories string collection The categories associated with the item
children string collection The names of the contact's children.
emailAddresses emailAddress collection The contact's email addresses.
homePhones string collection The contact's home phone numbers.
imAddresses string collection The contact's instant messaging (IM) addresses.
phones phone collection Phone numbers associated with the contact, for example, home phone, mobile phone, and business phone.
postalAddresses physicalAddress collection Addresses associated with the contact, for example, home address and business address.
websites website collection Web sites associated with the contact.

Graph Methods

Delegated access App-only access
Exact Microsoft Learn match

Microsoft Graph v1.0 endpoints are mapped directly from refreshed Microsoft Learn permissions tables.

Methods
GET /groups/{id}/photo
GET /groups/{id}/photo/$value
GET /groups/{id}/photos/{size}
GET /me/contactFolders
GET /me/contactfolders/{contactFolderId}/contacts/{id}/photo
GET /me/contactfolders/{contactFolderId}/contacts/{id}/photo/$value
GET /me/contactFolders/{id}
GET /me/contactFolders/{id}/childFolders
GET /me/contactFolders/{id}/childFolders/{id}/.../contacts
GET /me/contactFolders/{id}/childFolders/{id}/.../contacts/{id}
GET /me/contactfolders/{Id}/contacts
GET /me/contactFolders/{id}/contacts
GET /me/contactfolders/{Id}/contacts/{id}
GET /me/contactFolders/{id}/contacts/delta
GET /me/contactFolders/delta
GET /me/contacts
GET /me/contacts/{id}
GET /me/contacts/{id}/photo
GET /me/contacts/{id}/photo/$value
GET /me/photo
GET /me/photo/$value
GET /me/photos
GET /me/photos/{size}
GET /teams/{id}/photo
GET /teams/{id}/photo/$value
GET /users/{id | userPrincipalName}/contactFolders
GET /users/{id | userPrincipalName}/contactfolders/{contactFolderId}/contacts/{id}/photo
GET /users/{id | userPrincipalName}/contactfolders/{contactFolderId}/contacts/{id}/photo/$value
GET /users/{id | userPrincipalName}/contactFolders/{id}
GET /users/{id | userPrincipalName}/contactFolders/{id}/childFolders
GET /users/{id | userPrincipalName}/contactFolders/{id}/childFolders/{id}/contacts
GET /users/{id | userPrincipalName}/contactFolders/{id}/childFolders/{id}/contacts/{id}
GET /users/{id | userPrincipalName}/contactfolders/{id}/contacts
GET /users/{id | userPrincipalName}/contactFolders/{id}/contacts
GET /users/{id | userPrincipalName}/contactfolders/{id}/contacts/{id}
GET /users/{id | userPrincipalName}/contactFolders/{id}/contacts/delta
GET /users/{id | userPrincipalName}/contacts
GET /users/{id | userPrincipalName}/contacts/{id}
GET /users/{id | userPrincipalName}/contacts/{id}/photo
GET /users/{id | userPrincipalName}/contacts/{id}/photo/$value
GET /users/{id | userPrincipalName}/photo
GET /users/{id | userPrincipalName}/photo/$value
GET /users/{id | userPrincipalName}/photos/{size}
GET /users/{id}/contactFolders/delta
Exact Microsoft Learn match

Microsoft Graph beta endpoints are mapped directly from refreshed Microsoft Learn permissions tables.

Methods
GET /groups/{id}/photo
GET /groups/{id}/photo/$value
GET /groups/{id}/photos/{size}
GET /me/contactFolders
GET /me/contactfolders/{contactFolderId}/contacts/{id}/photo
GET /me/contactfolders/{contactFolderId}/contacts/{id}/photo/$value
GET /me/contactFolders/{id}
GET /me/contactFolders/{id}/childFolders
GET /me/contactFolders/{id}/childFolders/{id}/.../contacts
GET /me/contactFolders/{id}/childFolders/{id}/.../contacts/{id}
GET /me/contactfolders/{Id}/contacts
GET /me/contactFolders/{id}/contacts
GET /me/contactfolders/{Id}/contacts/{id}
GET /me/contactFolders/{id}/contacts/delta
GET /me/contactFolders/delta
GET /me/contacts
GET /me/contacts/{id}
GET /me/contacts/{id}/photo
GET /me/contacts/{id}/photo/$value
GET /me/photo
GET /me/photo/$value
GET /me/photos
GET /me/photos/{size}
GET /teams/{id}/photo
GET /teams/{id}/photo/$value
GET /users/{id | userPrincipalName}/contactFolders
GET /users/{id | userPrincipalName}/contactfolders/{contactFolderId}/contacts/{id}/photo
GET /users/{id | userPrincipalName}/contactfolders/{contactFolderId}/contacts/{id}/photo/$value
GET /users/{id | userPrincipalName}/contactFolders/{id}
GET /users/{id | userPrincipalName}/contactFolders/{id}/childFolders
GET /users/{id | userPrincipalName}/contactFolders/{id}/childFolders/{id}/contacts
GET /users/{id | userPrincipalName}/contactFolders/{id}/childFolders/{id}/contacts/{id}
GET /users/{id | userPrincipalName}/contactfolders/{id}/contacts
GET /users/{id | userPrincipalName}/contactFolders/{id}/contacts
GET /users/{id | userPrincipalName}/contactfolders/{id}/contacts/{id}
GET /users/{id | userPrincipalName}/contacts
GET /users/{id | userPrincipalName}/contacts/{id}
GET /users/{id | userPrincipalName}/contacts/{id}/photo
GET /users/{id | userPrincipalName}/contacts/{id}/photo/$value
GET /users/{id | userPrincipalName}/photo
GET /users/{id | userPrincipalName}/photo/$value
GET /users/{id | userPrincipalName}/photos/{size}
GET /users/{id}/contactFolders/{id}/contacts/delta
GET /users/{id}/contactFolders/delta
Exact Microsoft Learn PowerShell match

Microsoft Graph PowerShell v1.0 commands are mapped directly from refreshed Microsoft Learn PowerShell snippets.

Commands
Get-MgTeamPhoto /me/photo/$value
Get profilePhoto
Get-MgTeamPhotoContent /me/photo/$value
Get profilePhoto
Get-MgUserContact /me/contacts
List contacts
Get-MgUserContact /me/contacts/{id}
Get contact
Get-MgUserContactFolder /me/contactFolders
List contactFolders
Get-MgUserContactFolder /me/contactFolders/{id}
Get contactFolder
Get-MgUserContactFolderChildFolder /me/contactFolders/{id}/childFolders
List childFolders
Get-MgUserContactFolderContact /me/contacts
List contacts
Get-MgUserContactFolderContactDelta /me/contactFolders/{id}/contacts/delta
contact: delta
Get-MgUserContactFolderDelta /me/contactFolders/delta
contactFolder: delta
Get-MgUserPhoto /me/photo/$value
Get profilePhoto
Get-MgUserPhotoContent /me/photo/$value
Get profilePhoto
Exact Microsoft Learn PowerShell match

Microsoft Graph PowerShell beta commands are mapped directly from refreshed Microsoft Learn PowerShell snippets.

Commands
Get-MgBetaUserContact /me/contacts
List contacts
Get-MgBetaUserContact /me/contacts/{id}
Get contact
Get-MgBetaUserContactFolder /me/contactFolders
List contactFolders
Get-MgBetaUserContactFolder /me/contactFolders/{id}
Get contactFolder
Get-MgBetaUserContactFolderChildFolder /me/contactFolders/{id}/childFolders
List childFolders
Get-MgBetaUserContactFolderContact /me/contacts
List contacts

Code Examples

C# / .NET SDK
contact: delta
// Code snippets are only available for the latest version. Current version is 5.x

// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Me.ContactFolders["{contactFolder-id}"].Contacts.Delta.GetAsDeltaGetResponseAsync((requestConfiguration) =>
{
	requestConfiguration.QueryParameters.Select = new string []{ "displayName" };
	requestConfiguration.Headers.Add("Prefer", "odata.maxpagesize=2");
});
JavaScript
contact: delta
const options = {
	authProvider,
};

const client = Client.init(options);

let delta = await client.api('/me/contactFolders/{id}/contacts/delta')
	.header('Prefer','odata.maxpagesize=2')
	.select('displayName')
	.get();
PowerShell
contact: delta
Import-Module Microsoft.Graph.PersonalContacts
# A UPN can also be used as -UserId.
Get-MgUserContactFolderContactDelta -UserId $userId -ContactFolderId $contactFolderId -Property "displayName"
Python
contact: delta
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.users.item.contact_folders.item.contacts.delta.delta_request_builder import DeltaRequestBuilder
from kiota_abstractions.base_request_configuration import RequestConfiguration
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
query_params = DeltaRequestBuilder.DeltaRequestBuilderGetQueryParameters(
		select = ["displayName"],
)

request_configuration = RequestConfiguration(
query_parameters = query_params,
)
request_configuration.headers.add("Prefer", "odata.maxpagesize=2")

result = await graph_client.me.contact_folders.by_contact_folder_id('contactFolder-id').contacts.delta.get(request_configuration = request_configuration)

App Registration

1

Navigate to Azure Portal

Go to App registrations in Microsoft Entra admin center

2

Add API Permission

Select your app → API permissions → Add a permission → Microsoft Graph

3

Select Permission Type

Choose Application permissions or delegated permissions and search for Contacts.Read

4

Grant Admin Consent

Application permissions always require admin consent.