Help you leverage the API in a more efficient and effective way by connecting it with other tools and services.
Monitoring a large number of URLs manually can quickly become time-consuming and error-prone. With n8n, you can build a fully automated workflow that checks the availability and behavior of URLs on a regular basis.
This tutorial will walk you through creating a workflow that uses Baserow or NocoDB as a data source, connects to the HttpStatus API, and stores the results for further inspection. By the end of this guide, you'll have a working solution that allows you to monitor URLs with no code—only smart automation.
We'll create an automated workflow in n8n that does the following:
This setup enables ongoing URL validation, automated reporting, and a streamlined way to catch broken or redirected links.
The workflow will automatically validate a list of URLs from the Baserow database or NocoDB base 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 table in the Baserow database or NocoDB base.
To follow along, make sure you have access to the following:
By meeting these requirements, you can configure n8n workflows that integrate the HttpStatus API with Baserow or NocoDB, and lots of other nodes. This tutorial provides you with a start to setting up a workflow with n8n; the possibilities are endless.
You'll also need to manually set up two database tables in the Baserow database or NocoDB base: one for the input (URLs to check) and one for the output (results of the checks).
Start by creating the following tables in Baserow or NocoDB.
URLs
This table holds the list of URLs you want to check. It should contain a single column:
Column name | Value | Field type |
---|---|---|
Request URL | https://example.com | URL |
Results
This is where you'll store the results from the HttpStatus API. It should include the following 23 columns:
Column name | Description | Field type |
---|---|---|
Request URL | The original URL being checked | URL |
# Redirects | Total number of redirects detected | Number |
Error | Error type if any occurred | Single line text |
Error message | A description of the error | Single line text |
Status code 1 | HTTP status codes for each redirect in the chain | Number |
URL 1 | Redirect targets along the chain (up to 10 steps) | Single line text |
... | ||
Status code 10 | This is the status code of the last redirect in a chain of up to 10 redirects. | Number |
Now that the tables are ready, you can begin building the automation in n8n. Each step in this workflow performs a specific part of the process, from retrieving URLs to saving the final results.
Add a Schedule Trigger node to the beginning of the workflow. This allows the automation to run at set intervals (e.g., every hour, day, or week). You can also run the workflow manually for testing purposes.
Next, use either the Baserow or NocoDB node to retrieve all
entries from the URLs
table. The choice depends on
your database:
getAll:rows
operation and
connect using your Baserow username and password.
getAll:rows
operation,
authenticate with your API key, and make sure to filter the
results so only the Request URL
column is
included.
This step loads all URLs into n8n for processing.
Now add a loop mechanism, such as Loop Over Items. This ensures that each URL is processed individually in the next steps, preventing issues with bulk handling and rate limits.
For each URL, use an HTTP Request node to call the HttpStatus API. Configure it as follows:
POST
https://api.httpstatus.io/v1/status
Header name: X-Billing-Token
and
Header value: your_api_key
.
{"requestUrl": "{{ $json["Request URL"] }}"}
You can, of course, include other parameters (see the
documentation ), but the requestURL
parameter is mandatory.
X-Billing-Token
for the
HttpStatus API Free Plan.
This sends the current URL (requestUrl) to the API and retrieves information like the status code, error (if any), and details about the redirect chain.
Use either the Baserow or NocoDB node again, this time with the
create:row
operation to store the output in the
results table.
You'll need to map the data from the API response into the corresponding fields in the table. Below is an example of how to map the values:
Target column | Value expression | |
---|---|---|
Request URL | {{
$json.requestSettings.custom.requestUrl
}} | |
# Redirects | {{ $json.response.numberOfRedirects }} | |
Error | {{ $json.response.chain[0].errorType }} | |
Error message | {{
$json.response.chain[0].errorMessage
}} | |
Status code 1 | {{
$json.response.chain[0].statusCode
}} | |
URL 1 | {{
$json.response.chain[0].redirectTo
}} | |
... | ||
Status code 10 | {{
$json.response.chain[9].statusCode
}} |
You can map up to 10 redirects using the
response.chain
array. If fewer redirects exist, the
unmapped fields will remain empty.
To comply with the HttpStatus Free Plan (which allows only 1 request per second), add a Wait node with a 1-second delay after each API call. This prevents your requests from being blocked or rate-limited.
Enter a number of URLs in the 'Request URL' column of the 'URLs' table in Baserow or NocoDB. Click the 'Execute Workflow' button in n8n and inspect the outputs. If all is set correctly, your target table (Results) will begin filling with status results.
Once your workflow is complete, you can activate it to run automatically or trigger it manually whenever needed. Every time it runs, it will:
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, 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 n8n, combining the HttpStatus API with nodes from other apps.