Helpful Tip: Uploading user pictures requires multipart request

I’m “oh-so-close” with getting things working in a Visual Studio C# solution…I’ve combed through the responses above (thanks everyone!), but I must be missing that proverbial comma somewhere…

I’m getting a 400 error with a response of {“code”:120,“message”:“Only jpg/jpeg, gif or png image file can be uploaded.”}

I can take the same jpg file and the same parameters, run it through PostMan with a form-data body that just uploads the file and it changes my profile picture in Zoom just fine (so the Zoom URL, token, permissions and auth are all good)

I can grab the Base64 encoded string and it decodes back to my favorite cartoon character

Below is what’s getting captured by Fiddler as it’s on the way out from Visual Studio…

Content-Type: multipart/form-data; boundary=8cf33af937264db9229432

--8cf33af937264db9229432
Content-Type: image/jpeg; charset=utf-8
Content-Disposition: form-data; name=pic_file; filename=woodstock.jpg; filename*=utf-8''woodstock.jpg

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
--8cf33af937264db9229432--

Does the filename have to be defined a certain way? Quotes around certain areas? I can post the VS code if it would be helpful.

Hope something stands out that I’m just overlooking… Thanks! :slight_smile: Derry

Hi @lyons,

Thanks for reaching out!

Can you let me know if this template gives you better luck?

var client = new RestClient("https://api.zoom.us/v2/users/{userId}/picture");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "multipart/form-data");
request.AddHeader("Authorization", "Bearer {token}");
request.AddFile("pic_file", "/Users/someone/Downloads/file.jpg");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);

Thanks!
Will

Yep - that did the trick! Points me to something in the way I’m building the REST call in our custom library. I’ll keep poking on that, but this helps get me back in the game. THANKS! :slight_smile:

Awesome, glad to hear it :slight_smile:

So… looking back through the comments, a couple of questions:

  1. Can a Zoom engineer verify that the API will accept a base64 encoded string? The above examples all seem to ultimately end in the file upload (application/octet-stream)

  2. Attached are the top parts of the content body of the two requests – the first one returns 400, the second one works just fine.
    image

  3. Is there any detailed logging inside of Zoom with more specifics on what’s throwing the 400 error?

Thanks all! :slight_smile:

Hi @lyons,

I believe the issue here is with how you’re sending the file in the first request. I don’t believe this endpoint accepts the base64 encoded file.

Let me know if this helps to clarify,
Will

Big thanks to Jonathan_Champ. I too spent my entire day on this. I ended up getting a status of 200 with no status message. I assumed it was a success, but it wasn’t. Apparently, zoom uses 200 as an ERROR code. Who coded this API??
Zoom engineers, you need to put your resources together to come up with a humane API for a trivial task of profile picture updates. People are suffering!! Sorry.
You need to send goodies to people like Jonathan who are here to help.
-ycd

2 Likes

Greetings, @ycd,

Thank you so much for your feedback about our documentation. We really appreciate the details you shared about areas we can improve upon—this insight will help us significantly improve how we approach our documentation. Please be assured this valuable feedback will be shared with our documentation team as well.

With Care,
Donte