Integration and automation

Help you leverage the API in a more efficient and effective way by connecting it with other tools and services.

Automate redirect checking with a low-code workflow in Retool.


Want to check the status and redirect behavior of dozens (or hundreds) of URLs — without writing code?

In this tutorial, you'll build a low-code automated workflow in Retool that connects to the HttpStatus API, processes a list of URLs from Google Sheets, and writes the results (including redirect chains and errors) back into the sheet. You don't need any scripting skills — just follow the steps, and you'll have a working setup in a few minutes.

What we'll build

We'll create a Retool workflow that:

  • Starts with a trigger to initiate the workflow.
  • Fetches a list of URLs from a Google Sheets document.
  • Sends each URL to the HttpStatus API (with 1-second intervals between requests), which returns detailed information such as status codes, redirect chains, and errors.
  • Writes the results into a second table to another tab in the same Google Sheet.

This setup enables ongoing URL validation, automated reporting, and a streamlined way to catch broken or redirected links.

Retool workflow: Google Sheets and HttpStatus
Retool workflow: Google Sheets and HttpStatus

The workflow will automatically validate a list of URLs from the Google Sheets document using the HttpStatus API and returns the validation output (including status codes, number of redirects, complete redirect chains, and any possible errors) along with the requested URL to another tab in the Google Sheets document.

What you'll need

To follow along, you'll need:

  • A free Retool account where you can build and run workflows.
  • An HttpStatus Free Plan: you will need to sign up for a Free Plan on httpstatus.io in order to obtain an API key (X-Billing-Token). This key will be used to authenticate your requests when accessing the HttpStatus web API from within the workflow in Retool.
  • A Google account
  • Access to the public Google Sheets template, make a copy of the sheet into your own Google Drive before starting. The Google Sheet contains two tabs:
    • URLs - where your source URLs are listed
    • Results - where the results will be stored
  • A basic understanding of how Retool workflows are created.

By meeting these requirements, you can configure Retool workflows that integrate the HttpStatus API with Google Sheets, and lots of other blocks. This tutorial provides you with a start to setting up a workflow with Retool; the possibilities are endless.

Create the workflow in Retool

Each step in this workflow performs a specific part (block) of the process, from retrieving URLs to saving the final results.

1. Start with a trigger

Visit the Workflows section in your Retool account, and click the 'Create new' button and choose 'Workflow'. A startTrigger block is added to the beginning of the workflow. This allows the workflow to run at set intervals (e.g., every hour, day, or week) or by using a Webhook. You can also run the workflow or specific blocks manually for testing purposes. Retool has also created a code block that should be removed.

Retool workflow: startTrigger
Retool workflow: startTrigger

2. Fetch URLs from Google Sheets

This step reads the list of URLs from the sheet and makes them available for the next step.

  • To add a Query block, click on the grey circle at the top right next to the Trigger block. This circle turns green when you hover over it. Click on Resource Query to connect a Query block with the Trigger block. Change the name of the block to fetchRequestUrls.
  • Click the select menu showing the 'REST API' value, click 'Add new resource' and search for and select 'Google Sheets'.
  • Click the 'Connect account' button.
  • Set 'Google Sheets connection' as the name for the connection. Select 'OAuth 2.0' and choose 'Read and write' for the 'Type' field. Click 'Connect with OAuth' to link your Retool account to your Google Account. On the next screen, click the 'Authenticate' button to confirm your permissions.
  • Select 'HttpStatus Retool workflow' as the spreadsheet, this is the spreadsheet you copied to your Google Drive.
  • Set Action Type to 'Read data from a spreadsheet'.
  • Set the Sheet name to URLs.
  • Click the blue play button to run this Query block. The 'Data' tab at the bottom of the block will show the URLs fetched from the Google Sheets document.
Retool workflow: fetchRequestUrls
Retool workflow: fetchRequestUrls (Query block)

3. Send each URL to the HttpStatus API

Now add a Loop block named fetchHttpStatusApi. This ensures that each URL is processed individually.

  • For Loop input choose the previous step fetchRequestUrls.
  • Choose 'Sequential' as Execution mode and set an Iteration delay of 1000ms for a 1-second delay between iterations (required by the free HttpStatus API plan).
  • Add 'REST API' as a new resource for the Loop runner.
  • HTTP Method: POST
  • API endpoint: https://api.httpstatus.io/v1/status
  • Authentication: add your API key as a header with Header name: X-Billing-Token and Header value: your_api_key.
  • Content type: add the correct content type as a header with Header name: Content-Type and Header value: application/json; charset=utf-8.
  • Body (JSON format): key: requestUrl value: {{ value.URLs }}. You can, of course, include other parameters (see the documentation ), but the requestURL parameter is mandatory.
  • For Retool to properly process URLs that give a timeout error, you need to enter an 'Iteration timeout' of 100000 ms in the 'Settings' tab of this block (see the tabs at the bottom).
  • Click the blue play button to run this Loop block. The 'JSON' tab at the bottom of the block displays the API response for each request URL from the previous block.
Retool workflow: fetchHttpStatusApi
Retool workflow: fetchHttpStatusApi (Loop block)

Now that we have fetched the results for all of the URLs, we want to store them in the Google Sheets document.

4. Store results in Google Sheets

