External APIs

Google Apps Script can interact with APIs from all over the web. This guide shows how to work with different types of APIs in your scripts.

Connect to public APIs

You can use the UrlFetch service to make API requests directly.

The following example uses the GitHub API to search for repositories with 100 or more stars that mention "Apps Script". This API request does not require authorization or an API key.

  var 
  
 query 
  
 = 
  
 '"Apps Script" stars:">=100"' 
 ; 
 var 
  
 url 
  
 = 
  
 'https://api.github.com/search/repositories' 
  
 + 
  
 '?sort=stars' 
  
 + 
  
 '&q=' 
  
 + 
  
 encodeURIComponent 
 ( 
 query 
 ); 
 var 
  
 response 
  
 = 
  
 UrlFetchApp 
 . 
 fetch 
 ( 
 url 
 , 
  
 { 
 'muteHttpExceptions' 
 : 
  
 true 
 }); 
 Logger 
 . 
 log 
 ( 
 response 
 ); 
 

Make requests to services with OAuth

APIs that act on behalf of a user usually require authorization, often using the OAuth protocol . Apps Script doesn't provide built-in support for the protocol, but there are open source libraries you can use to perform the OAuth flow and send the credentials with your requests:

Work with JSON

Working with JSON objects is similar to working with XML, except that parsing or encoding a JSON object is much easier.

If the API being requested returns a raw JSON response for a request, the JSON string response can be accessed using the method HTTPResponse.getContentText() . Once this string is retrieved, simply call JSON.parse() on the string to get a native object representation.

  // 
  
 Make 
  
 request 
  
 to 
  
 API 
  
 and 
  
 get 
  
 response 
  
 before 
  
 this 
  
 point 
 . 
 var 
  
 json 
  
 = 
  
 response 
 . 
 getContentText 
 (); 
 var 
  
 data 
  
 = 
  
 JSON 
 . 
 parse 
 ( 
 json 
 ); 
 Logger 
 . 
 log 
 ( 
 data 
 . 
 title 
 ); 
 

Likewise, to make a string representation of a JavaScript object in order to make a request, use JSON.stringify() .

  var 
  
 data 
  
 = 
  
 { 
  
 'entry' 
 : 
  
 { 
  
 'group' 
 : 
  
 { 
  
 'title' 
 : 
  
 'Dog Skateboarding' 
 , 
  
 'description' 
 : 
  
 'My dog gets some serious air' 
  
 }, 
  
 'keywords' 
 : 
  
 'dog, skateboard' 
  
 } 
 } 
 var 
  
 payload 
  
 = 
  
 JSON 
 . 
 stringify 
 ( 
 data 
 ); 
 // 
  
 Make 
  
 request 
  
 to 
  
 API 
  
 with 
  
 payload 
  
 after 
  
 this 
  
 point 
 . 
 

Parse XML

If an external API returns a raw XML response for a request, you can access the XML response using the method HTTPResponse.getContentText() .

  // 
  
 Make 
  
 request 
  
 to 
  
 API 
  
 and 
  
 get 
  
 response 
  
 before 
  
 this 
  
 point 
 . 
 var 
  
 xml 
  
 = 
  
 response 
 . 
 getContentText 
 (); 
 var 
  
 doc 
  
 = 
  
 XmlService 
 . 
 parse 
 ( 
 xml 
 ); 
 

When making XML requests to an API, construct the XML to send by using the XmlService methods.

  var 
  
 root 
  
 = 
  
 XmlService 
 . 
 createElement 
 ( 
 'entry' 
 ) 
  
 . 
 setAttribute 
 ( 
 'keywords' 
 , 
  
 'dog, skateboard' 
 ); 
 var 
  
 group 
  
 = 
  
 XmlService 
 . 
 createElement 
 ( 
 'group' 
 ) 
  
 . 
 setAttribute 
 ( 
 'title' 
 , 
  
 'Dog Skateboarding' 
 ); 
  
 . 
 setAttribute 
 ( 
 'description' 
 , 
  
 'My dog gets some serious air' 
 ); 
 root 
 . 
 addContent 
 ( 
 group 
 ); 
 var 
  
 document 
  
 = 
  
 XmlService 
 . 
 createDocument 
 ( 
 root 
 ); 
 var 
  
 payload 
  
 = 
  
 XmlService 
 . 
 getPrettyFormat 
 () 
 . 
 format 
 ( 
 document 
 ); 
 // 
  
 Make 
  
 request 
  
 to 
  
 API 
  
 with 
  
 payload 
  
 after 
  
 this 
  
 point 
 . 
 
Design a Mobile Site
View Site in Mobile | Classic
Share by: