$proxy = new SoapClient('http://magentohost/api/soap/?wsdl'); $sessionId = $proxy->login('apiUser', 'apiKey'); $newImage = array( 'file' => array( 'name' => 'file_name', 'content' => base64_encode(file_get_contents('product.jpg')), 'mime' => 'image/jpeg' ), 'label' => 'Cool Image Through Soap', 'position' => 2, 'types' => array('small_image'), 'exclude' => 0 ); $imageFilename = $proxy->call($sessionId, 'product_media.create', array('Sku', $newImage));There is just too much 'new' for me in there to get a handle on it.