Support

Documentation

Endpoints and API versions per backup software version

When you give Akeeba Remote CLI just the site's URL it will try to auto-detect the connection specifics every time it runs a command. This requires making a lot of requests, it's slow, and it can possibly result to a misleading error in some rare use cases. Instead, it makes more sense to use a specific endpoint depending on which version of Akeeba Backup for Joomla, Akeeba Backup for WordPress, or Akeeba Solo you are using on your site.

API v1 versus API v2 versus API v3

The Akeeba Remote JSON API comes in three big version families.

API v1 was the original specification which was available from its first appearance in 2010 up to late-2023. It's not a “pure” JSON API in that it encapsulates the actual JSON input and output. Originally, the encapsulation was used to encrypt the data sent to and received from the server since, at the time it was first implemented, HTTPS required very expensive, paid SSL/TLS certificates and dedicated IP addresses on the server. The encryption was removed from the Remote JSON API specification in September 2014 because it could be broken with a Padding Oracle attack. At the same time, HTTPS had become commonplace thanks to free of charge TLS certificates issued by Let's Encrypt which had launched two years prior. The API v1 is no longer supported and removed from new versions of our backup software starting Q3 2023.

API v2 is the current specification and made its first appearance in October 2020. It is a pure JSON API. It is meant to be used only over HTTPS. It does not use its own encryption.

API v3 is a newer API specification which is only available on Joomla 4.2.0 and later, using Akeeba Backup 9.6.0 and later. It is a pure JSON API. Authentication is performed by Joomla itself, not our own code. It is meant to be used only over HTTPS. It does not use its own encryption.

