Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Python library for the API.
branch: master
Failed to load latest commit information.
mega It is possible to find a folder with a "path"
tests improved tests
.gitignore ignore update
.travis.yml travis api info file started Updated readme basic unit testing
requirements.txt anonymous login anonymous login

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.
Something went wrong with that request. Please try again.