Add-ons

Note

These APIs are experimental and are currently being worked on. Endpoints may change without warning. The only authentication method available at the moment is the internal one.

Autocomplete

Similar to add-ons search endpoint above, this endpoint allows you to search through public add-ons. Because it’s meant as a backend for autocomplete though, there are a couple key differences:

  • No pagination is supported. There are no next, prev or count fields, and passing page_size or page has no effect, a maximum of 10 results will be returned at all times.
  • Only a subset of fields are returned.
GET /api/v3/addons/autocomplete/
Query Parameters:
 
  • q (string) – The search query.
  • app (string) – Filter by add-on application availability.
  • appversion (string) – Filter by application version compatibility. Pass the full version as a string, e.g. 46.0. Only valid when the app parameter is also present.
  • author (string) – Filter by exact author username.
  • category (string) – Filter by category slug. app and type parameters need to be set, otherwise this parameter is ignored.
  • lang (string) – Activate translations in the specific language for that query. (See translated fields)
  • platform (string) – Filter by add-on platform availability.
  • tag (string) – Filter by exact tag name. Multiple tag names can be specified, separated by comma(s).
  • type (string) – Filter by add-on type.
  • sort (string) – The sort parameter. The available parameters are documented in the table below.
Response JSON Object:
 
  • results (array) – An array of add-ons. Only the id, icon_url, name and url fields are supported though.

Detail

This endpoint allows you to fetch a specific add-on by id, slug or guid.

Note

Non-public add-ons, or add-ons with only unlisted versions, require authentication and either reviewer permissions or a user account listed as a developer of the add-on.

Note

This endpoint will have the add-ons it can access reduced to public add-ons and non-public add-ons that you own in the future. If you have permission to access non-public add-ons you do not own please use the internal add-on detail API.

GET /api/v3/addons/addon/(int:id|string:slug|string:guid)/
Query Parameters:
 
  • lang (string) – Activate translations in the specific language for that query. (See translated fields)
Response JSON Object:
 
  • id (int) – The add-on id on AMO.
  • authors (array) – Array holding information about the authors for the add-on.
  • authors[].id (int) – The id for an author.
  • authors[].name (string) – The name for an author.
  • authors[].url (string) – The link to the profile page for an author.
  • authors[].picture_url (string) – URL to a photo of the user, or /static/img/anon_user.png if not set. For performance reasons this field is omitted from search results.
  • average_daily_users (int) – The average number of users for the add-on per day.
  • categories (object) – Object holding the categories the add-on belongs to.
  • categories[app_name] (array) – Array holding the category slugs the add-on belongs to for a given add-on application. (Combine with the add-on type to determine the name of the category).
  • current_beta_version (object) – Object holding the current beta version of the add-on, if it exists. For performance reasons the release_notes field is omitted and the license field omits the text property.
  • current_version (object) – Object holding the current version of the add-on. For performance reasons the release_notes field is omitted and the license field omits the text property.
  • default_locale (string) – The add-on default locale for translations.
  • description (string|object|null) – The add-on description (See translated fields).
  • edit_url (string) – The URL to the developer edit page for the add-on.
  • guid (string) – The add-on extension identifier.
  • has_eula (boolean) – The add-on has an End-User License Agreement that the user needs to agree with before installing (See add-on EULA and privacy policy).
  • has_privacy_policy (boolean) – The add-on has a Privacy Policy (See add-on EULA and privacy policy).
  • homepage (string|object|null) – The add-on homepage (See translated fields).
  • icon_url (string) – The URL to icon for the add-on (including a cachebusting query string).
  • is_disabled (boolean) – Whether the add-on is disabled or not.
  • is_experimental (boolean) – Whether the add-on has been marked by the developer as experimental or not.
  • is_featured (boolean) – The add-on appears in a featured collection.
  • is_source_public (boolean) – Whether the add-on source is publicly viewable or not.
  • name (string|object|null) – The add-on name (See translated fields).
  • last_updated (string) – The date of the last time the add-on was updated by its developer(s).
  • latest_unlisted_version (object|null) – Object holding the latest unlisted version of the add-on. This field is only present if the user has unlisted reviewer permissions, or is listed as a developer of the add-on.
  • previews (array) – Array holding information about the previews for the add-on.
  • previews[].id (int) – The id for a preview.
  • previews[].caption (string|object|null) – The caption describing a preview (See translated fields).
  • previews[].image_url (string) – The URL (including a cachebusting query string) to the preview image.
  • previews[].thumbnail_url (string) – The URL (including a cachebusting query string) to the preview image thumbnail.
  • public_stats (boolean) – Boolean indicating whether the add-on stats are public or not.
  • ratings (object) – Object holding ratings summary information about the add-on.
  • ratings.count (int) – The number of user ratings for the add-on.
  • ratings.average (float) – The average user rating for the add-on.
  • ratings.bayesian_average (float) – The bayesian average user rating for the add-on.
  • requires_payment (boolean) – Does the add-on require payment, non-free services or software, or additional hardware.
  • review_url (string) – The URL to the review page for the add-on.
  • slug (string) – The add-on slug.
  • status (string) – The add-on status.
  • summary (string|object|null) – The add-on summary (See translated fields).
  • support_email (string|object|null) – The add-on support email (See translated fields).
  • support_url (string|object|null) – The add-on support URL (See translated fields).
  • tags (array) – List containing the text of the tags set on the add-on.
  • theme_data (object) – Object holding lightweight theme (Persona) data. Only present for themes (Persona).
  • type (string) – The add-on type.
  • url (string) – The (absolute) add-on detail URL.
  • weekly_downloads (int) – The number of downloads for the add-on per week.

