How do you call an API with UrlFetchApp in Google Apps Script?
Use UrlFetchApp.fetch with explicit method, headers, JSON payload, and muteHttpExceptions so the script can inspect non-success responses. Store credentials outside source code, parse only successful JSON, and use retries carefully. The external-request scope, API authentication, service quotas, timeouts, and provider rate limits all affect the result.
Create a separate test Apps Script project and replace every placeholder before running the example. Record the account, project type, fixture IDs, and execution result in the review evidence.
Returns the parsed JSON body when the endpoint responds 2xx, and throws with the status code and response text otherwise. Point it at a real endpoint and token first; the api.example.com placeholder in the sample does not serve an API.
Static code review completed 2026-07-28 against the official Google Apps Script reference: service names, method signatures, parameter shapes, and error handling were verified by inspection. This sample has not yet been executed end to end in a clean Apps Script project, so the expected output below describes the script's intended behaviour rather than a recorded run.
#Tutorial#Google Apps Script#API
Review & sources
This article was substantively reviewed by Hassan Raza on July 28, 2026; test date 2026-07-28 00:00:00.000Z; environment: Clean Apps Script test project (user-confirmed).
Review outcome: Static code review by inspection on 2026-07-28 against official Google Apps Script documentation. Not executed in a clean project; execution evidence pending.
Expected output: Returns the parsed JSON body when the endpoint responds 2xx, and throws with the status code and response text otherwise. Point it at a real endpoint and token first; the api.example.com placeholder in the sample does not serve an API.
Failure cases: Network errors, expired credentials, non-2xx HTTP responses, non-JSON responses, URL length limits, Apps Script quotas, and provider rate limits can fail the call.