Everything you need to know to troubleshoot ImportFromWeb

Why do I keep seeing #MONTHLY_QUOTA_REACHED?

The error #MONTHLY_QUOTA_REACHED means that you have reached your quota of requests for the month. But we’ve got you covered!

You can reset your quota from the customer portal by resetting your billing cycle.

What does the #END_OF_PERIOD_REACHED error mean?

This error simply indicates that your trial period is over.
If you’re ready to take your ImportFromWeb experience to the next level, our range of paid plans awaits you with open arms. With higher usage limits and a host of exciting additional features, these plans will elevate your scraping journey to new heights.

What does the #TOTAL_QUOTA_REACHED error mean?

The TOTAL_QUOTA_REACHED error indicates that you’ve reached the maximum volume of requests allowed for your current plan. This means you’ve hit the limit on the number of requests you can make within a specific timeframe.

Learn more about quota errors. You can easily check your current status on the sidebar to keep an eye on your usage quotas. 

To continue scraping data without interruptions, consider upgrading to a plan that offers higher quotas. Explore our pricing options and choose the plan that best suits your scraping needs.

Why do I have #NAME when I enter the IMPORTFROMWEB formula?

The #NAME error usually means that the ImportFromWeb add-on has not been properly associated to your spreadsheet. As a consequence, you can not enter nor run any =IMPORTFROMWEB() functions.

If you have already followed our guide to install and activate ImportFromWeb, simply refer to our detailed instructions on how to address and resolve the “#NAME” error. These instructions will guide you through the troubleshooting process, helping you get back on track in no time.

My =IMPORTFROMWEB() functions return #GOOGLE_QUOTA_EXCEEDED

This is usually because you have reached the Google daily quota of external requests you can send in one day (by using the appsScript UrlFetch service).

Free Google Workspace accounts are given 20,000 requests per day, while paid accounts are given 100,000 requests.

This is not exactly related to the number of ImportFromWeb functions you use:
If you have many ImportFromWeb functions, the spreadsheet cache is not big enough so it temporarily keeps the data on our server.
If you edit the spreadsheet, Google Sheets triggers recalculations pretty often and the functions use the UrlFetch service to get the cached data from our servers.

When will the counter be reset

It’s a daily quota. Unfortunately, Google doesn’t give more details on what time it will reset the quota.

How can I avoid this error?

  • If you don’t use many ImportFromWeb functions, the issue is rather due to another script. You may try to disable other add-ons.
  • Try to reduce the number of functions in your spreadsheet. =IMPORTFROMWEB() allows you to fetch a range of URLs in one function. You can also put a range of selectors if you need to fetch several elements from the target pages.
  • If you use many functions in one spreadsheet, try to limit your activity in the spreadsheet so Google Sheets does not trigger recalculations so often.
  • We’ve noticed that GOOGLEFINANCE() triggers very frequent recalculations of the whole spreadsheet. Using GOOGLEFINANCE() with many ImportFromWeb functions is a frequent cause of #GOOGLE_QUOTA_EXCEEDED

You can find the official documentation on Google quotas here

How can I prevent my ImportFromWeb functions from reloading when I open my spreadsheet?

Google Sheets natively controls how the functions recalculate according to different behaviours (modifying cells, opening the spreadsheet, …). This is why, sometimes, you enter your spreadsheet and see your functions recalculating and your data loading.

To avoid that IMPORTFROMWEB fetches the data source constantly, imported data are cached 24 hours by default (and up to 4 weeks). See on this page how to manage the cache.
Therefore, whenever IMPORTFROMWEB recalculates, the content is retrieved from the cache and it is not counted as new requests.

In case you want to retrieve the data and not to get updated at all (until you manually decide to update it), you can use the hard_paste option, which cleverly pastes the collected data as values directly into your spreadsheet.

I can’t make calculations from content returned by the function

ImportFromWeb will try to detect numerical values and convert them into the appropriate format. It usually works well when the format of the extracted values is compatible with the spreadsheet’s locale.

You can check your locales from the menu > File > Spreadsheet settings

If you prefer to keep your spreadsheet settings as is, you can try to transform the content returned by ImportFromWeb. For that purpose,

  • You can use the Google Sheets functions you are used to (SUBSTITUTE, REGEXREPLACE, etc.)
  • You can use regular expressions right in the function. See more

Additionally, you could consider leveraging the filter view feature in Google Sheets. Filter views allow you to create temporary views of your data, enabling easy sorting, filtering, and organizing without altering the original data. It’s especially useful when dealing with large datasets or when collaborating with others who need different views of the same data. We explain how to use filter fiews in this article.

Should I use commas or semicolons between ImportFromWeb arguments?

When specifying function arguments or parameters, the delimiter you should use depends on the locale settings of your spreadsheet. In English-speaking countries, including India, commas are typically used to separate function parameters. However, in some other countries, semicolons are used instead.

To check or edit the locale settings for your spreadsheet, go to File > Settings.

Google Sheets locale settings

What is the #ALL_SELECTORS_RETURN_NULL error?

The #ALL_SELECTORS_RETURN_NULL error occurs when ImportFromWeb can’t find the specific elements described by any of the selectors used. It’s usually because the selectors you are using are not the right ones for that specific website. To fix this, make sure your xPaths or CSS selectors are correct. If you’re not sure how to write them, check out our handy resources on Introduction to xPaths and Introduction to CSS selectors.

Sometimes, the problem is that you’re scraping data from a JavaScript-rendered website. If that’s the case, read our guide on how to scrape JavaScript rendered websites using the js_rendering option.

What is the #PAGE_REQUEST_FAILED error?

The #PAGE_REQUEST_FAILED error occurs when ImportFromWeb is unable to load a specific page.

But don’t worry!

First, when fetching the page content fails, no request is counted.

Second, ImportFromWeb has an auto-refresh feature that retries failed requests up to 6 times. Just make sure to keep the ImportFromWeb sidebar open to enable this mechanism.

Why is the data returned by ImportFromWeb wrong?

It’s important to note that when using ImportFromWeb to scrape data, the tool fetches web pages using different IP addresses, which may not necessarily match what you see on your browser. This is because websites can display different content based on factors such as location or user preferences.

To accurately monitor the scraping process, we recommend keeping the ImportFromWeb sidebar open. From the Monitor tab, you can view the source page as seen by ImportFromWeb, which provides insights into how the tool is accessing and retrieving data. This allows you to verify the data from the perspective of the tool itself.

To view source pages go to Sidebar > Monitor a function

Why are some functions stuck on “Refreshing”?

Sometimes, formulas can get stuck in that state when a refresh process doesn’t quite go as planned. But fear not, we’ve got a couple of handy solutions to help you:

  1. You can revert to a previous version of your sheet using the Version History feature. Simply navigate to File > Version History and select an earlier version to restore. This can often resolve the issue and allow your formulas to resume their normal functionality.
  2. Try rewriting the problematic formula from scratch. Sometimes, starting afresh can break the cycle of perpetual refreshing and restore the proper functioning of the formula.

This issue is more likely to occur when your sheet contains a significant number of functions, as this can potentially slow down the overall performance. If you find yourself frequently encountering the “Refreshing” state, it might be worth considering ways to optimize your sheet by reducing the number of functions or optimizing their usage.

What does the #REF error mean?

This error occurs when the function generates an array of results, but some of the required cells are not empty. When you roll over the cell with the #REF error, you’ll see a pop-up message: “Array result was not expanded because it would overwrite data in D3” (where D3 is an example of the referenced cell).

To resolve the #REF error, it’s important to ensure that any cells mentioned in the error message are empty. Clearing the referenced cells will allow the function to expand and populate the array result correctly, eliminating the #REF error.

ImportFromWeb #REF error

What happens if a request fails?

We only charge for successful requests, i.e. only when the data requested are returned by the function.

I have the message “Exceeded maximum execution time (line 0)”

If you encounter the message “Exceeded maximum execution time (line 0),” it means that your request took more than 30 seconds to execute, which exceeds the limit for Google Sheets functions. Not to worry, there’s a simple solution:

1. Select the cell containing the IMPORTFROMWEB function that triggered the error.
2. Open the ImportFromWeb sidebar.
3. Use the “RUN” button in the sidebar to relaunch the function.