Revision History | |
---|---|
December 2011 | |
First version | |
April 2012 | |
Updated for Akeeba Backup 3.5 | |
July 2012 | |
Updated for Akeeba Backup 3.5.3 | |
January 2016 | |
Updated for advanced Akeeba Solo JSON API | |
June 2016 | |
backupid information | |
October 2016 | |
Updated for Akeeba Backup 5.1.4 / Akeeba Solo 2.0.3 |
Table of Contents
Akeeba Backup's JSON API is provided as a means to automate various functions of the Akeeba Backup component for Joomla!, Akeeba Backup for WordPress plugin and Akeeba Solo standalone application without having to visit their back-end, from remote client applications. The client applications can be written in any programming language supporting HTTP transfers and JSON encoding/decoding, such as PHP, JavaScript, Delphi, .NET, Java and C/C++. The main design goals of the API are:
Uniformity. The interface is uniform across all of our backup products (Akeeba Backup for Joomla!, Akeeba Backup for WordPress, Akeeba Solo).
Backwards compatibility. The interface remains backward compatible for the longest time possible. Backwards incompatible changes are noted in the documentation, by API version.
Ease of use. Basic functionality should be as simple to implement as possible, with a minimal list of requirements.
Security. The web is a treacherous place. Eavesdropping is fairly easy to accomplish, so are man-in-the-middle and replay attacks. However, not all websites are equipped with a valid, commercially signed SSL certificate which rules out this kind of attacks. As a result, we implement two alternate methods of authentication and two encryption standards, ranging from fairly trivial to quite secure.
Functionality. The API should be agile enough to provide methods not only for running backups, but also fetching statistics as well as remotely downloading files, without the need to resort to another API or protocol. Everything should be catered for by the JSON API over standard HTTP transfers.
This guide is meant to be the reference to programming against this interface.
For a real world implementation in PHP please take a look at Akeeba Remote Control
CLI. You can also run it with the --verbose
switch
to see the communications taking place between the client and the server.
We believe this is the best interactive demonstration of the API
implementation.