• Skip to main content
  • Select language
  • Skip to search
MDN Web Docs
  • Technologies
    • HTML
    • CSS
    • JavaScript
    • Graphics
    • HTTP
    • APIs / DOM
    • WebExtensions
    • MathML
  • References & Guides
    • Learn web development
    • Tutorials
    • References
    • Developer Guides
    • Accessibility
    • Game development
    • ...more docs
Add-ons
  1. MDN
  2. Mozilla
  3. Add-ons
  4. Signing and distributing your add-on
  5. Submitting an add-on

Submitting an add-on

In This Article
  1. Getting help
    1. Listing on AMO
    2. Self-distribution:

This article walks you through the process of submitting an add-on. If you are just looking to submit your add-on, click here. 

Before submitting an add-on, please ensure that you have a Firefox Account connected with https://addons.mozilla.org (AMO).

If you do not have a Firefox Account, visit AMO and click “Register” at the top.

 

If you currently have a Firefox Account, you can connect it with AMO. Visit AMO, click “Log in” at the top and log in with your existing Firefox Account.

 

To get started, visit the Add-ons Developer Hub and click “Submit Your First Add-on” or “Submit a New Add-on”. Afterwards, you should reach the following page:

stepone

On this screen, you will have the option to either have your add-on listed on addons.mozilla.org (AMO) or to have your add-on signed for self-distribution. For information on listed and self-distribution add-ons, click here.

 

Prior to submitting your add-on on AMO, you must compress your add-on into one file. The file should end with one of the following extensions: .zip, .xpi, .crx, .xml. For information on what should be included in the file, read this document.

Important: the maximum file size accepted is 200 MB. If your add-on is larger than 200 MB, it will fail validation.

 

If you would like to list your add-on on AMO, click here for instructions. Otherwise, if you are planning to self-distribute, click here.

Getting help

If you encounter issues, you may reach out to us:

  • For help with add-on development, click here.

  • For assistance with regards to our policies, check out our policy contacts.

 

Listing on AMO

Please ensure that you have familiarized yourself with our Review policies and Developer Agreement prior to submitting your add-on for listing on AMO.

  1. Select “On this site” and click continue. You will be taken to the page shown below. uploadversion
  2. It’s time to upload your add-on. Click the blue “Select a file…” button, and a dialog will open up for you to select and upload the compressed file containing your add-on.  
  3. Once uploaded, the validator will check for errors.
  4. If all checks pass successfully, you should see the following message:
    passedvalidation
    Otherwise, you will receive an error similar to this:
    failedvalidation
    The error will inform you of what has failed. You will not be able to continue until the errors are resolved. Once you’ve resolved the errors, please start again from step 1.
  5. Select the platform(s) the add-on is compatible with and click continue.
  6. You will now enter details about the add-on on a screen similar to the one shown below. listinginfo
    • Name: give your add-on a unique name
    • Add-on URL: this is the URL for where your add-on will live on AMO. To change this, click “Edit”. Note: no two add-ons can have the same URL.
    • Summary: a thorough summary enables the user to understand what your add-on does and why it is useful to them. If you don't provide a useful or descriptive summary your add-on may be rejected.
    • This add-on is experimental: check the box if your add-on is experimental or otherwise not ready for general use. The add-on will be listed but will have reduced visibility. This setting can be changed in the future. If you do not want your add-on listed, please start over.
    • Select up to 2 Firefox/Firefox for Android categories for this add-on: please select the appropriate categories for your add-on.
    • Support email and website: please provide an email address and/or website where users can get in touch in the event they have questions, issues, or compliments.
    • License: please select the appropriate license for your add-on. You can click “details” beside each license to learn more about it.
    • This add-on has a privacy policy: if any data is being transmitted from the user’s device, a privacy policy is required explaining what is being sent and how it’s used. Check this box and provide the privacy policy in the provided field below it.
    • Notes to Reviewer: is the add-on complex to use? Does it require a login? If you want to provide additional information such as instructions, an account, etc. for the reviewer, please supply the information in the box provided.
  7. Please review the information you’ve entered. Once you are satisfied, click “Submit Version for Review”.  
  8. After clicking submit, you should see a screen similar to the one below. You will also receive an email confirmation.
    submitsuccess

That’s it! Your add-on has now been submitted for review. Our reviewers will review your code and update you on its status. Please be patient during this period of time.  

In the meantime, learn how to make your add-on listing appealing with these tips!

 

You can manage and check the status of your add-on by clicking here.

 

Thank you for your contribution to AMO!

 

