CINXE.COM
Amazon Developer Services
<!doctype html><html lang="en_US" class="a-no-js" data-19ax5a9jf="dingo"> <head><script type="text/javascript" src="/_static/js/bundle-playback.js?v=HxkREWBo" charset="utf-8"></script> <script type="text/javascript" src="/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("https://developer.amazon.com/","20200617235735","https://web.archive.org/","web","/_static/", "1592438255"); </script> <link rel="stylesheet" type="text/css" href="/_static/css/banner-styles.css?v=S1zqJCYt" /> <link rel="stylesheet" type="text/css" href="/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <script>var aPageStart = (new Date()).getTime();</script><meta charset="utf-8"/> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://web.archive.org/web/20200617235735/https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5LVXJD4');</script> <!-- End Google Tag Manager --> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Amazon Developer Services</title> <meta name="google-site-verification" content="wfEDah_6uJe9Y7uIfLrVycd_efr8wQ9YO-fM_5MI5w0"/> <meta name="google-site-verification" content="Eu8BqTWMhRRdfCAdqUh2RYb3SjAiuFp4wmgTtGcteM0"/> <link rel="alternate" href="https://web.archive.org/web/20200617235735/https://developer.amazon.com/" hreflang="en_US"/> <link rel="canonical" href="https://web.archive.org/web/20200617235735/https://developer.amazon.com/"/> <meta name="google-site-verification" content="KHmp6TUPKc1gHlM9TuB842pcV7TxZVV6TgenZtsYoNY"/> <meta name="msvalidate.01" content="9761B379C1B64F587D71BA40337FDD07"/> <meta name="description" content="The Amazon Developer Services portal allows developers to distribute and sell Android and HTML5 web apps to millions of customers on the Amazon Appstore, and build voice experiences for services and devices by adding skills to Alexa, the voice service that powers Amazon Echo."/> <meta name="keywords" content="amazon appstore,alexa,devices,android apps"> <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"> <script language="JavaScript" type="text/javascript"> var digitalData ={ page:{ pageInfo: { pageInstanceID: "/dx/dex-home", path: "/", pageID: "", pageTitle: "Amazon Developer Services", pageType: "DeX", primaryCategory: "blank", pageName: "", language: "en_US" } }, user:{ userID: "", ipAddress: "207.241.232.97" } }; var urlSplit = "/".split("/"); var trailingSlash = urlSplit.pop(); var pTitle = trailingSlash; if (trailingSlash == ""){ pTitle = urlSplit.pop() } if ("dex-home".indexOf("search") !== -1) { digitalData.page.pageInfo.searchResultsNum = ""; } if ("dex-home".indexOf("dex-home") !== -1){ digitalData.page.pageInfo.pageID = "Home"; digitalData.page.pageInfo.pageTitle = "Home"; digitalData.page.pageInfo.primaryCategory = "Home"; } else { digitalData.page.pageInfo.pageID = pTitle; pTitle = pTitle.replace(/(^|-)[a-z]/g,function(f){return f.toUpperCase();}); pTitle = pTitle.replace(/-/g, ''); digitalData.page.pageInfo.pageTitle = pTitle; var pCat = digitalData.page.pageInfo.primaryCategory; pCat = pCat.replace(/(^|-)[a-z]/g,function(f){return f.toUpperCase();}); pCat = pCat.replace(/-/g, ''); digitalData.page.pageInfo.primaryCategory = pCat; } var pageNameStr = "" + digitalData.page.pageInfo.primaryCategory; //Todo: add in logic for sub-categories when AOI is implemented. if (digitalData.page.pageInfo.pageTitle != null){ if (pageNameStr != ""){ pageNameStr += ":"; } pageNameStr += digitalData.page.pageInfo.pageTitle; } digitalData.page.pageInfo.pageName = pageNameStr; (function (w) { w.URLSearchParams = w.URLSearchParams || function (searchString) { var self = this; self.searchString = searchString; self.get = function (name) { var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(self.searchString); if (results == null) { return null; } else { return decodeURI(results[1]) || 0; } }; } })(window); </script> <script src="//web.archive.org/web/20200617235735js_/https://assets.adobedtm.com/2c02c31d2aed638ba6c6ca977df6b73f9ff514c3/satelliteLib-38635b7dc936a1789c429e0c77550bc7a78f33af.js"></script> <script type="text/javascript"> (function() { var didInit = false; function initMunchkin() { if(didInit === false) { didInit = true; Munchkin.init('365-EFI-026'); } } var s = document.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = '//web.archive.org/web/20200617235735/https://munchkin.marketo.net/munchkin.js'; s.onreadystatechange = function() { if (this.readyState == 'complete' || this.readyState == 'loaded') { initMunchkin(); } }; s.onload = initMunchkin; document.getElementsByTagName('head')[0].appendChild(s); })(); </script> <link rel="stylesheet" href="https://web.archive.org/web/20200617235735cs_/https://images-na.ssl-images-amazon.com/images/I/51AZ-Jz5kmL._RC|51IB+wfP8qL.css,01evdoiemkL.css,01K+Ps1DeEL.css,31pdJv9iSzL.css,01W6EiNzKkL.css,11UGC+GXOPL.css,21LK7jaicML.css,11L58Qpo0GL.css,21kyTi1FabL.css,01ruG+gDPFL.css,01YhS3Cs-hL.css,21GwE3cR-yL.css,019SHZnt8RL.css,01wAWQRgXzL.css,21bWcRJYNIL.css,11WgRxUdJRL.css,01dU8+SPlFL.css,11ocrgKoE-L.css,01SHjPML6tL.css,111-D2qRjiL.css,01QrWuRrZ-L.css,310Imb6LqFL.css,01piEq-AdwL.css,11Z1a0FxSIL.css,01cbS3UK11L.css,21mOLw+nYYL.css,01giMEP+djL.css_.css?AUIClients/AmazonUI#us.not-trident"/> <link rel="stylesheet" href="https://web.archive.org/web/20200617235735cs_/https://images-na.ssl-images-amazon.com/images/I/7118YEZ7mNL.css?AUIClients/DeXWebsiteAUIAssets"/> </head> <body class="a-m-us a-aui_72554-c a-aui_dropdown_187959-c a-aui_pci_risk_banner_210084-c a-aui_perf_130093-c a-aui_preload_261698-c a-aui_tnr_v2_180836-c a-aui_ux_145937-c"><div id="a-page"><script type="a-state" data-a-state="{"key":"a-wlab-states"}">{"AUI_TNR_V2_180836":"C","AUI_UX_145937":"C","AUI_PRELOAD_261698":"C","AUI_72554":"C","AUI_DROPDOWN_187959":"C","AUI_PCI_RISK_BANNER_210084":"C","AUI_PERF_130093":"C"}</script> <header class="dpHeader dphThemedark"> <div class="dphTopBar clearfix"> <div class="dphLeft"> <div class="dphMenuToggle"> <i class="dphMenuIcon"></i> <i class="dphMenuBackIcon"></i> </div> <a class="dphLogo" href="/web/20200617235735/https://developer.amazon.com/"> <img src="https://web.archive.org/web/20200617235735im_/https://m.media-amazon.com/images/G/01/mobile-apps/dex/logos/amazonDeveloperLogo1x._V516058140_.png" srcset="https://web.archive.org/web/20200617235735im_/https://m.media-amazon.com/images/G/01/mobile-apps/dex/logos/amazonDeveloperLogo1x._V516058140_.png 1x, https://web.archive.org/web/20200617235735im_/https://m.media-amazon.com/images/G/01/mobile-apps/dex/logos/amazonDeveloperLogo2x._V516058140_.png 2x" alt="Amazon Developer Logo"> </a> </div> <div class="dphRight"> <a href="/web/20200617235735/https://developer.amazon.com/home.html" class="dphConsole dphLink">Developer Console</a> <div class="dphUserInfo"> <a class="dphLink" href="/web/20200617235735/https://developer.amazon.com/settings/console/registration?return_to=/">Sign In</a> </div> <style> #notification-counter { position: absolute; top: 2px; padding: 0 2px; min-width: 20px; background: #BF2727; color: white; font-size: 11px; border-radius: 3px; line-height: 20px; text-align: center; } #notification_click_icon { width: 32px; height: 32px; background-color: #31465f; text-align: center; line-height: 32px; border-radius: 50%; margin-right: 15px; color: white; font-weight: 300; cursor: pointer; } #notification-placeholder { position: absolute; top:45px; } #notification_flyout_iframe_id { display: none; position: absolute; width: 425px; border: none; transform: translate(-80%); transition: all 0.2s; } @media screen and (max-width: 992px) { #notification_click_icon { position: fixed; display: inline-block; right: 52px; } #notification_click_icon ~ .dphSearch.active { position: relative; z-index: 0; } #notification-placeholder { top:28px; } #notification-counter { top: -6px; } } @media screen and (max-width: 414px) { #notification_flyout_iframe_id { transform: none; right: -99px; width: 100vw; } #notification_click_icon ~ .dphSearch.active { position: relative; z-index: 0; } } </style> <div id="navFlyout?" class="dphFlyoutItem dphDevConsoleLinkTopBar dphButton"> <span class="dphConsole dphLink">?</span> <div class="dphDropdownWrap"> <nav class="dphDropdown accrItem"> <div class="dpIconArrow accrHandle"></div> <ul class="dphDropdownList"> <li class="dphdItem"><a href="/web/20200617235735/https://developer.amazon.com/support/">Support</a></li> <li class="dphdItem"><a href="/web/20200617235735/https://developer.amazon.com/documentation/">Docs</a></li> <li class="dphdItem"><a href="https://web.archive.org/web/20200617235735/https://forums.developer.amazon.com/index.html">Forums</a></li> <li class="dphdItem"><a href="/web/20200617235735/https://developer.amazon.com/support/contact-us">Contact Us</a></li> </ul> </nav> </div> </div> <form class="dphSearch" method="get" action="/web/20200617235735/https://developer.amazon.com/search"> <button type="submit" id="searchButton" class="dphButton dphButtonSearch" disabled="true"> <svg class="dphSearchIcon" viewbox="0 0 21 21" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" shape-rendering="geometricPrecision"> <circle stroke="#000000" stroke-width="2" cx="8" cy="8" r="7" fill="transparent"></circle> <path d="M13.5,13.5 L19.5,19.5" id="Path-1" stroke="#000000" stroke-width="2.6" stroke-linecap="round"></path> </svg> </button> <div class="dphSearchWrap"> <input type="search" id="search" name="query" class="dphSearchField" placeholder="Search..." autocomplete="off"/> </div> </form> </div> </div> <div class="dphNavigation accordion" data-accr_active_width="327"> <div class="dphnWrap"> <div class="dphUserInfo"> <a class="dphLink" href="/web/20200617235735/https://developer.amazon.com/settings/console/registration?return_to=/">Sign In</a> </div> <a href="/web/20200617235735/https://developer.amazon.com/home.html" class="dphConsole dphLink">Developer Console</a> <nav class="dpPrimaryNav"> <ul class="dppnItems"> </ul> </nav> <nav class="dpPrimaryNav dphDevConsoleLinkNavBar"> <ul class="dppnItems"> <li class="dppnItem accrItem"> <span class="dppnLink">Support</span> <div class="dpIconArrow accrHandle"></div> <div class="dppnFlyoutWrap"> <div class="dppnSecondaryNavWrap"> <ul class="dppnFlyout dppnSecondaryNav"> <li class="dppnfItem accrItem"><a class="dppnfLink" href="/web/20200617235735/https://developer.amazon.com/support/"><span class="dppnfTitle">Support</span></a></li> <li class="dppnfItem accrItem"><a class="dppnfLink" href="/web/20200617235735/https://developer.amazon.com/documentation/"><span class="dppnfTitle">Docs</span></a></li> <li class="dppnfItem accrItem"><a class="dppnfLink" href="https://web.archive.org/web/20200617235735/https://forums.developer.amazon.com/index.html"><span class="dppnfTitle">Forums</span></a></li> <li class="dppnfItem accrItem"><a class="dppnfLink" href="/web/20200617235735/https://developer.amazon.com/support/contact-us"><span class="dppnfTitle">Contact Us</span></a></li> </ul> </div> </div> </li> </ul> </nav> </div> </div> </header> <div id="dpHeaderPlaceholder"></div> <script> (function(){ //Set placeholder height as soon as possible to eliminate page jump "use strict"; var setHeaderPlaceholderHeight = function(header){ var placeholder = document.getElementById('dpHeaderPlaceholder'); var headerHeight = header[0].offsetHeight + "px"; placeholder.style.height = headerHeight; } var checkForHeader = function(){ var header = document.querySelectorAll('.dpHeader'); if(header.length){ setHeaderPlaceholderHeight(header); window.clearInterval(checkForHeaderInterval); } } var checkForHeaderInterval = window.setInterval(checkForHeader, 10); checkForHeader(); //Run once immediately }()); </script> <section class="content-section"> <div class="dp-launchpad" style="text-align: "> <div class="dplp-width"> <h2>Amazon Developer Services and Technologies</h2> <div class="dplp-tiles"> <div class="dplp-tile"> <a class="imgWrap" href="/web/20200617235735/https://developer.amazon.com/alexa"> <img src="https://web.archive.org/web/20200617235735im_/https://m.media-amazon.com/images/G/01/mobile-apps/dex/platform-logos/Alexa._CB513616586_.png" srcset="https://web.archive.org/web/20200617235735im_/https://m.media-amazon.com/images/G/01/mobile-apps/dex/platform-logos/Alexa._CB513616586_.png 1x, https://web.archive.org/web/20200617235735im_/https://m.media-amazon.com/images/G/01/mobile-apps/dex/platform-logos/Alexa-2x._CB513616586_.png 2x" alt="Amazon Alexa Logo"/> </a> <h3><a href="/web/20200617235735/https://developer.amazon.com/alexa">Alexa</a></h3> <p><p>Build natural voice experiences that offer customers a more intuitive way to interact with technology</p> </p> </div> <div class="dplp-tile"> <a class="imgWrap" href="/web/20200617235735/https://developer.amazon.com/apps-and-games"> <img src="https://web.archive.org/web/20200617235735im_/https://m.media-amazon.com/images/G/01/mobile-apps/dex/platform-logos/Appstore._CB513616586_.png" srcset="https://web.archive.org/web/20200617235735im_/https://m.media-amazon.com/images/G/01/mobile-apps/dex/platform-logos/Appstore._CB513616586_.png 1x, https://web.archive.org/web/20200617235735im_/https://m.media-amazon.com/images/G/01/mobile-apps/dex/platform-logos/Appstore-2x._CB513616586_.png 2x" alt="Amazon Appstore Logo"/> </a> <h3><a href="/web/20200617235735/https://developer.amazon.com/apps-and-games">Amazon Appstore</a></h3> <p><p>Develop Android apps and games for Amazon Fire TV, Fire tablet, and mobile platforms</p> </p> </div> <div class="dplp-tile"> <a class="imgWrap" href="https://web.archive.org/web/20200617235735/https://developer.amazon.com/en-US/alexa/dash-services"> <img src="https://web.archive.org/web/20200617235735im_/https://m.media-amazon.com/images/G/01/drs/Dash-Black-Orange_496x124._CB1576862131_.png" srcset="https://web.archive.org/web/20200617235735im_/https://m.media-amazon.com/images/G/01/drs/Dash-Black-Orange_496x124._CB1576862131_.png 1x, https://web.archive.org/web/20200617235735im_/https://m.media-amazon.com/images/G/01/drs/Dash-Black-Orange_992x248._CB445601240_.png 2x" alt="Amazon Dash Replenishment Logo"/> </a> <h3><a href="https://web.archive.org/web/20200617235735/https://developer.amazon.com/en-US/alexa/dash-services">Amazon Dash Replenishment</a></h3> <p><p>Build Amazon reordering experiences into your devices</p> </p> </div> <div class="dplp-tile"> <a class="imgWrap" href="https://web.archive.org/web/20200617235735/https://developer.aws/"> <img src="https://web.archive.org/web/20200617235735im_/https://m.media-amazon.com/images/G/01/mobile-apps/dex/platform-logos/AWS._CB513616586_.png" srcset="https://web.archive.org/web/20200617235735im_/https://m.media-amazon.com/images/G/01/mobile-apps/dex/platform-logos/AWS._CB513616586_.png 1x, https://web.archive.org/web/20200617235735im_/https://m.media-amazon.com/images/G/01/mobile-apps/dex/platform-logos/AWS-2x._CB513616586_.png 2x" alt="Amazon Web Services Logo"/> </a> <h3><a href="https://web.archive.org/web/20200617235735/https://developer.aws/">AWS Developer Center</a></h3> <p><p>Find tools, documentation, and sample code to build applications in your favorite language</p> </p> </div> </div> </div> </div> </section> <div class="thin-content"> <div class="table-container"> <div class="table-container-row"> <!--Don't leave white space between section and horizonte tag--> <section class="flexible-left-column"></section> <section class="static-right-column"></section> </div> </div> </div> <section class="dp-content-slot " style=""> <div class="dp-content-slot-inner container"> </div> </section> <section class="dp-content-slot " style=""> <div class="dp-content-slot-inner container"> </div> </section> <section class="dp-content-slot " style=""> <div class="dp-content-slot-inner container"> </div> </section> <section class="dp-content-slot " style=""> <div class="dp-content-slot-inner container"> </div> </section> <section class="dp-content-slot " style=""> <div class="dp-content-slot-inner container"> </div> </section> <section class="dp-content-slot " style=""> <div class="dp-content-slot-inner container"> </div> </section> <section class="dp-content-slot " style=""> <div class="dp-content-slot-inner container"> </div> </section> <section class="dp-content-slot " style=""> <div class="dp-content-slot-inner container"> </div> </section> <section class="dp-content-slot " style=""> <div class="dp-content-slot-inner container"> </div> </section> <section class="dp-content-slot " style=""> <div class="dp-content-slot-inner container"> </div> </section> <section class="dp-content-slot " style=""> <div class="dp-content-slot-inner container"> </div> </section> <section class="dp-content-slot dp-content-pixel-tracker-slot"> <div class="dp-content-slot-inner container"> </div> </section> <footer class="dpFooter"> <a class="dpfBackToTopLink" href="#">Back to top</a> <nav class="dpfNav accordion clearfix"> <div class="dpfWidth"> <div class="dpfnHideRightMargin"> <div class="dpfnColWrap"> <div class="dpfnCol"> <div class="dpfnGroup accrItem"> <div class="dpIconArrow accrHandle"></div> <h3>Terms & Agreements</h3> <ul> <li><a href="/web/20200617235735/https://developer.amazon.com/appsandservices/support/legal/da">Amazon Developer Services Agreement</a></li> <li><a href="/web/20200617235735/https://developer.amazon.com/appsandservices/support/pml.html">Program Materials License Agreement</a></li> <li><a href="/web/20200617235735/https://developer.amazon.com/public/support/mobileads/publisher-agreement.html">Mobile Ad Network Publisher Agreement</a></li> <li><a href="/web/20200617235735/https://developer.amazon.com/public/support/mobileads/participation-requirements.html">Mobile Ad Network Program Participation Requirements</a></li> <li><a href="/web/20200617235735/https://developer.amazon.com/public/support/legal/tuabg">Trademark Guidelines</a></li> <li><a href="/web/20200617235735/https://developer.amazon.com/public/support/legal/tou">Terms of Use</a></li> <li><a href="/web/20200617235735/https://developer.amazon.com/public/solutions/alexa/alexa-voice-service/support/terms-and-agreements">AVS Program Requirements</a></li> </ul> </div> </div> <div class="dpfnCol"> <div class="dpfnGroup accrItem"> <div class="dpIconArrow accrHandle"></div> <h3><a href="https://web.archive.org/web/20200617235735/https://developer.amazon.com/apps-and-games">Amazon Appstore</a></h3> <ul> <li><a href="https://web.archive.org/web/20200617235735/https://developer.amazon.com/public/solutions/platforms/android-fireos">Fire OS & Android</a></li> <li><a href="https://web.archive.org/web/20200617235735/https://developer.amazon.com/public/solutions/platforms/cross-platform">Cross-Platform Engines</a></li> </ul> </div> <div class="dpfnGroup accrItem"> <div class="dpIconArrow accrHandle"></div> <h3><a href="https://web.archive.org/web/20200617235735/https://developer.amazon.com/alexa">Alexa</a></h3> <ul> <li><a href="https://web.archive.org/web/20200617235735/https://developer.amazon.com/alexa-skills-kit">Alexa Skills Kit</a></li> <li><a href="https://web.archive.org/web/20200617235735/https://developer.amazon.com/alexa-voice-service">Alexa Voice Service</a></li> <li><a href="https://web.archive.org/web/20200617235735/https://developer.amazon.com/alexa-fund">Alexa Fund</a></li> </ul> </div> <div class="dpfnGroup accrItem"> <div class="dpIconArrow accrHandle"></div> <h3>Support</h3> <ul> <li><a href="/web/20200617235735/https://developer.amazon.com/support/">Amazon Developer Support</a></li> <li><a href="https://web.archive.org/web/20200617235735/https://forums.developer.amazon.com/">Forums</a></li> <li><a href="/web/20200617235735/https://developer.amazon.com/public/support/faq">FAQs</a></li> </ul> </div> </div> </div> <div class="dpfnColWrap"> <div class="dpfnCol"> <div class="dpfnGroup accrItem"> <div class="dpIconArrow accrHandle"></div> <h3><a href="https://web.archive.org/web/20200617235735/https://developer.amazon.com/public/apis">Services & APIs</a></h3> <ul> <li><a href="https://web.archive.org/web/20200617235735/https://developer.amazon.com/acs-devices">Amazon Common Software</a></li> <li><a href="https://web.archive.org/web/20200617235735/https://developer.amazon.com/docs/fling/understanding-the-amazon-fling-service.html">Amazon Fling SDK</a></li> <li><a href="https://web.archive.org/web/20200617235735/https://developer.amazon.com/app-testing-service/tya/dashboard.html">App Testing Service</a></li> <li><a href="https://web.archive.org/web/20200617235735/https://developer.amazon.com/docs/app-submission-api/overview.html">App Submission API</a></li> <li><a href="https://web.archive.org/web/20200617235735/https://developer.amazon.com/docs/adm/overview.html">Device Messaging</a></li> <li><a href="https://web.archive.org/web/20200617235735/https://developer.amazon.com/frustration-free-setup">Frustration-Free Setup</a></li> <li><a href="https://web.archive.org/web/20200617235735/https://developer.amazon.com/docs/in-app-purchasing/iap-overview.html">In-App Purchasing</a></li> <li><a href="https://web.archive.org/web/20200617235735/https://developer.amazon.com/apps-and-games/test">Live App Testing</a></li> <li><a href="https://web.archive.org/web/20200617235735/https://developer.amazon.com/apps-and-games/login-with-amazon">Login with Amazon</a></li> <li><a href="https://web.archive.org/web/20200617235735/https://developer.amazon.com/apps-and-games/merch">Merch by Amazon</a></li> <li><a href="https://web.archive.org/web/20200617235735/https://developer.amazon.com/apps-and-games/mobile-ads">Mobile Ads</a></li> </ul> </div> </div> <div class="dpfnCol"> <div class="dpfnGroup accrItem"> <div class="dpIconArrow accrHandle"></div> <h3>Blogs</h3> <ul> <li><a href="https://web.archive.org/web/20200617235735/https://developer.amazon.com/public/community/blog">Amazon Developer Blog</a></li> <li><a href="https://web.archive.org/web/20200617235735/https://aws.amazon.com/blogs/aws/">AWS Blog</a></li> </ul> </div> <div class="dpfnGroup accrItem"> <div class="dpIconArrow accrHandle"></div> <h3><a href="https://web.archive.org/web/20200617235735/https://developer.amazon.com/devices">Devices</a></h3> <ul> <li><a href="https://web.archive.org/web/20200617235735/https://developer.amazon.com/echo">Amazon Echo</a></li> <li><a href="https://web.archive.org/web/20200617235735/https://developer.amazon.com/amazon-tap">Amazon Tap</a></li> <li><a href="https://web.archive.org/web/20200617235735/https://developer.amazon.com/public/solutions/devices/fire-tv">Amazon Fire TV</a></li> <li><a href="/web/20200617235735/https://developer.amazon.com/dash-services">Amazon Dash Services</a></li> <li><a href="https://web.archive.org/web/20200617235735/https://developer.amazon.com/public/solutions/devices/fire-tablets">Fire Tablets</a></li> </ul> </div> </div> </div> </div> </div> </nav> <div class="dpfSocialLocal clearfix"> <div class="dpfWidth"> <div class="dpfLocale"> <nav class="dpLangSwitcher dpsfFlyout"> <span class="dplsTitle">Language</span> <div class="dplsSwitch"> <span class="dplsCurrent dpsfFlyoutCurrent"> <i class="dpsfIcon dpsfIconGlobe"></i> English </span> <div class="dplsOptionsWrap dpsfFlyoutWrap"> <ul class="dplsOptions dpsfFlyoutContent"> <li class="dplsOption dpsfFlyoutItem dplsOptionActive"> <a data-locale="en_US" href="/web/20200617235735/https://developer.amazon.com/"> English </a> </li> <li class="dplsOption dpsfFlyoutItem "> <a data-locale="zh_CN" href="/web/20200617235735/https://developer.amazon.com/zh/"> Chinese (中文) </a> </li> <li class="dplsOption dpsfFlyoutItem "> <a data-locale="ja_JP" href="/web/20200617235735/https://developer.amazon.com/ja/"> Japanese (日本語) </a> </li> <li class="dplsOption dpsfFlyoutItem "> <a data-locale="de_DE" href="/web/20200617235735/https://developer.amazon.com/de/"> German (Deutsch) </a> </li> <li class="dplsOption dpsfFlyoutItem "> <a data-locale="fr_FR" href="/web/20200617235735/https://developer.amazon.com/fr/"> French (Français) </a> </li> <li class="dplsOption dpsfFlyoutItem "> <a data-locale="it_IT" href="/web/20200617235735/https://developer.amazon.com/it/"> Italian (Italiano) </a> </li> <li class="dplsOption dpsfFlyoutItem "> <a data-locale="es_ES" href="/web/20200617235735/https://developer.amazon.com/es/"> Spanish (España) </a> </li> <li class="dplsOption dpsfFlyoutItem "> <a data-locale="es_MX" href="/web/20200617235735/https://developer.amazon.com/es-mx/"> Spanish (México) </a> </li> <li class="dplsOption dpsfFlyoutItem "> <a data-locale="pt_BR" href="/web/20200617235735/https://developer.amazon.com/pt-br/"> Portuguese (Brasil) </a> </li> </ul> </div> </div> </nav> </div> <div class="dpfSocial"> <span class="dpfSocialTitle"> Follow Us: </span> <a href="https://web.archive.org/web/20200617235735/https://www.facebook.com/AmazonAppDev"> <img src="https://web.archive.org/web/20200617235735im_/https://images-na.ssl-images-amazon.com/images/G/01/mobile-apps/dex/logo-facebook._V290989945_.png" alt="facebook_icon"/> </a> <a href="https://web.archive.org/web/20200617235735/https://www.twitter.com/AmazonAppDev"> <img src="https://web.archive.org/web/20200617235735im_/https://images-na.ssl-images-amazon.com/images/G/01/mobile-apps/dex/logo-twitter._V290989945_.png" alt="twitter_icon"/> </a> <a href="/web/20200617235735/https://developer.amazon.com/public/community/blog"> <img src="https://web.archive.org/web/20200617235735im_/https://images-na.ssl-images-amazon.com/images/G/01/mobile-apps/dex/logo-blog._V290989945_.png" alt="blog_icon"/> </a> </div> </div> </div> <div class="dpfAreaOfInterest dpsfFlyout"> <span class="dpfaCurrent"> <i class="dpsfIcon dpsfIconDots"></i> </span> <div class="dpfWidth dpsfFlyoutWrap"> <div class="dpfaItems dpsfFlyoutContent"> <h3><hza:string id="area_of_interest_title"/></h3> <div class="dpfaItem dpsfFlyoutItem"> <a href="/web/20200617235735/https://developer.amazon.com/alexa"> <span class="dpfaiText">Alexa</span> <img src="https://web.archive.org/web/20200617235735im_/https://m.media-amazon.com/images/G/01/mobile-apps/dex/platform-logos/white/Alexalogoheaderwhite._V506548913_.png" alt="Alexa"/> </a> </div> <div class="dpfaItem dpsfFlyoutItem"> <a href="/web/20200617235735/https://developer.amazon.com/apps-and-games"> <span class="dpfaiText">Amazon Appstore</span> <img src="https://web.archive.org/web/20200617235735im_/https://m.media-amazon.com/images/G/01/mobile-apps/dex/platform-logos/white/Appstorelogowhite._V506548913_.png" alt="Amazon Appstore"/> </a> </div> <div class="dpfaItem dpsfFlyoutItem"> <a href="https://web.archive.org/web/20200617235735/https://aws.amazon.com/"> <span class="dpfaiText">Amazon Web Services</span> <img src="https://web.archive.org/web/20200617235735im_/https://m.media-amazon.com/images/G/01/mobile-apps/dex/platform-logos/white/AWS_logo_RGB_WHT._CB1506540482_.png" alt="Amazon Web Services"/> </a> </div> <div class="dpfaItem dpsfFlyoutItem"> <a href="/web/20200617235735/https://developer.amazon.com/dash-services"> <span class="dpfaiText">Amazon Dash Services</span> <img src="https://web.archive.org/web/20200617235735im_/https://m.media-amazon.com/images/G/01/mobile-apps/dex/platform-logos/white/DashLogoWhite._V506548913_.png" alt="Amazon Dash Services"/> </a> </div> </div> </div> </div> <div class="dpfCopyright"> © 2010-2020, Amazon.com, Inc. or its affiliates. All Rights Reserved. </div> <script type="text/javascript">_satellite.pageBottom()</script> </footer> <script> (function(f,h,Q,F){function G(a){v&&v.tag&&v.tag(q(":","aui",a))}function w(a,b){v&&v.count&&v.count("aui:"+a,0===b?0:b||(v.count("aui:"+a)||0)+1)}function m(a){try{return a.test(navigator.userAgent)}catch(b){return!1}}function y(a,b,c){a.addEventListener?a.addEventListener(b,c,!1):a.attachEvent&&a.attachEvent("on"+b,c)}function q(a,b,c,e){b=b&&c?b+a+c:b||c;return e?q(a,b,e):b}function H(a,b,c){try{Object.defineProperty(a,b,{value:c,writable:!1})}catch(e){a[b]=c}return c}function ua(a,b){var c=a.length, e=c,g=function(){e--||(R.push(b),S||(setTimeout(T,0),S=!0))};for(g();c--;)da[a[c]]?g():(A[a[c]]=A[a[c]]||[]).push(g)}function va(a,b,c,e,g){var d=h.createElement(a?"script":"link");y(d,"error",e);g&&y(d,"load",g);a?(d.type="text/javascript",d.async=!0,c&&/AUIClients|images[/]I/.test(b)&&d.setAttribute("crossorigin","anonymous"),d.src=b):(d.rel="stylesheet",d.href=b);h.getElementsByTagName("head")[0].appendChild(d)}function ea(a,b){return function(c,e){function g(){va(b,c,d,function(b){U?w("resource_unload"): d?(d=!1,w("resource_retry"),g()):(w("resource_error"),a.log("Asset failed to load: "+c));b&&b.stopPropagation?b.stopPropagation():f.event&&(f.event.cancelBubble=!0)},e)}if(fa[c])return!1;fa[c]=!0;w("resource_count");var d=!0;return!g()}}function wa(a,b,c){for(var e={name:a,guard:function(c){return b.guardFatal(a,c)},logError:function(c,d,e){b.logError(c,d,e,a)}},g=[],d=0;d<c.length;d++)I.hasOwnProperty(c[d])&&(g[d]=V.hasOwnProperty(c[d])?V[c[d]](I[c[d]],e):I[c[d]]);return g}function B(a,b,c,e,g){return function(d, h){function n(){var a=null;e?a=h:"function"===typeof h&&(p.start=C(),a=h.apply(f,wa(d,k,l)),p.end=C());if(b){I[d]=a;a=d;for(da[a]=!0;(A[a]||[]).length;)A[a].shift()();delete A[a]}p.done=!0}var k=g||this;"function"===typeof d&&(h=d,d=F);b&&(d=d?d.replace(ga,""):"__NONAME__",W.hasOwnProperty(d)&&k.error(q(", reregistered by ",q(" by ",d+" already registered",W[d]),k.attribution),d),W[d]=k.attribution);for(var l=[],m=0;m<a.length;m++)l[m]=a[m].replace(ga,"");var p=ha[d||"anon"+ ++xa]={depend:l,registered:C(), namespace:k.namespace};c?n():ua(l,k.guardFatal(d,n));return{decorate:function(a){V[d]=k.guardFatal(d,a)}}}}function ia(a){return function(){var b=Array.prototype.slice.call(arguments);return{execute:B(b,!1,a,!1,this),register:B(b,!0,a,!1,this)}}}function X(a,b){return function(c,e){e||(e=c,c=F);var g=this.attribution;return function(){z.push(b||{attribution:g,name:c,logLevel:a});var d=e.apply(this,arguments);z.pop();return d}}}function J(a,b){this.load={js:ea(this,!0),css:ea(this)};H(this,"namespace", b);H(this,"attribution",a)}function ja(){h.body?t.trigger("a-bodyBegin"):setTimeout(ja,20)}function D(a,b){a.className=Y(a,b)+" "+b}function Y(a,b){return(" "+a.className+" ").split(" "+b+" ").join(" ").replace(/^ | $/g,"")}function ka(a){try{return a()}catch(b){return!1}}function K(){if(L){var a={w:f.innerWidth||n.clientWidth,h:f.innerHeight||n.clientHeight};5<Math.abs(a.w-Z.w)||50<a.h-Z.h?(Z=a,M=4,(a=k.mobile||k.tablet?450<a.w&&a.w>a.h:1250<=a.w)?D(n,"a-ws"):n.className=Y(n,"a-ws")):0<M&&(M--,la= setTimeout(K,16))}}function ya(a){(L=a===F?!L:!!a)&&K()}function za(){return L}function u(a,b){return"sw:"+(b||"")+":"+a+":"}function ma(){na.forEach(function(a){G(a)})}function p(a){na.push(a)}function oa(a,b,c,e){if(c){b=m(/Chrome/i)&&!m(/Edge/i)&&!m(/OPR/i)&&!a.capabilities.isAmazonApp&&!m(new RegExp(aa+"bwv"+aa+"b"));var g=u(e,"browser"),d=u(e,"prod_mshop"),f=u(e,"beta_mshop");!a.capabilities.isAmazonApp&&c.browser&&b&&(p(g+"supported"),c.browser.action(g,e));!b&&c.browser&&p(g+"unsupported"); c.prodMshop&&p(d+"unsupported");c.betaMshop&&p(f+"unsupported")}}"use strict";var N=Q.now=Q.now||function(){return+new Q},C=function(a){return a&&a.now?a.now.bind(a):N}(f.performance),O=C(),r=f.AmazonUIPageJS||f.P;if(r&&r.when&&r.register){for(var O=[],l=h.currentScript;l;l=l.parentElement)l.id&&O.push(l.id);return r.log("A copy of P has already been loaded on this page.","FATAL",O.join(" "))}var v=f.ue;G();G("aui_build_date:3.20.4-2020-05-05");var R=[],S=!1,T;T=function(){for(var a=setTimeout(T, 0),b=N();R.length;)if(R.shift()(),50<N()-b)return;clearTimeout(a);S=!1};var da={},A={},fa={},U=!1;y(f,"beforeunload",function(){U=!0;setTimeout(function(){U=!1},1E4)});var ga=/^prv:/,W={},I={},V={},ha={},xa=0,aa=String.fromCharCode(92),E,z=[],pa=f.onerror;f.onerror=function(a,b,c,e,g){g&&"object"===typeof g||(g=Error(a,b,c),g.columnNumber=e,g.stack=b||c||e?q(aa,g.message,"at "+q(":",b,c,e)):F);var d=z.pop()||{};g.attribution=q(":",g.attribution||d.attribution,d.name);g.logLevel=d.logLevel;g.attribution&& console&&console.log&&console.log([g.logLevel||"ERROR",a,"thrown by",g.attribution].join(" "));z=[];pa&&(d=[].slice.call(arguments),d[4]=g,pa.apply(f,d))};J.prototype={logError:function(a,b,c,e){b={message:b,logLevel:c||"ERROR",attribution:q(":",this.attribution,e)};if(f.ueLogError)return f.ueLogError(a||b,a?b:null),!0;console&&console.error&&(console.log(b),console.error(a));return!1},error:function(a,b,c,e){a=Error(q(":",e,a,c));a.attribution=q(":",this.attribution,b);throw a;},guardError:X(),guardFatal:X("FATAL"), guardCurrent:function(a){var b=z[z.length-1];return b?X(b.logLevel,b).call(this,a):a},log:function(a,b,c){return this.logError(null,a,b,c)},declare:B([],!0,!0,!0),register:B([],!0),execute:B([]),AUI_BUILD_DATE:"3.20.4-2020-05-05",when:ia(),now:ia(!0),trigger:function(a,b,c){var e=N();this.declare(a,{data:b,pageElapsedTime:e-(f.aPageStart||NaN),triggerTime:e});c&&c.instrument&&E.when("prv:a-logTrigger").execute(function(b){b(a)})},handleTriggers:function(){this.log("handleTriggers deprecated")},attributeErrors:function(a){return new J(a)}, _namespace:function(a,b){return new J(a,b)}};var t=H(f,"AmazonUIPageJS",new J);E=t._namespace("PageJS","AmazonUI");E.declare("prv:p-debug",ha);t.declare("p-recorder-events",[]);t.declare("p-recorder-stop",function(){});H(f,"P",t);ja();if(h.addEventListener){var qa;h.addEventListener("DOMContentLoaded",qa=function(){t.trigger("a-domready");h.removeEventListener("DOMContentLoaded",qa,!1)},!1)}var n=h.documentElement,ba=function(){var a=["O","ms","Moz","Webkit"],b=h.createElement("div");return{testGradients:function(){b.style.cssText= "background-image:-webkit-gradient(linear,left top,right bottom,from(#1E4),to(white));background-image:-webkit-linear-gradient(left top,#1E4,white);background-image:linear-gradient(left top,#1E4,white);";return~b.style.backgroundImage.indexOf("gradient")},test:function(c){var e=c.charAt(0).toUpperCase()+c.substr(1);c=(a.join(e+" ")+e+" "+c).split(" ");for(e=c.length;e--;)if(""===b.style[c[e]])return!0;return!1},testTransform3d:function(){var a=!1;f.matchMedia&&(a=f.matchMedia("(-webkit-transform-3d)").matches); return a}}}(),r=n.className,ra=/(^| )a-mobile( |$)/.test(r),sa=/(^| )a-tablet( |$)/.test(r),k={audio:function(){return!!h.createElement("audio").canPlayType},video:function(){return!!h.createElement("video").canPlayType},canvas:function(){return!!h.createElement("canvas").getContext},svg:function(){return!!h.createElementNS&&!!h.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect},offline:function(){return navigator.hasOwnProperty&&navigator.hasOwnProperty("onLine")&&navigator.onLine}, dragDrop:function(){return"draggable"in h.createElement("span")},geolocation:function(){return!!navigator.geolocation},history:function(){return!(!f.history||!f.history.pushState)},webworker:function(){return!!f.Worker},autofocus:function(){return"autofocus"in h.createElement("input")},inputPlaceholder:function(){return"placeholder"in h.createElement("input")},textareaPlaceholder:function(){return"placeholder"in h.createElement("textarea")},localStorage:function(){return"localStorage"in f&&null!== f.localStorage},orientation:function(){return"orientation"in f},touch:function(){return"ontouchend"in h},gradients:function(){return ba.testGradients()},hires:function(){var a=f.devicePixelRatio&&1.5<=f.devicePixelRatio||f.matchMedia&&f.matchMedia("(min-resolution:144dpi)").matches;w("hiRes"+(ra?"Mobile":sa?"Tablet":"Desktop"),a?1:0);return a},transform3d:function(){return ba.testTransform3d()},touchScrolling:function(){return m(/Windowshop|android|OS ([5-9]|[1-9][0-9]+)(_[0-9]{1,2})+ like Mac OS X|Chrome|Silk|Firefox|Trident.+?; Touch/i)}, ios:function(){return m(/OS [1-9][0-9]*(_[0-9]*)+ like Mac OS X/i)&&!m(/trident|Edge/i)},android:function(){return m(/android.([1-9]|[L-Z])/i)&&!m(/trident|Edge/i)},mobile:function(){return ra},tablet:function(){return sa},rtl:function(){return"rtl"===n.dir}};for(l in k)k.hasOwnProperty(l)&&(k[l]=ka(k[l]));for(var ca="textShadow textStroke boxShadow borderRadius borderImage opacity transform transition".split(" "),P=0;P<ca.length;P++)k[ca[P]]=ka(function(){return ba.test(ca[P])});var L=!0,la=0,Z= {w:0,h:0},M=4;K();y(f,"resize",function(){clearTimeout(la);M=4;K()});var ta={getItem:function(a){try{return f.localStorage.getItem(a)}catch(b){}},setItem:function(a,b){try{return f.localStorage.setItem(a,b)}catch(c){}}};n.className=Y(n,"a-no-js");D(n,"a-js");!m(/OS [1-8](_[0-9]*)+ like Mac OS X/i)||f.navigator.standalone||m(/safari/i)||D(n,"a-ember");r=[];for(l in k)k.hasOwnProperty(l)&&k[l]&&r.push("a-"+l.replace(/([A-Z])/g,function(a){return"-"+a.toLowerCase()}));D(n,r.join(" "));n.setAttribute("data-aui-build-date", "3.20.4-2020-05-05");t.register("p-detect",function(){return{capabilities:k,localStorage:k.localStorage&&ta,toggleResponsiveGrid:ya,responsiveGridEnabled:za}});m(/UCBrowser/i)||k.localStorage&&D(n,ta.getItem("a-font-class"));t.declare("a-event-revised-handling",!1);var x;try{x=navigator.serviceWorker}catch(a){G("sw:nav_err")}x&&(y(x,"message",function(a){a&&a.data&&w(a.data.k,a.data.v)}),x.controller&&x.controller.postMessage("MSG-RDY"));var na=[];(function(a){var b=a.reg,c=a.unreg;x&&x.getRegistrations? (E.when("A","a-util").execute(function(a,b){oa(a,b,c,"unregister")}),y(f,"load",function(){E.when("A","a-util").execute(function(a,c){oa(a,c,b,"register");ma()})})):(b&&(b.browser&&p(u("register","browser")+"unsupported"),b.prodMshop&&p(u("register","prod_mshop")+"unsupported"),b.betaMshop&&p(u("register","beta_mshop")+"unsupported")),c&&(c.browser&&p(u("unregister","browser")+"unsupported"),c.prodMshop&&p(u("unregister","prod_mshop")+"unsupported"),c.betaMshop&&p(u("unregister","beta_mshop")+"unsupported")), ma())})({reg:{},unreg:{}});t.declare("a-fix-event-off",!1);w("pagejs:pkgExecTime",C()-O)})(window,document,Date); (window.AmazonUIPageJS ? AmazonUIPageJS : P).load.js('https://web.archive.org/web/20200617235735/https://images-na.ssl-images-amazon.com/images/I/61-6nKPKyWL._RC|11-BZEJ8lnL.js,61xmyjKeOpL.js,21Of0-9HPCL.js,012FVc3131L.js,11S5WBtBslL.js,51CF7BmbF2L.js,11AHlQhPRjL.js,016iHgpF74L.js,11aNYFFS5hL.js,116tgw9TSaL.js,211-p4GRUCL.js,01PoLXBDXWL.js,616HiO8WWWL.js,01ezj5Rkz1L.js,11BOgvnnntL.js,31shqoNXX9L.js,01rpauTep4L.js,01iyxuSGj4L.js,01ca4SHADSL.js_.js?AUIClients/AmazonUI'); (window.AmazonUIPageJS ? AmazonUIPageJS : P).load.js('https://web.archive.org/web/20200617235735/https://images-na.ssl-images-amazon.com/images/I/71gfoHVWckL.js?AUIClients/DeXWebsiteAUIAssets'); </script> </div></body> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://web.archive.org/web/20200617235735if_/https://www.googletagmanager.com/ns.html?id=GTM-5LVXJD4" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> </html> <!-- FILE ARCHIVED ON 23:57:35 Jun 17, 2020 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 18:21:34 Nov 27, 2024. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 1.145 exclusion.robots: 0.036 exclusion.robots.policy: 0.021 esindex: 0.009 cdx.remote: 14.234 LoadShardBlock: 157.541 (3) PetaboxLoader3.datanode: 158.604 (4) load_resource: 194.344 PetaboxLoader3.resolve: 151.641 -->