Manifest structure
Stay organized with collections
Save and categorize content based on your preferences.
This page describes the top-level of an Apps Script project's
manifest file JSON data structure. The manifest defines the function or purpose
of the Apps Script project.
JSON representation |
{
"addOns": {
object (AddOns)
},
"chat": {},
"dependencies": {
object (Dependencies)
},
"exceptionLogging": string,
"executionApi": {
object (ExecutionApi)
},
"oauthScopes": [
string
],
"runtimeVersion": string,
"sheets": {
object (Sheets)
},
"timeZone": string,
"urlFetchWhitelist": [
string
],
"webapp": {
object (Webapp)
}
} |
Fields |
addOns |
object (AddOns)
The resource configuration of the project if deployed as a
Google Workspace add-on.
|
chat |
object
The configuration of the project if deployed as a
Google Chat app.
Note: For new Chat apps, we recommend that you use the addOns.chat field instead. If you are maintaining an existing Chat app that uses the chat field, it should be an empty object.
To configure the details of the
Chat app, you must
enable the Google Chat API. For details, see
Configure the
Google Chat API.
Apps Script handles authorization at the script level.
Chat apps that require authorization can't perform
any actions until the user authorizes the Chat app.
To post a message before authorization, you can add an
addToSpaceFallbackMessage object to the manifest. If
your Chat app requires
initialization logic, you might need to duplicate this logic in the
onMessage action.
The following example shows a Chat app
that responds with a default welcome message when a user adds it
to a Chat space:
"chat": {
"addToSpaceFallbackMessage": "Thank you for adding me!"
}
|
dependencies |
object (Dependencies)
The configuration of
advanced services and
libraries enabled for
use by the script project.
|
exceptionLogging |
string
The location where exceptions are logged. The valid settings are the
following:
NONE indicates exceptions are not logged.
STACKDRIVER indicates that exceptions are logged in
Stackdriver.
|
executionApi |
object (ExecutionApi)
The script project's API executable configuration. This is only
used if the project is deployed for API execution.
|
oauthScopes[] |
string
The definition of
authorization scopes
used by the script project.
|
runtimeVersion |
string
The runtime version the
script is using. If this field is not present in the manifest, the
script uses the default runtime (STABLE ). Valid options
for this field are the following:
STABLE indicates the default runtime
(currently Rhino).
V8 indicates the V8 powered runtime.
DEPRECATED_ES5 indicates the Rhino runtime. Setting
this value also prevents automatic migration to V8.
|
sheets |
object (Sheets)
The resource configuration that defines
Sheets macros.
|
timeZone |
string
The
script time zone in one of the available
ZoneId values such as "America/Denver".
|
urlFetchWhitelist[] |
string
A list of HTTPS URL prefixes. If present, any URL endpoint fetched
must match one of the prefixes in this list. This can help to protect
user data. This field is optional for test deployments, but is
required for deployments. Learn more about
allowlisting URLs.
|
webapp |
object (Webapp)
The script project's web app configuration, which is only used if
the project is deployed as a web app.
|
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-28 UTC.
[null,null,["Last updated 2025-08-28 UTC."],[[["\u003cp\u003eThe manifest file defines the configuration of an Apps Script project, including add-ons, Chat apps, dependencies, and execution settings.\u003c/p\u003e\n"],["\u003cp\u003eThe manifest uses a JSON structure with top-level fields like \u003ccode\u003eaddOns\u003c/code\u003e, \u003ccode\u003echat\u003c/code\u003e, \u003ccode\u003edependencies\u003c/code\u003e, \u003ccode\u003eexceptionLogging\u003c/code\u003e, \u003ccode\u003eexecutionApi\u003c/code\u003e, \u003ccode\u003eoauthScopes\u003c/code\u003e, \u003ccode\u003eruntimeVersion\u003c/code\u003e, \u003ccode\u003esheets\u003c/code\u003e, \u003ccode\u003etimeZone\u003c/code\u003e, \u003ccode\u003eurlFetchWhitelist\u003c/code\u003e, and \u003ccode\u003ewebapp\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eEach top-level field provides specific configurations for different aspects of the project like add-on types, Chat app behavior, external libraries, and runtime environment.\u003c/p\u003e\n"],["\u003cp\u003eThe manifest structure allows developers to control various aspects of their Apps Script project, such as authorization scopes, exception logging, and the execution environment.\u003c/p\u003e\n"],["\u003cp\u003eDetailed substructures and examples are provided in separate pages for each top-level field within the manifest file.\u003c/p\u003e\n"]]],[],null,[]]