Add another Loop block named storeApiResults. This loop takes the API responses and appends them to the Results tab of the Google Sheets document.

  • For Loop input choose the previous step fetchHttpStatusApi.
  • Choose 'Sequential' as Execution mode.
  • Choose your 'Google Sheets connection' as the resource for the Loop runner.
  • Set Action Type to 'Append data to a spreadsheet'.
  • Select 'HttpStatus Retool workflow' as the spreadsheet, this is the spreadsheet you copied to your Google Drive.
  • Set the Sheet name to Results.
  • For the field 'Values to append' you have to copy and paste the script below. This maps all the relevant data (including up to 10 redirects) into the correct columns of your spreadsheet.
  • [
      {
        "URL": "{{ String(value.requestSettings.custom.requestUrl) }}",
        "# Redirects": "{{ value.response.numberOfRedirects != null ? String(value.response.numberOfRedirects) : '' }}",
        "Error": "{{ value.response.chain[0]?.errorType ? JSON.stringify(value.response.chain[0].errorType) : '' }}",
        "Error message": "{{ value.response.chain[0]?.errorMessage ? JSON.stringify(value.response.chain[0].errorMessage) : '' }}",
        "Status code 1": "{{ value.response.chain[0]?.statusCode != null ? String(value.response.chain[0].statusCode) : '' }}",
        "URL 1": "{{ value.response.chain[0]?.redirectTo ? String(value.response.chain[0].redirectTo) : '' }}",
        "Status code 2": "{{ value.response.chain[1]?.statusCode != null ? String(value.response.chain[1].statusCode) : '' }}",
        "URL 2": "{{ value.response.chain[1]?.redirectTo ? String(value.response.chain[1].redirectTo) : '' }}",
        "Status code 3": "{{ value.response.chain[2]?.statusCode != null ? String(value.response.chain[2].statusCode) : '' }}",
        "URL 3": "{{ value.response.chain[2]?.redirectTo ? String(value.response.chain[2].redirectTo) : '' }}",
        "Status code 4": "{{ value.response.chain[3]?.statusCode != null ? String(value.response.chain[3].statusCode) : '' }}",
        "URL 4": "{{ value.response.chain[3]?.redirectTo ? String(value.response.chain[3].redirectTo) : '' }}",
        "Status code 5": "{{ value.response.chain[4]?.statusCode != null ? String(value.response.chain[4].statusCode) : '' }}",
        "URL 5": "{{ value.response.chain[4]?.redirectTo ? String(value.response.chain[4].redirectTo) : '' }}",
        "Status code 6": "{{ value.response.chain[5]?.statusCode != null ? String(value.response.chain[5].statusCode) : '' }}",
        "URL 6": "{{ value.response.chain[5]?.redirectTo ? String(value.response.chain[5].redirectTo) : '' }}",
        "Status code 7": "{{ value.response.chain[6]?.statusCode != null ? String(value.response.chain[6].statusCode) : '' }}",
        "URL 7": "{{ value.response.chain[6]?.redirectTo ? String(value.response.chain[6].redirectTo) : '' }}",
        "Status code 8": "{{ value.response.chain[7]?.statusCode != null ? String(value.response.chain[7].statusCode) : '' }}",
        "URL 8": "{{ value.response.chain[7]?.redirectTo ? String(value.response.chain[7].redirectTo) : '' }}",
        "Status code 9": "{{ value.response.chain[8]?.statusCode != null ? String(value.response.chain[8].statusCode) : '' }}",
        "URL 9": "{{ value.response.chain[8]?.redirectTo ? String(value.response.chain[8].redirectTo) : '' }}",
        "Status code 10": "{{ value.response.chain[9]?.statusCode != null ? String(value.response.chain[9].statusCode) : '' }}"
      }
    ]
  • Click the blue play button to run this Loop block. Check your Google Sheets document to verify the results.
Retool workflow: storeApiResults
Retool workflow: storeApiResults (Loop block)

Run the workflow

Enter a number of URLs in the 'Request URL' column of the 'URLs' tab in your Google Sheets document. Click the 'Run Workflow' button in Retool and inspect the outputs. If all is set correctly, your target table (Results) will begin filling with status results.

HttpStatus API results in Google Sheets target tab
HttpStatus API results in Google Sheets target tab

Final thoughts

Once your workflow is complete, you can activate it to run automatically or trigger it manually whenever needed. Every time it runs, it will:

  • Read the list of URLs from your source tab in Google Sheets.
  • Check the HTTP status, redirects, and errors via the HttpStatus API.
  • Store the results in your target tab in Google Sheets for future reference or reporting.

This setup is ideal for keeping an eye on broken links, unwanted redirects, or downtime. With some minor adjustments, you can even expand the workflow to notify your team via Slack, Teams, email, or another service whenever a problem is detected.

This brings us to the end of this tutorial. I hope this will enable you to create your own workflows in Retool, combining the HttpStatus API with blocks from other apps.

Reminders and limitations

  • Rate limits: The Free Plan on HttpStatus allows a maximum of 500 requests and one request per second.
  • Scalability: You can upgrade your API or Retool plan if you need to monitor more URLs or run checks more frequently.
This website uses cookies to ensure you get the best experience. By using this website, you acknowledge that you understand and agree to our Privacy Policy and Terms and Conditions.