# Failing to change avatar using Discourse API

**URL:** <https://meta.discourse.org/t/failing-to-change-avatar-using-discourse-api/261828>\
**Category:** Development\
**Tags:** rest-api\
**Created:** [April 16, 2023, 6:39am UTC](https://meta.discourse.org/t/failing-to-change-avatar-using-discourse-api/261828 "2023-04-16T06:39:25Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![EGreg](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/egreg/32/133614_2.png) [@EGreg](https://meta.discourse.org/u/EGreg)\
**Post date:** [April 16, 2023, 6:39am UTC](https://meta.discourse.org/t/failing-to-change-avatar-using-discourse-api/261828/1 "2023-04-16T06:39:25Z")

</div>

I have an API key that has “Global” access, for “All Users”.

I do this:

```php
$updateAvatarUrl = sprintf("%s/u/%s/preferences/avatar/pick.json", $this->apiHost, $username);
$headers = array(
    "Api-Key: ".$this->apiKey,
    "Api-Username: ".$this->apiUsername
);
$data = array(
    'upload_id' => $uploadId,
    'type' => 'uploaded'
);
$response = Q_Utils::put($updateAvatarUrl, $data, null, null, $headers);

```

But the result I get back is:

```json
{"failed":"FAILED"}

```

I tried also sending it as `application/json`. Here is the full CURL info:

```php
$url = 'https://community.intercoin.app/u/fdhsjkgfs_dghjkl';

Headers:
0:
"Host: community.intercoin.app"
1:
"User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (K HTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"
2:
"Content-Type: application/x-www-form-urlencoded"
3:
"Content-Length: 28"
4:
"Api-Key: 3cf975095fd50e22e3631dc916c6d2c7694419ed421338dd7bba432ba1e71417"
5:
"Api-Username: system"

body:

upload_id=2159&type=uploaded

```

You can see that [Profile - fdhsjkgfs\_dghjkl - Intercoin](https://community.intercoin.app/u/fdhsjkgfs_dghjkl) exists.

The upload ID indeed exists too, this is what I get after I do the upload:

```json
{
  "id": 2159,
  "url": "https://community.intercoin.app/uploads/intercoin/original/2X/c/ce6121fe1571faa6c41ad28afdf6c30939ffbc56.png",
  "original_filename": "400.png",
  "filesize": 20636,
  "width": 360,
  "height": 360,
  "thumbnail_width": 360,
  "thumbnail_height": 360,
  "extension": "png",
  "short_url": "upload://trIsPeqspDPRwbMsOnjtDCBBMwK.png",
  "short_path": "/uploads/short-url/trIsPeqspDPRwbMsOnjtDCBBMwK.png",
  "retain_hours": null,
  "human_filesize": "20.2 KB"
}

```

So what is the problem? I followed what the docs say…

---

_[View the full topic](https://meta.discourse.org/t/failing-to-change-avatar-using-discourse-api/261828)._