Possible values for the status field / parameter:

Value Description
beta Beta (Valid for files only)
lite Preliminarily Reviewed
public Fully Reviewed
deleted Deleted
pending Pending approval (Valid for themes only)
disabled Disabled by Mozilla
rejected Rejected (Valid for themes only)
nominated Awaiting Full Review
incomplete Incomplete
unreviewed Awaiting Preliminary Review
lite-nominated Preliminarily Reviewed and Awaiting Full Review
review-pending Flagged for further review (Valid for themes only)

Possible values for the keys in the compatibility field, as well as the app parameter in the search API:

Value Description
android Firefox for Android
firefox Firefox
seamonkey SeaMonkey
thunderbird Thunderbird

Note

For possible version values per application, see valid application versions.

Possible values for the current_version.files[].platform field:

Value Description
all All
mac Mac
linux Linux
android Android
windows Windows

Possible values for the type field / parameter:

Note

For backwards-compatibility reasons, the value for Theme is persona. theme refers to a Complete Theme.

Value Description
theme Complete Theme
search Search Engine
persona Theme
language Language Pack (Application)
extension Extension
dictionary Dictionary

Add-on and Version Submission

See Uploading a version.

Versions List

This endpoint allows you to list all versions belonging to a specific add-on.

GET /api/v3/addons/addon/(int:addon_id|string:addon_slug|string:addon_guid)/versions/

Note

Non-public add-ons, or add-ons with only unlisted versions, require authentication and either reviewer permissions or a user account listed as a developer of the add-on.

Query Parameters:
 
  • filter (string) – The filter to apply.
  • lang (string) – Activate translations in the specific language for that query. (See translated fields)
  • page (int) – 1-based page number. Defaults to 1.
  • page_size (int) – Maximum number of results to return for the requested page. Defaults to 25.
Response JSON Object:
 
  • count (int) – The number of versions for this add-on.
  • next (string) – The URL of the next page of results.
  • previous (string) – The URL of the previous page of results.
  • results (array) – An array of versions.

By default, the version list API will only return public versions (excluding versions that have incomplete, disabled, deleted, rejected or flagged for further review files) - you can change that with the filter query parameter, which may require authentication and specific permissions depending on the value:

Value Description
all_without_unlisted Show all listed versions attached to this add-on. Requires either reviewer permissions or a user account listed as a developer of the add-on.
all_with_unlisted Show all versions (including unlisted) attached to this add-on. Requires either reviewer permissions or a user account listed as a developer of the add-on.
all_with_deleted Show all versions attached to this add-on, including deleted ones. Requires admin permissions.
only_beta Show beta versions only.

Version Detail

This endpoint allows you to fetch a single version belonging to a specific add-on.

GET /api/v3/addons/addon/(int:addon_id|string:addon_slug|string:addon_guid)/versions/(int: id)/
Query Parameters:
 
  • lang (string) – Activate translations in the specific language for that query. (See translated fields)