Akeeba Remote CLI supports both API v1 and API v2 endpoints to ensure compatibility with old sites. Akeeba Remote CLI only supports the unencrypted version of the v1 API, even on sites running versions of our software released prior to September 2014 (you shouldn't; they can get your site hacked, as we warned you back in Septmeber 2014). If you have a version of Akeeba Backup or Akeeba Solo released after October 2020 we very strongly recommend that you use the API v2 endpoint. It uses slightly less resources and it's a little bit faster.

Akeeba Remote CLI does not currently support API v3.

API levels

Regardless of whether you access the Remote JSON API over the v1 or v2 API, the implementation of the API has changed over time. The very first versions only allowed taking backups. Other features have been added and removed in subsequent versions, and some features may have gained new parameters, or had some of their parameters made mandatory. Every time such a change happens we change the API Level.

Akeeba Remote CLI supports a minimum of API Level 320 which was introduced with Akeeba Backup for Joomla 3.3.0 in July 2011, running on a minimum of Joomla! 1.5 and PHP 5.1. The maximum supported API level is the latest API level at the time your version of Akeeba Remote CLI was released.

The differences between API levels means that some older sites may not support some features, namely:

  • Reporting whether it's the free of charge Core or the for-a-fee Professional edition of the software

  • Exporting and importing backup profiles

Everything else will still work. Crucially, taking backups will work across all API levels by any client which supports the latest published API level, such as the latest published version of Akeeba Remote CLI. This is a conscious choice, ensuring that Akeeba Remote CLI will maintain backwards compatibility with older Akeeba Backup versions over a period of decades.

[Note]Note

Why do we not support even older API versions?

Technically, there is no good reason. Practically, the minimum API Level we support supports Joomla 1.5 which was discontinued in September 2012 and PHP 5.1 which was discontinued in August 2006.

For starters, a site which is still using this kind of ancient versions of Joomla and PHP is either completely abandoned with no visitors and no need for backup, or completely hacked due to the number of well-known critical vulnerabilities. This means there's little to no practical utility supporting even that ancient API Level.

Moreover, supporting an API Level requires us to be able to run a test site with that version of Akeeba Backup, Joomla, and PHP. As of March 2023 the oldest version of PHP we can conceivably access is PHP 5.6, limiting us to running Joomla 1.5.26 and Akeeba Backup 3.4.6; anything older wouldn't run correctly or at all. There's no reasonable way to run a PHP version older than that other than spinning up a Windows XP virtual machine and installing archived versions of PHP, Apache, and MySQL. Meanwhile, we're talking about software which has been discontinued the better part of two decades, making its practical utility even more questionable. So, why go through all that trouble if nobody has a use case for it?

As for Joomla 1.0: no version of Akeeba Backup for Joomla! 1.0 ever had the Akeeba Remote JSON API. In the Joomla 1.0 days Joomla itself had an XML-RPC application and that's what we implemented in Akeeba Backup's predecessor, JoomlaPack. XML-RPC is a completely different use case which requires a completely different client than what we're doing with Remote CLI. The practical problems of how do you run these old versions is there —even more so, since they are even older— and of course the practical utility for that is exactly zero: nobody in their right mind would be using a live site still running on Joomla! 1.0 after early 2009 at the latest.

Conventions in the examples

In all of the following examples, we assume your site's URL is https://www.example.com. For WordPress, we assume the plugin is installed in wp-content/plugins/akeebabackupwp.

The preferred API endpoint for each version is marked in bold type.

Akeeba Backup for Joomla!

Akeeba Backup 3.3.0 to 7.4.0.1

Only the API v1 endpoint is supported: https://www.example.com/index.php?option=com_akeeba&view=json&format=raw

On some servers you may want to try format=component if format=raw does not work for you.

Akeeba Backup 7.5.x and 8.x

The following API v1 endpoint is supported, but not recommended: https://www.example.com/index.php?option=com_akeeba&view=json&format=raw

The following API v2 endpoint is recommended instead: https://www.example.com/index.php?option=com_akeeba&view=api&format=raw

Akeeba Backup 9.0.0 and later

Only the following API v2 endpoint is supported: https://www.example.com/index.php?option=com_akeebabackup&view=api&format=raw

Akeeba Backup for WordPress

Akeeba Backup for WordPress 1.0.0 to 2.4.0

Only the following API v1 endpoint is supported:

https://www.example.com/wp-content/plugins/akeeabackupwp/app/index.php?option=com_akeeba&view=json&format=raw

Akeeba Backup for WordPress 2.4.1 to 7.3.2.1

Only the following API v1 endpoints are supported:

https://www.example.com/wp-content/plugins/akeeabackupwp/app/index.php?option=com_akeeba&view=json&format=raw

and

https://www.example.com/wp-content/plugins/akeeabackupwp/app/remote.php?option=com_akeeba&view=json&format=raw

Akeeba Backup for WordPress 7.4.0 to 7.7.0

The following API v1 endpoints are supported but NOT recommended:

https://www.example.com/wp-content/plugins/akeeabackupwp/app/index.php?option=com_akeeba&view=json&format=raw

and

https://www.example.com/wp-content/plugins/akeeabackupwp/app/remote.php?option=com_akeeba&view=json&format=raw

The following API v2 endpoint is supported and recommended:

https://www.example.com/wp-content/plugins/akeeabackupwp/app/index.php?option=com_akeeba&view=api&format=raw

Akeeba Backup for WordPress 7.7.1 and later 7.x versions

The following API v1 endpoints are supported but NOT recommended:

https://www.example.com/wp-content/plugins/akeeabackupwp/app/index.php?option=com_akeeba&view=json&format=raw

and

https://www.example.com/wp-content/plugins/akeeabackupwp/app/remote.php?option=com_akeeba&view=json&format=raw

The following API v2 endpoints are supported:

https://www.example.com/wp-content/plugins/akeeabackupwp/app/index.php?option=com_akeeba&view=api&format=raw

and

https://www.example.com/wp-admin/admin-ajax.php?action=akeebabackup_api&option=com_akeeba&view=api&format=raw

Akeeba Solo

Akeeba Solo1.0.0 to 2.4.0

Only the following API v1 endpoint is supported:

https://www.example.com/index.php?option=com_akeeba&view=json&format=raw

Akeeba Solo 2.4.1 to 7.3.2.1

Only the following API v1 endpoints are supported:

https://www.example.com/index.php?option=com_akeeba&view=json&format=raw

and

https://www.example.com/remote.php?option=com_akeeba&view=json&format=raw

Akeeba Solo 7.4.0 and later 7.x versions

The following API v1 endpoints are supported but NOT recommended:

https://www.example.com/index.php?option=com_akeeba&view=json&format=raw

and

https://www.example.com/remote.php?option=com_akeeba&view=json&format=raw

The following API v2 endpoint is supported and recommended:

https://www.example.com/index.php?option=com_akeeba&view=api&format=raw