 <p>My apologies, I am able to set user metadata through <a href="https://github.com/softlayer/softlayer-java" rel="nofollow">SoftLayer API Client for Java</a>, here a java script, try this and let me know if you continue having issues please. Make sure to use master branch from the client.</p> <p>Script:</p> <pre><code>package com.softlayer.api.VirtualGuest; import com.softlayer.api.ApiClient; import com.softlayer.api.RestApiClient; import com.softlayer.api.service.virtual.Guest; import java.util.ArrayList; import java.util.List; /** * This script sets the data that will be written to the configuration drive. * * Important Manual Page: * http://sldn.softlayer.com/reference/services/SoftLayer_Virtual_Guest/setUserMetadata * * @license &lt;http://sldn.softlayer.com/article/License&gt; * @authon SoftLayer Technologies, Inc. &lt;sldn@softlayer.com&gt; * @version 0.2.2 (master branch) */ public class SetUserMetadata { /** * This is the constructor, is used to set user metadata */ public SetUserMetadata() { // Declare your SoftLayer username and apiKey String username = "set me"; String apiKey = "set me"; // Create client ApiClient client = new RestApiClient().withCredentials(username, apiKey); Guest.Service guestService = Guest.service(client, new Long(206659875)); // Setting the medatada String metadataTest = "test1RcvRcv"; List&lt;String&gt; metadata = new ArrayList&lt;String&gt;(); metadata.add(metadataTest); try { boolean result = guestService.setUserMetadata(metadata); } catch (Exception e) { System.out.println("Error: " + e); } } /** * This is the main method which makes use of SetUserMetadata method. * * @param args * @return Nothing */ public static void main(String[] args) { new SetUserMetadata(); } } </code></pre> <p><strong>References:</strong></p> <ul> <li><a href="http://sldn.softlayer.com/reference/services/SoftLayer_Virtual_Guest/setUserMetadata" rel="nofollow">SoftLayer_Virtual_Guest::setUserMetadata</a></li> </ul>