This is a basic example in Java to build the proper URL and make the call.
http://customer.domain.com/mmc/rest/api/login/8/peter/peterpassword/PUBLICKEY/signature
import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import javax.crypto.Mac; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; public class ExampleCall { public static void main(String[] args) { String base = "http://customer.domain.com/mmc/rest/api/"; String method = "login/"; String params = "8/peter/peterpassword"; String keypublic = "4BFB-4943-9546-9BB8964254F2"; String keyprivate = "FBF3-4310-909C-C4BBC26F886F"; String signature = signHmacSHA256(params, keyprivate.getBytes()); System.out.println(call(base + method + params + "/" + keypublic + "/" + signature, "GET")); } public static String call(String sUrl, String method) { System.out.println(sUrl); String outputXml = ""; try { URL url = new URL(sUrl); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setDoOutput(true); conn.setUseCaches(false); conn.setRequestMethod(method); BufferedReader d = new BufferedReader(new InputStreamReader( conn.getInputStream())); String line = ""; while ((line = d.readLine()) != null) { outputXml += line; } d.close(); conn.disconnect(); return outputXml; } catch (Exception e) { e.printStackTrace(); return null; } } private static String signHmacSHA256(String message, byte[] key) { try { SecretKey signingKey = new SecretKeySpec(key, "HMACSHA256"); Mac mac = Mac.getInstance("HMACSHA256"); mac.init(signingKey); byte[] digest = mac.doFinal(message.getBytes("UTF-8")); char[] hexadecimals = new char[digest.length * 2]; for (int i = 0; i < digest.length; ++i) { for (int j = 0; j < 2; ++j) { int value = (digest[i] >> (4 - 4 * j)) & 0xf; char base = (value < 10) ? ('0') : ('a' - 10); hexadecimals[i * 2 + j] = (char) (base + value); } } return new String(hexadecimals); } catch (Exception e) { e.printStackTrace(); return message; } } }