Python library for the API.
Switch branches/tags
Nothing to show
Latest commit 1b7135a Oct 29, 2015 @richardasaurus Update
Failed to load latest commit information.
mega It is possible to find a folder with a "path" Nov 9, 2013
tests improved tests May 18, 2013
.gitignore ignore update May 17, 2013
.travis.yml travis May 18, 2013 api info file started May 23, 2013 Update Oct 29, 2015 basic unit testing May 15, 2013
requirements.txt anonymous login May 18, 2013 anonymous login May 18, 2013

Deprecated is now deprecated, please use the official SDK

I aim to write a wrapper for the SDK when i have the time to do so.

Build Status Downloads

Python library for the API, currently supporting:

  • login
  • uploading
  • downloading
  • deleting
  • searching
  • sharing
  • renaming
  • moving files

This is a work in progress, further functionality coming shortly.

For more detailed information see

How To Use

Install package

#Run the following command, or run setup from the latest github source
sudo pip install


from mega import Mega

Create an instance of

mega = Mega()
# add the verbose option for print output on some functions
mega = Mega({'verbose': True})

Login to Mega

m = mega.login(email, password)
# login using a temporary anonymous account
m = mega.login()

Get user details

details = m.get_user()

Get account balance (Pro accounts only)

balance = m.get_balance()

Get account disk quota

quota = m.get_quota()

Get account storage space

# specify unit output kilo, mega, gig, else bytes will output
space = m.get_storage_space(kilo=True)

Get account files

files = m.get_files()

Upload a file, and get its public link

file = m.upload('myfile.doc')
# see for destination and filename options

Upload a file to a destination folder

folder = m.find('my_mega_folder')
m.upload('myfile.doc', folder[0])

Download a file from URL or file obj, optionally specify destination folder

file = m.find('myfile.doc')
m.download_url('!utYjgSTQ!OM4U3V5v_W4N5edSo0wolg1D5H0fwSrLD3oLnLuS9pc'), '/home/john-smith/Desktop')
# specify optional download filename (download_url() supports this also), '/home/john-smith/Desktop', '')

Import a file from URL, optionally specify destination folder

folder_node = m.find('Documents')[1]
m.import_public_url('!utYjgSTQ!OM4U3V5v_W4N5edSo0wolg1D5H0fwSrLD3oLnLuS9pc', dest_node=folder_node)

Create a folder


Rename a file or a folder

file = m.find('myfile.doc')
m.rename(file, 'my_file.doc')

Moving a file or a folder into another folder

file = m.find('myfile.doc')
folder = m.find('myfolder')
m.move(file[0], folder)

Search account for a file, and get its public link

file = m.find('myfile.doc')

Trash or destroy a file from URL or its ID



files = m.find('myfile.doc')
if files:

Add/remove contacts



1. Python2.7+
2. Python requests (>0.10) -
3. PyCrypto -


Test .py files can be found in, run these to ensure is working 100%.


Feel free to pull the source and make changes and additions.

Learn about the API at, more documentation coming shortly.