Self-distribution:

Please ensure that you have familiarized yourself with our Developer agreement before submitting your add-on to be signed for self-distribution.

  1. Select “On your own” and click continue. You will be taken to the page shown below:
    uploadversion
  2. It’s time to upload your add-on. Click the blue “Select a file…” button, and a dialog will open up for you to select and upload the compressed file containing your add-on.
  3. Once uploaded, the validator will check for errors.
  4. If all checks pass successfully, you should see the following message:
    passedvalidation
    Otherwise, you will receive an error similar to this:
    failedvalidation
    The error will inform you of what has failed. You will not be able to continue until the errors are resolved. Once you’ve resolved the errors, please start again from step 1.
  5. Select the platform(s) the add-on is compatible with and click continue.
  6. Your add-on will be signed and available for download immediately. A screen similar to the one below should display. You will also receive an email confirmation.
    unlistedsuccess

To manage your add-ons, visit this page.

Document Tags and Contributors

Tags: 
  • Add-ons
  • Tutorial
  • WebExtensions
 Contributors to this page: andrewtruongmoz, wbamberg
 Last updated by: andrewtruongmoz, Jul 14, 2017, 5:21:49 PM
See also
  1. WebExtensions
  2. Getting started
    1. What are WebExtensions?
    2. Your first WebExtension
    3. Your second WebExtension
    4. Anatomy of a WebExtension
    5. Example WebExtensions
  3. How to
    1. Intercept HTTP requests
    2. Modify a web page
    3. Add a button to the toolbar
    4. Implement a settings page
  4. User interface
    1. Introduction
    2. Toolbar button
    3. Address bar button
    4. Sidebar
    5. Context menu items
    6. Options page
    7. Bundled web pages
    8. Notifications
    9. Address bar suggestions
    10. Developer tools panels
  5. Concepts
    1. Using the JavaScript APIs
    2. Content scripts
    3. Match patterns
    4. Internationalization
    5. Content Security Policy
    6. Native messaging
  6. Porting
    1. Porting a Google Chrome extension
    2. Porting a legacy Firefox add-on
    3. Embedded WebExtensions
    4. Comparison with the Add-on SDK
    5. Comparison with XUL/XPCOM extensions
    6. Chrome incompatibilities
    7. Differences between desktop and Android
  7. Firefox workflow
    1. Temporary Installation in Firefox
    2. Debugging
    3. Developing for Firefox for Android
    4. Getting started with web-ext
    5. web-ext command reference
    6. WebExtensions and the Add-on ID
    7. Publishing your WebExtension
  8. JavaScript APIs
    1. Browser support for JavaScript APIs
    2. alarms
    3. bookmarks
    4. browserAction
    5. browsingData
    6. commands
    7. contextMenus
    8. contextualIdentities
    9. cookies
    10. devtools.inspectedWindow
    11. devtools.network
    12. devtools.panels
    13. downloads
    14. events
    15. extension
    16. extensionTypes
    17. history
    18. i18n
    19. identity
    20. idle
    21. management
    22. notifications
    23. omnibox
    24. pageAction
    25. permissions
    26. privacy
    27. proxy
    28. runtime
    29. sessions
    30. sidebarAction
    31. storage
    32. tabs
    33. topSites
    34. types
    35. webNavigation
    36. webRequest
    37. windows
  9. Manifest keys
    1. applications
    2. author
    3. background
    4. browser_action
    5. chrome_settings_overrides
    6. chrome_url_overrides
    7. commands
    8. content_scripts
    9. content_security_policy
    10. default_locale
    11. description
    12. developer
    13. devtools_page
    14. homepage_url
    15. icons
    16. incognito
    17. manifest_version
    18. name
    19. omnibox
    20. optional_permissions
    21. options_ui
    22. page_action
    23. permissions
    24. protocol_handlers
    25. short_name
    26. sidebar_action
    27. version
    28. web_accessible_resources
  10. Themes
  11. Publishing add-ons
  12. Guides
    1. Signing and distribution overview
    2. Submit an add-on
    3. Creating an appealing listing
    4. Review policies
    5. Developer agreement
    6. Featured add-ons
    7. Contact addons.mozilla.org
  13. Community and support
  14. Channels
    1. Add-ons blog
    2. Add-on forums
    3. Stack Overflow
    4. Development newsgroup
    5. IRC Channel
  15. Legacy add-ons
  16. Legacy technologies
    1. Add-on SDK
    2. Legacy Firefox for Android
    3. Bootstrapped extensions
    4. Overlay extensions