Announcement: All noncommercial projects registered to use Earth Engine before April 15, 2025 must verify noncommercial eligibility to maintain Earth Engine access.
Stay organized with collections
Save and categorize content based on your preferences.
Introduction
Earth Engine Apps are dynamic, shareable user
interfaces for Earth Engine analyses. With Apps, experts can use simple UI elements to
leverage Earth Engine's data catalog and analytical power, for experts and non-experts alike
to use.
Apps published from Earth Engine are accessible from the
application-specific URL generated at time of publishing. No Earth Engine account is
required to view or interact with a published App. Apps selected as featured by their
creator are also available at a user-specific App Gallery
(e.g., USERNAME.users.earthengine.app).
Build Your App
Earth Engine Apps can take advantage of most of the same functions used in the Code Editor,
with a few exceptions. Additionally, we designed the User Interface API with Apps developers
in mind. If you're new to the User Interface API, take a look at
the UI API Overview.
Publishing Your App
To publish an App from the Code Editor, first load the script that you want to make into
an App, and then open the App Management panel, which you can access by clicking the
Apps button above the script section in the Code Editor.
Manage Apps Button
Then click on the NEW APP button.
New App Button
In the dialog, choose editor access, an App name, select a Google Cloud Project, and specify
the location of the App's source code. Restrict access to this App to a particular Google
Group or keep it publicly accessible using options under the Restriction tab. For publicly
accessible apps, you can also provide a custom preview image for the App as well as a
description in the Gallery tab. Click "Feature this app in your Apps Gallery" if you would
like this App to appear on your public gallery of apps available at
USERNAME.users.earthengine.app. Optionally include a custom logo in the
upper-left corner of the App by uploading an image of your choice from the Logo tab.
Choose editing access: choose who can edit the app.Publish an App: choose a name, App ID, and Cloud Project.Publish an App: select the App source code
Publish an App: choose options like featuring the App in your gallery, access
restrictions, and custom logo
Managing Your Apps
To manage an App from the Code Editor, open the App Management panel by clicking the
Apps button above the script section in the Code Editor. From here you can update
your App's configuration or delete the app.
Manage Apps
Collaborate with others on Project-owned Apps
By default, Apps that you publish under your username are only editable by you. Collaboration
on Apps is possible with Project-owned Apps. Project-owned Apps are apps that are
owned and published under a Cloud Project; anyone with the
Earth Engine Apps Publisher IAM role can edit and delete apps published under the
Cloud Project.
Learn more
about Earth Engine IAM Roles here.
To enable Project-owned Apps, choose the Cloud Project option on the
"Choose editing access" step and select the Cloud Project you would like to use, then finish
the App publishing flow as normal. The App will be published to the domain
PROJECT-ID.projects.earthengine.app and will be editable by anyone who has the
Earth Engine Apps Publisher IAM role on the Cloud Project.
Publish a Project-owned App
To view Apps for a Cloud Project, press the ADD CLOUD PROJECT button and
select the Cloud Project.
Add a Cloud Project
To share the Cloud Project with others, press the SHARE PROJECT button.
This will take you to the Cloud Console IAM page for the project where you can grant
collaborators the Earth Engine Apps Publisher IAM role.
Edit and delete Project-owned Apps
FAQ
How do I remove an App from my Apps Gallery?
The "Feature this App" checkbox on the App configuration page controls whether or not an App
appears on the Featured Apps page. Apps with restricted access cannot be featured.
Is my Earth Engine code visible?
Yes, to anyone who can access the App. Although it's not clearly visible when your app is
published, it's fairly easy for
someone to view the JavaScript for your App by watching the network traffic to their web
browser. In Chrome, for example, the JavaScript will be visible by looking at the
Network panel of the Developer Tools.
What are some possible causes of the "There was an error loading some parts of the map"
error for a published App?
Ensure all image or table assets used in your App are shared publicly or with the App. In
the asset share dialog,
select the "Anyone can read" option or choose the App name from the drop-down list. For apps
restricted to a Google Group, sharing an asset with that Google Group
will not make it viewable by the App; the assets should be shared with the
App or publicly, instead.
Why do I see an "app is not ready yet" page?
After an App is created, it may take some time for information to propagate through the
system. This is typically resolved within a few minutes. If the error persists, please
reach out for help.
Why are my drawn geometries shown in my App?
This makes it easy to show reference geometries in your App, and allows you to create Apps
where users can edit the geometries. If you don't want particular geometries to be shown or
edited, you can hide or lock individual geometry layers to prevent users from seeing or
editing them before publishing your App. See the
geometry tools documentation to learn more.
What is App quota?
To prevent errant or resource-intensive scripts from negatively impacting the availability of
the service, Earth Engine has App usage quotas on concurrent queries. This quota operates
similarly to Earth Engine's
per-user quota, except that the quota is tied to a the App, rather than a specific
user.
Does each App I make have its own quota?
Yes, separate quota is associated with each App. For older apps created with an
API Key, quota is tied to the Cloud Project from which you generate an App's API key.
If you generate multiple API keys from the same Cloud Project, they will all share the
same usage quota.
Why is a Cloud billing account required? Will I be charged for my apps?
We use Google Cloud Platform for a variety of behind-the-scenes tasks. You will not be
charged for creating an Earth Engine App. However, Google Cloud Storage is not free,
so if you choose to export the results of your analyses to Google Cloud Storage,
there may be an associated fee.
How can I understand my apps usage and quota better?
If the quota is exceeded, Earth Engine may return HTTP 429: Too Many Requests
errors. Generally, these errors are handled by the Earth Engine client library, which
wraps requests in exponential backoff, retrying the query until it succeeds. The Earth
Engine client library will retry the request five times.
If your app becomes so popular that many users get quota exceeded errors, users will see
a warning message, and Earth Engine may have to (temporarily) restrict access to the app.
To help avoid receiving 429 errors, you may want to enable caching for your application,
such as by storing cacheable aggregate statistics as Earth Engine table assets,
rather than computing them on the fly.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2023-08-09 UTC."],[[["\u003cp\u003eEarth Engine Apps are interactive interfaces built with simple UI elements to analyze and visualize Earth Engine data, accessible via a unique URL without requiring an Earth Engine account.\u003c/p\u003e\n"],["\u003cp\u003eTo build an App, users can leverage Earth Engine functions and the UI API, ensuring any used image or table assets are shared publicly for proper display.\u003c/p\u003e\n"],["\u003cp\u003eApps can be managed and published through the Code Editor's App Management panel, with options to control access, customize appearance, and feature in a user-specific App Gallery.\u003c/p\u003e\n"],["\u003cp\u003eCollaboration is enabled through Project-owned Apps, allowing multiple users with the 'Earth Engine Apps Publisher' IAM role to edit and manage Apps associated with a Cloud Project.\u003c/p\u003e\n"],["\u003cp\u003eEarth Engine Apps have usage quotas to prevent overuse, with each App having its own quota and potential for exceeding limits during high traffic; caching and optimizing App logic can help mitigate this.\u003c/p\u003e\n"]]],["Earth Engine Apps enable sharing interactive analyses. To publish, load a script in the Code Editor, open the App Management panel, and create a new app. Configure access restrictions (public or Google Group), add a preview image, description, and custom logo. Apps can be project-owned for collaboration. Asset sharing must be public or with the App for it to display. Apps have usage quotas to avoid resource issues, and excess quota will trigger HTTP 429 errors.\n"],null,["Introduction\n\n\nEarth Engine Apps are dynamic, shareable user\ninterfaces for Earth Engine analyses. With Apps, experts can use simple UI elements to\nleverage Earth Engine's data catalog and analytical power, for experts and non-experts alike\nto use.\n\n\nApps published from Earth Engine are accessible from the\napplication-specific URL generated at time of publishing. No Earth Engine account is\nrequired to view or interact with a published App. Apps selected as featured by their\ncreator are also available at a user-specific App Gallery\n(e.g., USERNAME.users.earthengine.app).\n**Note:** Access to a published App can be restricted to members of a Google Group, or it can be made publicly accessible. Publicly accessible Apps are viewable by anyone, without needing to sign in. If an App is restricted to members of a Google Group, users will need to sign in to an account that is a member of the group. \n\nBuild Your App\n\nEarth Engine Apps can take advantage of most of the same functions used in the Code Editor,\nwith a few exceptions. Additionally, we designed the User Interface API with Apps developers\nin mind. If you're new to the User Interface API, take a look at [the UI API Overview](/earth-engine/ui).\n**Important:** Any image or table assets used in your App must be shared publicly for the App to display properly. In the [share dialog](/earth-engine/asset_manager#sharing-assets), select the \"Anyone can read\" option or choose the App name from the drop-down list. \n\nPublishing Your App\n\n\nTo publish an App from the Code Editor, first load the script that you want to make into\nan App, and then open the App Management panel, which you can access by clicking the\n**Apps** button above the script section in the Code Editor.\nManage Apps Button\n\n\u003cbr /\u003e\n\n\nThen click on the **NEW APP** button.\nNew App Button\n\n\u003cbr /\u003e\n\n\nIn the dialog, choose editor access, an App name, select a Google Cloud Project, and specify\nthe location of the App's source code. Restrict access to this App to a particular Google\nGroup or keep it publicly accessible using options under the Restriction tab. For publicly\naccessible apps, you can also provide a custom preview image for the App as well as a\ndescription in the Gallery tab. Click \"Feature this app in your Apps Gallery\" if you would\nlike this App to appear on your public gallery of apps available at\n`USERNAME.users.earthengine.app`. Optionally include a custom logo in the\nupper-left corner of the App by uploading an image of your choice from the Logo tab.\n\n| **Note:** only a single Google Group can be given access. However, a Google Group can have additional Google Groups as members. [Learn about Google Groups](https://support.google.com/groups/).\n| **Note:** If you have not used Google Cloud Projects before we recommend creating a project called \"ee-USERNAME\". This same Google Cloud Project can be used for all your Apps. You may also need to select an organization if you have an institutional account. [Learn about Google Cloud Projects](https://cloud.google.com/resource-manager/docs/creating-managing-projects).\nChoose editing access: choose who can edit the app. Publish an App: choose a name, App ID, and Cloud Project. Publish an App: select the App source code Publish an App: choose options like featuring the App in your gallery, access restrictions, and custom logo \n\nManaging Your Apps\n\n\nTo manage an App from the Code Editor, open the App Management panel by clicking the\n**Apps** button above the script section in the Code Editor. From here you can update\nyour App's configuration or delete the app.\nManage Apps\n\nCollaborate with others on Project-owned Apps\n\n\nBy default, Apps that you publish under your username are only editable by you. Collaboration\non Apps is possible with *Project-owned Apps* . Project-owned Apps are apps that are\nowned and published under a Cloud Project; anyone with the\n*Earth Engine Apps Publisher* IAM role can edit and delete apps published under the\nCloud Project.\n[Learn more\nabout Earth Engine IAM Roles here](/earth-engine/cloud/roles_permissions#predefined-earth-engine-iam-roles).\n| **Important:** Deleting a Cloud Project will also result in the deletion of any Project-owned Apps under the Cloud Project, as per [Google Cloud's data deletion and\n| retention policies](https://cloud.google.com/docs/security/deletion).\n\n\nTo enable Project-owned Apps, choose the *Cloud Project* option on the\n\"Choose editing access\" step and select the Cloud Project you would like to use, then finish\nthe App publishing flow as normal. The App will be published to the domain\n`PROJECT-ID.projects.earthengine.app` and will be editable by anyone who has the\nEarth Engine Apps Publisher IAM role on the Cloud Project.\nPublish a Project-owned App\n\n\nTo view Apps for a Cloud Project, press the **ADD CLOUD PROJECT** button and\nselect the Cloud Project.\nAdd a Cloud Project\n\n\nTo share the Cloud Project with others, press the **SHARE PROJECT** button.\nThis will take you to the Cloud Console IAM page for the project where you can grant\ncollaborators the Earth Engine Apps Publisher IAM role.\nEdit and delete Project-owned Apps\n\nFAQ\n\nHow do I remove an App from my Apps Gallery?\n:\n The \"Feature this App\" checkbox on the App configuration page controls whether or not an App\n appears on the Featured Apps page. Apps with restricted access cannot be featured.\n\n\nIs my Earth Engine code visible?\n:\n Yes, to anyone who can access the App. Although it's not clearly visible when your app is\n published, it's fairly easy for\n someone to view the JavaScript for your App by watching the network traffic to their web\n browser. In Chrome, for example, the JavaScript will be visible by looking at the\n [Network panel](https://developers.google.com/web/tools/chrome-devtools/network-performance/reference) of the Developer Tools.\n\n\nWhat are some possible causes of the \"There was an error loading some parts of the map\"\nerror for a published App?\n: Ensure all image or table assets used in your App are shared publicly or with the App. In\n the [asset share dialog](/earth-engine/asset_manager#sharing-assets),\n select the \"Anyone can read\" option or choose the App name from the drop-down list. For apps\n restricted to a Google Group, sharing an asset with that Google Group\n will **not** make it viewable by the App; the assets should be shared with the\n App or publicly, instead.\n\n\nWhy do I see an \"app is not ready yet\" page?\n:\n After an App is created, it may take some time for information to propagate through the\n system. This is typically resolved within a few minutes. If the error persists, please\n [reach out for help](https://developers.google.com/earth-engine/help).\n\n\nWhy are my drawn geometries shown in my App?\n:\n This makes it easy to show reference geometries in your App, and allows you to create Apps\n where users can edit the geometries. If you don't want particular geometries to be shown or\n edited, you can hide or lock individual geometry layers to prevent users from seeing or\n editing them before publishing your App. See the\n [geometry tools documentation](https://developers.google.com/earth-engine/playground#geometry-tools) to learn more.\n\n\nWhat is App quota?\n:\n To prevent errant or resource-intensive scripts from negatively impacting the availability of\n the service, Earth Engine has App usage quotas on concurrent queries. This quota operates\n similarly to Earth Engine's [per-user quota](https://developers.google.com/earth-engine/usage), except that the quota is tied to a the App, rather than a specific\n user.\n\n\nDoes each App I make have its own quota?\n:\n Yes, separate quota is associated with each App. For older apps created with an\n API Key, quota is tied to the Cloud Project from which you generate an App's API key.\n If you generate multiple API keys from the same Cloud Project, they will all share the\n same usage quota.\n\nWhy is a Cloud billing account required? Will I be charged for my apps?\n:\n We use Google Cloud Platform for a variety of behind-the-scenes tasks. You will not be\n charged for creating an Earth Engine App. However, Google Cloud Storage is not free,\n so if you choose to export the results of your analyses to Google Cloud Storage,\n there may be an associated fee.\n\n\nHow can I understand my apps usage and quota better?\n\n: If the quota is exceeded, Earth Engine may return `HTTP 429: Too Many Requests`\n errors. Generally, these errors are handled by the Earth Engine client library, which\n wraps requests in exponential backoff, retrying the query until it succeeds. The Earth\n Engine client library will retry the request five times.\n\n If your app becomes so popular that many users get quota exceeded errors, users will see\n a warning message, and Earth Engine may have to (temporarily) restrict access to the app.\n\n To help avoid receiving 429 errors, you may want to enable caching for your application,\n such as by storing cacheable aggregate statistics as Earth Engine table assets,\n rather than computing them on the fly."]]