Stay organized with collections
Save and categorize content based on your preferences.
URL Fetch
This service allows scripts to access other resources on the web by fetching
URLs. A script can use the UrlFetch service to issue HTTP and HTTPS requests and
receive responses. The UrlFetch service uses Google's network infrastructure for
efficiency and scaling purposes.
Requests made using this service originate from a set pool of IP ranges. You can look up the full list of IP addresses
if you need to whitelist or approve these requests.
The default user agent string of UrlFetch service requests is
Mozilla/5.0 (compatible; Google-Apps-Script; beanserver; +https://script.google.com; id: SCRIPT_ID).
This service requires the https://www.googleapis.com/auth/script.external_request
scope. In most cases Apps Script automatically detects and includes scopes a script needs, but
if you are
setting your scopes explicitly
you must manually add this scope to use UrlFetchApp.
[[["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 2024-12-04 UTC."],[[["\u003cp\u003eThe URL Fetch service enables Apps Script to make HTTP and HTTPS requests to access external web resources, leveraging Google's infrastructure.\u003c/p\u003e\n"],["\u003cp\u003eRequests originate from a specific range of IP addresses, which can be whitelisted if necessary for security purposes.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003ehttps://www.googleapis.com/auth/script.external_request\u003c/code\u003e scope is required and often automatically included, but needs manual addition for explicitly set scopes.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eUrlFetchApp\u003c/code\u003e class handles the fetching process with methods like \u003ccode\u003efetch()\u003c/code\u003e and \u003ccode\u003efetchAll()\u003c/code\u003e, while \u003ccode\u003eHTTPResponse\u003c/code\u003e provides access to response data like headers, content, and status codes.\u003c/p\u003e\n"]]],["The UrlFetch service enables scripts to access web resources via HTTP and HTTPS requests, utilizing Google's network infrastructure. Scripts can fetch URLs using `UrlFetchApp` methods like `fetch` and `fetchAll`. IP ranges are provided for whitelisting purposes. The service requires the `https://www.googleapis.com/auth/script.external_request` scope. `HTTPResponse` methods provide ways to extract response data, headers, and status codes. The user agent is `Mozilla/5.0 (compatible; Google-Apps-Script; beanserver)`.\n"],null,["URL Fetch\n\nThis service allows scripts to access other resources on the web by fetching\nURLs. A script can use the UrlFetch service to issue HTTP and HTTPS requests and\nreceive responses. The UrlFetch service uses Google's network infrastructure for\nefficiency and scaling purposes.\n\nRequests made using this service originate from a set pool of IP ranges. You can [look up the full list of IP addresses](https://www.gstatic.com/ipranges/goog.json)\nif you need to whitelist or approve these requests.\n\nThe default user agent string of UrlFetch service requests is\n`Mozilla/5.0 (compatible; Google-Apps-Script; beanserver; +https://script.google.com; id: `\u003cvar translate=\"no\"\u003eSCRIPT_ID\u003c/var\u003e`)`.\n\nThis service requires the `https://www.googleapis.com/auth/script.external_request`\nscope. In most cases Apps Script automatically detects and includes scopes a script needs, but\nif you are\n[setting your scopes explicitly](/apps-script/concepts/scopes#setting_explicit_scopes)\nyou must manually add this scope to use `Url``Fetch``App`.\n\nSee also\n\n- [HTTPResponse](/apps-script/reference/url-fetch/http-response)\n- [Setting explicit scopes](/apps-script/concepts/scopes#setting_explicit_scopes)\n\nClasses \n\n| Name | Brief description |\n|----------------------------------------------------------------|---------------------------------------------------------------------------|\n| [HTTPResponse](/apps-script/reference/url-fetch/http-response) | This class allows users to access specific information on HTTP responses. |\n| [UrlFetchApp](/apps-script/reference/url-fetch/url-fetch-app) | Fetch resources and communicate with other hosts over the Internet. |\n\n[HTTPResponse](/apps-script/reference/url-fetch/http-response) \n\nMethods\n\n| Method | Return type | Brief description |\n|--------------------------------------------------------------------------------------------------|---------------------------|-----------------------------------------------------------------------------------------------------------------------------|\n| [getAllHeaders()](/apps-script/reference/url-fetch/http-response#getAllHeaders()) | `Object` | Returns an attribute/value map of headers for the HTTP response, with headers that have multiple values returned as arrays. |\n| [getAs(contentType)](/apps-script/reference/url-fetch/http-response#getAs(String)) | [Blob](../base/blob.html) | Return the data inside this object as a blob converted to the specified content type. |\n| [getBlob()](/apps-script/reference/url-fetch/http-response#getBlob()) | [Blob](../base/blob.html) | Return the data inside this object as a blob. |\n| [getContent()](/apps-script/reference/url-fetch/http-response#getContent()) | `Byte[]` | Gets the raw binary content of an HTTP response. |\n| [getContentText()](/apps-script/reference/url-fetch/http-response#getContentText()) | `String` | Gets the content of an HTTP response encoded as a string. |\n| [getContentText(charset)](/apps-script/reference/url-fetch/http-response#getContentText(String)) | `String` | Returns the content of an HTTP response encoded as a string of the given charset. |\n| [getHeaders()](/apps-script/reference/url-fetch/http-response#getHeaders()) | `Object` | Returns an attribute/value map of headers for the HTTP response. |\n| [getResponseCode()](/apps-script/reference/url-fetch/http-response#getResponseCode()) | `Integer` | Get the HTTP status code (200 for OK, etc.) of an HTTP response. |\n\n[UrlFetchApp](/apps-script/reference/url-fetch/url-fetch-app) \n\nMethods\n\n| Method | Return type | Brief description |\n|-----------------------------------------------------------------------------------------------------|------------------------------------------------------------------|------------------------------------------------------------------------------------|\n| [fetch(url)](/apps-script/reference/url-fetch/url-fetch-app#fetch(String)) | [HTTPResponse](/apps-script/reference/url-fetch/http-response) | Makes a request to fetch a URL. |\n| [fetch(url, params)](/apps-script/reference/url-fetch/url-fetch-app#fetch(String,Object)) | [HTTPResponse](/apps-script/reference/url-fetch/http-response) | Makes a request to fetch a URL using optional advanced parameters. |\n| [fetchAll(requests)](/apps-script/reference/url-fetch/url-fetch-app#fetchAll(Object)) | [HTTPResponse[]](/apps-script/reference/url-fetch/http-response) | Makes multiple requests to fetch multiple URLs using optional advanced parameters. |\n| [getRequest(url)](/apps-script/reference/url-fetch/url-fetch-app#getRequest(String)) | `Object` | Returns the request that is made if the operation was invoked. |\n| [getRequest(url, params)](/apps-script/reference/url-fetch/url-fetch-app#getRequest(String,Object)) | `Object` | Returns the request that is made if the operation were invoked. |"]]