Run Multiple Queries in a Single Request

This advanced feature of the API Connector add-on for Google Sheets enables you to stack multiple request URLs together and run them one after the other as a unified block. API Connector will cycle through the URLs and print out the results one after another in a single sheet.

This is a paid feature, please upgrade to access.

For more robust pagination handling, try the pagination function.

Contents

Why Use the Multi-Query Function?

Multi-query requests are commonly used to account for simple API pagination, in which an API limits the number of records returned in each response and requires you to make multiple requests to retrieve the full set of data. There are a few common methods of pagination that can be managed via multi-query requests:

  1. page parameters
    Page 1: https://www.demo.com/api?page=1
    Page 2: https://www.demo.com/api?page=2
  2. offset-based pagination
    Page 1: www.demo.com/api?offset=0&limit=100
    Page 2: www.demo.com/api?offset=100&limit=100
  3. page directory pagination
    Page 1: www.demo.com/api/1/
    Page 2: www.demo.com/api/2/

Multi-query requests can also be used to query the same (or similar) API endpoint multiple times, e.g. for different company IDs, different stock symbols, different time periods, etc.

Example 1: List URLs in the URL input box

To run multiple requests, list your URLs on separate lines. When you Run the request, each subsequent response will be appended to the first empty row.
multi-query-img1

Example 2: Reference Cells

You can reference cells in the input box (info). Again, make sure each separate request is on a new line, to ensure API Connector recognizes it as a new request:
multi-query-img2

Example 3: Reference a Range of Cells

As a shorthand method, instead of referencing cells one by one, you can reference them as a range, like this:
multi-query-img3

As shown in the screenshots above, when you reference a cell, you can reference the entire URL or part of the URL.

Notes

  • When you stack requests, response data from each query will be sent to a single sheet, with each subsequent request appended to the first empty row.
  • When running multiple queries, a 1.5 second delay is automatically inserted between requests to avoid rate limits.
  • There’s no specific limitation on stacking GET vs POST/PUT requests, but only the URL field accepts stacked URLs, which may limit its usefulness for POST requests.

5 thoughts on “Run Multiple Queries in a Single Request”

    • Hi there, you would need to run these as separate requests, as currently only URLs can be stacked (not POST bodies). Sorry for the inconvenience.

      Reply
  1. Love the API add-on… just purchased premium.

    I do have a quick question on having the API work around URL’s that come back invalid. I have a long set of Twitter usersname’s that I’m pulling back data on…. and every so often a user will close their account and their username becomes invalid. It then throws back an error in that larger batch and I’m required to fish through 100’s of usernames to find the invalid username.

    Can I have the script bypass an invalid username?

    Reply
    • Thank you for your purchase, I am glad you like API Connector.

      You’ve raised a good point, API Connector stops running when there’s an error, which is inconvenient when you’d prefer it to keep going. What about using API Connector’s custom function ImportAPI() as a workaround? Basically you can list out all your usernames in one column, and then copy down the formula that calls the Twitter API. Unlike running multiple queries in a single request, it will run each request individually.

      To do this you first save an API request in API Connector. Let’s say it’s named “User”, then you can call that request through ImportAPI like this:
      =importAPI("User","https://api.twitter.com/1.1/users/show.json?screen_name="&A2)

      Reply
      • Update – I’ve modified the logic so API Connector will now keep running through a request list even when it hits an error. In those cases, it will just skip that request and print out an error notification into the Status area at the bottom.

Leave a Comment