ESC
Type to search...

ProfilePhoto.ReadWrite.All

Export JSON
Export CSV
Copy URL
Print
ApplicationDelegated Read/Write All Resources

Allows the app to read and write all profile photos of users and groups, 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 and write profile photo of a user or group

Allows the app to read and write all profile photos of users and groups, without a signed-in user

Delegated Permission Admin consent required

Read and write profile photo of a user or group

Allows the app to read and write all profile photos of users and groups, on behalf of the signed-in user.

Properties

Microsoft Graph v1.0 exact-category-docs

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

Property Type Description
id string Read-only.
height int32Nullable The height of the photo. Read-only.
width int32Nullable The width of the photo. Read-only.

JSON Representation

Microsoft Graph v1.0 exact-category-docs

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

JSON representation
{
  "id": "String",
  "height": 240,
  "width": 240
}

Relationships

Relationships metadata is not available for this permission mapping.

View resource documentation

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
GET /groups/{id}/photos/{size}
GET /me/contactfolders/{contactFolderId}/contacts/{id}/photo
GET /me/contactfolders/{contactFolderId}/contacts/{id}/photo/$value
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/{contactFolderId}/contacts/{id}/photo
GET /users/{id | userPrincipalName}/contactfolders/{contactFolderId}/contacts/{id}/photo/$value
GET /users/{id | userPrincipalName}/contacts/{id}/photo
GET /users/{id | userPrincipalName}/contacts/{id}/photo/$value
GET /users/{id | userPrincipalName}/joinedGroups/{id}/photos
GET /users/{id | userPrincipalName}/photo
GET /users/{id | userPrincipalName}/photo/$value
GET /users/{id | userPrincipalName}/photos/{size}
PATCH /groups/{id}/photo/$value
PATCH /me/contactfolders/{contactFolderId}/contacts/{id}/photo/$value
PATCH /me/contacts/{id}/photo/$value
PATCH /me/photo/$value
PATCH /users/{id | userPrincipalName}/contactfolders/{contactFolderId}/contacts/{id}/photo/$value
PATCH /users/{id | userPrincipalName}/contacts/{id}/photo/$value
PATCH /users/{id | userPrincipalName}/photo/$value
PUT /groups/{id}/photo/$value
PUT /me/contactfolders/{contactFolderId}/contacts/{id}/photo/$value
PUT /me/contacts/{id}/photo/$value
PUT /me/photo/$value
PUT /teams/{id}/photo/$value
PUT /users/{id | userPrincipalName}/contactfolders/{contactFolderId}/contacts/{id}/photo/$value
PUT /users/{id | userPrincipalName}/contacts/{id}/photo/$value
PUT /users/{id | userPrincipalName}/photo/$value
DELETE /groups/{id}/photo/$value
DELETE /me/photo/$value
DELETE /users/{id | userPrincipalName}/photo/$value
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
GET /groups/{id}/photos/{size}
GET /me/contactfolders/{contactFolderId}/contacts/{id}/photo
GET /me/contactfolders/{contactFolderId}/contacts/{id}/photo/$value
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/{contactFolderId}/contacts/{id}/photo
GET /users/{id | userPrincipalName}/contactfolders/{contactFolderId}/contacts/{id}/photo/$value
GET /users/{id | userPrincipalName}/contacts/{id}/photo
GET /users/{id | userPrincipalName}/contacts/{id}/photo/$value
GET /users/{id | userPrincipalName}/joinedGroups/{id}/photos
GET /users/{id | userPrincipalName}/photo
GET /users/{id | userPrincipalName}/photo/$value
GET /users/{id | userPrincipalName}/photos/{size}
PATCH /me/contactfolders/{contactFolderId}/contacts/{id}/photo/$value
PATCH /me/contacts/{id}/photo/$value
PATCH /users/{id | userPrincipalName}/contactfolders/{contactFolderId}/contacts/{id}/photo/$value
PATCH /users/{id | userPrincipalName}/contacts/{id}/photo/$value
PUT /groups/{id}/photo/$value
PUT /me/contactfolders/{contactFolderId}/contacts/{id}/photo/$value
PUT /me/contacts/{id}/photo/$value
PUT /me/photo/$value
PUT /teams/{id}/photo/$value
PUT /users/{id | userPrincipalName}/contactfolders/{contactFolderId}/contacts/{id}/photo/$value
PUT /users/{id | userPrincipalName}/contacts/{id}/photo/$value
PUT /users/{id | userPrincipalName}/photo/$value
DELETE /groups/{id}/photo/$value
DELETE /me/photo/$value
DELETE /users/{id | userPrincipalName}/photo/$value
Exact Microsoft Learn PowerShell match

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

Commands
Get-MgGroupPhoto /groups/{id}/photos
List photos
Get-MgTeamPhoto /me/photo/$value
Get profilePhoto
Get-MgTeamPhotoContent /me/photo/$value
Get profilePhoto
Get-MgUserPhoto /me/photo/$value
Get profilePhoto
Get-MgUserPhotoContent /me/photo/$value
Get profilePhoto
Remove-MgUserPhotoContent /me/photo/$value
Delete profilePhoto
Set-MgTeamPhotoContent /me/contacts/{id}/photo/$value
Update profilePhoto
Set-MgUserPhotoContent /me/contacts/{id}/photo/$value
Update profilePhoto
Exact Microsoft Learn PowerShell match

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

Commands
Get-MgBetaGroupPhoto /groups/{id}/photos
List photos
Remove-MgBetaUserPhotoContent /me/photo/$value
Delete profilePhoto
Set-MgBetaTeamPhotoContent /me/contacts/{id}/photo/$value
Update profilePhoto
Set-MgBetaUserPhotoContent /me/contacts/{id}/photo/$value
Update profilePhoto

Code Examples

C# / .NET SDK
Delete profilePhoto
// 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
await graphClient.Me.Photo.Content.DeleteAsync();
JavaScript
Delete profilePhoto
const options = {
	authProvider,
};

const client = Client.init(options);

await client.api('/me/photo/$value')
	.delete();
PowerShell
Delete profilePhoto
Import-Module Microsoft.Graph.Users
# A UPN can also be used as -UserId.
Remove-MgUserPhotoContent -UserId $userId
Python
Delete profilePhoto
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python

await graph_client.me.photo.content.delete()

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 ProfilePhoto.ReadWrite.All

4

Grant Admin Consent

Application permissions always require admin consent.