2017 © Pedro Peláez

library mega-php-client

MEGA API Client Library for PHP.



MEGA API Client Library for PHP.

  • Sunday, December 29, 2013
  • by smartinm
  • Repository
  • 17 Watchers
  • 72 Stars
  • 77 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 37 Forks
  • 7 Open issues
  • 1 Versions
  • 1 % Grown


MEGA PHP Client Library

PHP client library for the MEGA API., (*1)

Note: This library is still under development and incomplete, so the API is subject to change., (*2)


  • PHP 5.x
  • PHP Mcrypt extension
  • PHP OpenSSL extension
  • PHP cURL extension

Creating the client

Using the constructor

$mega = new MEGA();

Using a static factory method

$mega = MEGA::create_from_login($email, $password);

This is equivalent to:, (*3)

$mega = new MEGA();
$mega->user_login_session($email, $password);

Changing the default MEGA API server


Working with public files

Download public files not require authentication., (*4)

Gettings file info

$mega = new MEGA();

$file_info = $mega->public_file_info($ph, $key);

// Print filename and size
echo 'Filename: ' . $file_info['at']['n'];
echo 'Size: ' . $file_info['s'];
$file_info = $mega->public_file_info_from_link($link);

This is equivalents to:, (*5)

$info = MEGA::parse_link($link);
$file_info = $mega->public_file_info($info['ph'], $info['key']);

Downloading public files

// Save file to current directory.
$filepath = $mega->public_file_save($ph, $key);
echo 'File saved in ' . $filepath;

// Equivalent using exported link
$filepath = $mega->public_file_save_from_link($link);
echo 'File saved in ' . $filepath;

See below for more examples., (*6)

Downloading files

Using streams

// Write to file
$fp = fopen($file, 'wb');
$size = $mega->public_file_download($ph, $key, $fp);

Returning content

// Get content using temporary stream
$content = $mega->public_file_download($ph, $key);

Saving to disk

// Save file to temporary directory.
$tmp = sys_get_temp_dir();
$file = $mega->public_file_save($ph, $key, $tmp);
echo 'File saved in ' . $file;

Private files


$mega = MEGA::create_from_user($email, $password);

$files = $mega->node_list();

// Get file info
$file_info = $mega->node_file_info($files['f'][5]);


  • The node_file_save() function is equivalent to public_file_save()
  • The node_file_download() function is equivalent to public_file_download()

User session

Saving session

$mega = MEGA::create_from_user($email, $password);

// ...

// Get current session as a base64 string
$session = MEGA::session_save($mega);

// Store in a safe place!

Restoring session

// Retrive saved session
$session = db_get_session();

// Create client from previous session
$mega = MEGA::create_from_session($session);

// ...


Operations that don't require user authentication

Method Description Status
public_file_info Request public file info Implemented
public_file_info_from_link Request public file info Implemented
public_file_download Download a public file Implemented
public_file_download_from_link Download a public file Implemented
public_file_save Download and save a public file to disk Implemented
public_file_save_from_link Download and save a public file to disk Implemented

Operations that require user authentication

Method Description Status
node_list Retrieve folder or user nodes Implemented
node_file_info Request file node info Implemented
node_file_download Download a file node Implemented
node_file_save Download and save a file node to disk Implemented
node_add Add/copy nodes Not implemented
node_delete Delete node Not implemented
node_move Move node Not implemented
node_update Set node attributes Not implemented
node_publish / node_unpublish Create/delete public handle Not implemented
node_share Create/modify/delete outgoing share Not implemented


  • This library has been written by Sergio Martín (@smartinm) as a port of official MEGA Javascript code., (*7)

  • Part of the code is based on the work done by Julien Marchand., (*8)

  • This projected is licensed under the terms of the MIT license., (*9)

Bitdeli Badge, (*10)

The Versions

29/12 2013


9999999-dev https://github.com/smartinm/mega-php-client

MEGA API Client Library for PHP.

  Sources   Download


The Requires

  • ext-mcrypt *
  • ext-openssl *
  • ext-curl *
  • php >=5.3.0


api client mega mega.co.nz