# Zoom profile image file hash

**URL:** <https://devforum.zoom.us/t/zoom-profile-image-file-hash/77047>\
**Category:** Meetings\
**Tags:** faq\
**Created:** [October 6, 2022, 4:30pm UTC](https://devforum.zoom.us/t/zoom-profile-image-file-hash/77047 "2022-10-06T16:30:56Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![jeremy.farmer](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/jeremy.farmer/32/41955_2.png) [@jeremy.farmer](https://devforum.zoom.us/u/jeremy.farmer)\
**Post date:** [October 6, 2022, 4:30pm UTC](https://devforum.zoom.us/t/zoom-profile-image-file-hash/77047/1 "2022-10-06T16:30:56Z")

</div>

* * *

### Zoom profile image file hash:

**API Endpoint(s) and/or Zoom API Event(s)**

[https://marketplace.zoom.us/docs/api-reference/zoom-api/methods/#operation/userPicture](https://marketplace.zoom.us/docs/api-reference/zoom-api/methods/#operation/userPicture)

**Description**  
I’m trying to implement updating of our Zoom users profile picture information via the /userPicture endpoint. I’m looking for a way to do a delta for what users need to have their profile picture updated based on the user profile image they have assigned in another system.

Is there any way to get a hash of their Zoom profile picture or something similar to a hash so we can do the comparison. This would prevent us from having to call the update profile picture endpoint thousands of times every time we need to do this.

Thanks!

**Error?**  
No error

**How To Reproduce**  
No reproduction steps

---

<div class="post-metadata">

**Author:** ![rarev](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/rarev/32/38939_2.png) [@rarev](https://devforum.zoom.us/u/rarev)\
**Post date:** [October 6, 2022, 5:21pm UTC](https://devforum.zoom.us/t/zoom-profile-image-file-hash/77047/2 "2022-10-06T17:21:17Z")

</div>

Hey @jeremy.farmer

I’m not to clear on what you mean by

> [@jeremy.farmer](#):
>
> I’m looking for a way to do a delta for what users need to have their profile picture updated based on the user profile image they have assigned in another system.

Could you clarify or provide more details on what exactly you mean?

Thanks!

---

<div class="post-metadata">

**Author:** ![jeremy.farmer](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/jeremy.farmer/32/41955_2.png) [@jeremy.farmer](https://devforum.zoom.us/u/jeremy.farmer)\
**Post date:** [October 6, 2022, 5:48pm UTC](https://devforum.zoom.us/t/zoom-profile-image-file-hash/77047/3 "2022-10-06T17:48:18Z")

</div>

For sure let me see if I can explain myself better 😃

Lets say I have 3 users both in an external HR system and in Zoom

user x1  
user x2  
user x3

We want to keep Zoom and our external HR system’s user profile images synchronized. So we’re looking to get a hash of the file in Zoom and a hash of the file in the external HR system and compare them to see if we need to update Zoom’s profile image

```auto

| User | Zoom Profile.png Hash | External Profile.png Hash |
| x1 | da9ab29... | da9ab29... | Matches so don't update
| x2 | 494d6e7... | 1fc7878... | Does not match so update zoom via /userPicture
| x3 | da9ab29... | da9ab29... | Matches so don't update

```

Hopefully that makes more sense!

---

<div class="post-metadata">

**Author:** ![rarev](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/rarev/32/38939_2.png) [@rarev](https://devforum.zoom.us/u/rarev)\
**Post date:** [October 7, 2022, 5:28pm UTC](https://devforum.zoom.us/t/zoom-profile-image-file-hash/77047/4 "2022-10-07T17:28:46Z")

</div>

Hey @jeremy.farmer

Thanks for the clarification. At the moment, we don’t expose any such hash with the available APIs for uploading an image. I can certainly propose this as a feature request to our development team.

Let me know if you have any other questions!

---

<div class="post-metadata">

**Author:** ![jeremy.farmer](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/jeremy.farmer/32/41955_2.png) [@jeremy.farmer](https://devforum.zoom.us/u/jeremy.farmer)\
**Post date:** [October 10, 2022, 3:20pm UTC](https://devforum.zoom.us/t/zoom-profile-image-file-hash/77047/5 "2022-10-10T15:20:10Z")

</div>

I think this would be a very helpful feature to have,

Something similar to what Azure AD (via graph) does would be sufficient I would think,

It provides an [etag](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag) of the photo that we can look at to see if the file has changed or not

> Typically, the ETag value is a hash of the content, a hash of the last modification timestamp, or just a revision number.

```auto
{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('user identifier')/photos",
    "value": [
        {
            "@odata.mediaContentType": "image/jpeg",
            "@odata.mediaEtag": "W/\"ee1014ee2467240b9639d261d165f470e0a3248fd1118b313f3d3264fa195d47\"",
            "id": "48x48",
            "height": 48,
            "width": 48
        },
        {
            "@odata.mediaContentType": "image/jpeg",
            "@odata.mediaEtag": "W/\"ee1014ee2467240b9639d261d165f470e0a3248fd1118b313f3d3264fa195d47\"",
            "id": "64x64",
            "height": 64,
            "width": 64
        },
        {
            "@odata.mediaContentType": "image/jpeg",
            "@odata.mediaEtag": "W/\"ee1014ee2467240b9639d261d165f470e0a3248fd1118b313f3d3264fa195d47\"",
            "id": "96x96",
            "height": 96,
            "width": 96
        },
        {
            "@odata.mediaContentType": "image/jpeg",
            "@odata.mediaEtag": "W/\"ee1014ee2467240b9639d261d165f470e0a3248fd1118b313f3d3264fa195d47\"",
            "id": "120x120",
            "height": 120,
            "width": 120
        },
        {
            "@odata.mediaContentType": "image/jpeg",
            "@odata.mediaEtag": "W/\"ee1014ee2467240b9639d261d165f470e0a3248fd1118b313f3d3264fa195d47\"",
            "id": "240x240",
            "height": 240,
            "width": 240
        },
        {
            "@odata.mediaContentType": "image/jpeg",
            "@odata.mediaEtag": "W/\"ee1014ee2467240b9639d261d165f470e0a3248fd1118b313f3d3264fa195d47\"",
            "id": "360x360",
            "height": 360,
            "width": 360
        },
        {
            "@odata.mediaContentType": "image/jpeg",
            "@odata.mediaEtag": "W/\"ee1014ee2467240b9639d261d165f470e0a3248fd1118b313f3d3264fa195d47\"",
            "id": "432x432",
            "height": 432,
            "width": 432
        },
        {
            "@odata.mediaContentType": "image/jpeg",
            "@odata.mediaEtag": "W/\"ee1014ee2467240b9639d261d165f470e0a3248fd1118b313f3d3264fa195d47\"",
            "id": "504x504",
            "height": 504,
            "width": 504
        },
        {
            "@odata.mediaContentType": "image/jpeg",
            "@odata.mediaEtag": "W/\"ee1014ee2467240b9639d261d165f470e0a3248fd1118b313f3d3264fa195d47\"",
            "id": "648x648",
            "height": 648,
            "width": 648
        }
    ]
}

```

And would be hugely helpful if it showed up in the Zoom list users endpoint /users that way I wouldn’t have to send a request for every user to get that information I can just look there and see if it needs to be updated for that specific user in the list.

```auto
{
  "next_page_token": "8V8HigQkzm2O5r9RUn31D9ZyJHgrmFfbLa2",
  "page_count": 100,
  "page_number": 1,
  "page_size": 30,
  "total_records": 8482,
  "users": [
    {
      "created_at": "2019-06-01T07:58:03Z",
      "custom_attributes": [
        {
          "key": "cbf_cywdkexrtqc73f97gd4w6g",
          "name": "A1",
          "value": "2323"
        }
      ],
      "dept": "Developers",
      "email": "jchill@example.com",
      "employee_unique_id": "HqDyI037Qjili1kNsSIrIg",
      "first_name": "Jill",
      "group_ids": [
        "t-_-d56CSWG-7BF15LLrOw"
      ],
      "id": "KDcuGIm1QgePTO8WbOqwIQ",
      ***"profile_pic_media_etag": "ee1014ee2467240b9639d261d165f470e0a3248fd1118b313f3d3264fa195d47",***
      "im_group_ids": [
        "t-_-d56CSWG-7BF15LLrOw"
      ],
      "last_client_version": "5.2.45120.0906(win)",
      "last_login_time": "2022-03-25T05:40:55Z",
      "last_name": "Chill",
      "plan_united_type": "1",
      "pmi": 6589310093,
      "role_id": "0",
      "status": "active",
      "timezone": "Asia/Shanghai",
      "type": 1,
      "verified": 1
    }
  ]
}

```

Just my thoughts though, appreciate your helping looking into it!