Response JSON Object:
 
  • id (int) – The version id.
  • channel (string) – The version channel, which determines its visibility on the site. Can be either unlisted or listed.
  • compatibility (object) –

    Object detailing which applications the version is compatible with. The exact min/max version numbers in the object correspond to valid application versions. Example:

    {
      "compatibility": {
        "android": {
          "min": "38.0a1",
          "max": "43.0"
        },
        "firefox": {
          "min": "38.0a1",
          "max": "43.0"
        }
      }
    }
    
  • compatibility[app_name].max (object) – Maximum version of the corresponding app the version is compatible with. Should only be enforced by clients if is_strict_compatibility_enabled is true.
  • compatibility[app_name].min (object) – Minimum version of the corresponding app the version is compatible with.
  • edit_url (string) – The URL to the developer edit page for the version.
  • files (array) – Array holding information about the files for the version.
  • files[].id (int) – The id for a file.
  • files[].created (string) – The creation date for a file.
  • files[].hash (string) – The hash for a file.
  • files[].platform (string) – The platform for a file.
  • files[].id – The size for a file, in bytes.
  • files[].is_restart_required (boolean) – Whether the file requires a browser restart to work once installed or not.
  • files[].is_webextension (boolean) – Whether the file is a WebExtension or not.
  • files[].status (int) – The status for a file.
  • files[].url (string) – The (absolute) URL to download a file. An optional src query parameter can be added to indicate the source page (See download sources).
  • files[].permissions[] (array) – Array of the webextension permissions for this File, as strings. Empty for non-webextensions.
  • license (object) – Object holding information about the license for the version.
  • license.name (string|object|null) – The name of the license (See translated fields).
  • license.text (string|object|null) – The text of the license (See translated fields).
  • license.url (string|null) – The URL of the full text of license.
  • release_notes (string|object|null) – The release notes for this version (See translated fields).
  • reviewed (string) – The date the version was reviewed at.
  • is_strict_compatibility_enabled (boolean) – Whether or not this version has strictCompatibility. set.
  • version (string) – The version number string for the version.

Add-on Feature Compatibility

This endpoint allows you to fetch feature compatibility information for a a specific add-on by id, slug or guid.

GET /api/v3/addons/addon/(int:id|string:slug|string:guid)/feature_compatibility/

Note

Non-public add-ons, or add-ons with only unlisted versions, require authentication and either reviewer permissions or a user account listed as a developer of the add-on.

Response JSON Object:
 
  • e10s (int) – The add-on e10s compatibility. Can be one of the following:
Value Description
compatible multiprocessCompatible marked as true in the install.rdf.
compatible-webextension A WebExtension, so compatible.
incompatible multiprocessCompatible marked as false in the install.rdf.
unknown multiprocessCompatible has not been set.

Add-on EULA and Privacy Policy

This endpoint allows you to fetch an add-on EULA and privacy policy.

GET /api/v3/addons/addon/(int:id|string:slug|string:guid)/eula_policy/

Note

Non-public add-ons, or add-ons with only unlisted versions, require authentication and either reviewer permissions or a user account listed as a developer of the add-on.

Response JSON Object:
 
  • eula (string|object|null) – The text of the EULA, if present (See translated fields).
  • privacy_policy (string|object|null) – The text of the Privacy Policy, if present (See translated fields).

Language Tools

This endpoint allows you to list all public language tools add-ons available on AMO.

GET /api/v3/addons/language-tools/

Note

Because this endpoint is intended to be used to feed a page that displays all available language tools in a single page, it is not paginated as normal, and instead will return all results without obeying regular pagination parameters. The ordering is left undefined, it’s up to the clients to re-order results as needed before displaying the add-ons to the end-users.

Query Parameters:
 
  • app (string) – Mandatory. Filter by add-on application availability.
  • lang (string) – Activate translations in the specific language for that query. (See translated fields)
Response JSON Object:
 
  • results (array) – An array of language tools.
  • results[].id (int) – The add-on id on AMO.
  • results[].current_version (object) – Object holding the current version of the add-on. For performance reasons the release_notes field is omitted and the license field omits the text property.
  • results[].default_locale (string) – The add-on default locale for translations.
  • results[].name (string|object|null) – The add-on name (See translated fields).
  • results[].locale_disambiguation (string) – Free text field allowing clients to distinguish between multiple dictionaries in the same locale but different spellings. Only present when using the Language Tools endpoint.
  • results[].target_locale (string) – For dictionaries and language packs, the locale the add-on is meant for. Only present when using the Language Tools endpoint.
  • results[].type (string) – The add-on type.
  • results[].url (string) – The (absolute) add-on detail URL.