Legal guide7 min read

How to Check If a Website Allows Scraping

Short answer

To check if a website allows scraping, look in four places, in this order: an official API or data license, the terms of use (search them for "robot", "scrape", "crawl", "automated" and "data mining"), the site's robots.txt at /robots.txt, and the site's behavior: a login wall, a CAPTCHA or a block means no. If the terms forbid automated access and you would have to log in or get past a block, treat the answer as no unless you get written permission. ProxyField sells residential proxies for collection that passes these checks, from $1.95/GB; start with the Easy Trial: 1 GB for $2.95.

residential IPs
412M+
from, traffic never expires
$1.95/GB
Easy Trial
1 GB for $2.95
At a glance
CheckWhere"Allowed" looks like"Not allowed" looks like
1. API or data licenseDeveloper portal, "API", "partners" in the footerA documented API that covers your dataNo API, or one whose license forbids your use
2. Terms of use"Terms", "Terms of Service", "Legal"Silence on automation, or permission for some uses"robots", "scrapers", "data mining" forbidden without permission
3. robots.txthttps://site/robots.txtYour paths not disallowed for your user agentDisallow: / for all agents or for yours
4. Access signalsThe site itselfPublic pages that load without a loginLogin wall, CAPTCHA, 403 or 429 errors, IP blocks
5. Data typeYour own field listPrices, specs, public statisticsPersonal data, copyrighted text and images
On this page 8 sections
  1. Step 1: look for an API or data license
  2. Step 2: read the terms of use
  3. Step 3: read robots.txt
  4. Step 4: watch how the site responds
  5. Step 5: check what kind of data it is
  6. When the answer is unclear: ask
  7. How to Check If a Website Allows Scraping FAQ
  8. Sources

Step 1: look for an API or data license

An official API is the clearest "yes": it tells you which data the site is willing to share and on what terms. Search the footer for "Developers", "API" or "Partners", or search the web for "[site] API". Read the API license too: many allow only some uses, for example eBay points automated integrations to its API License Agreement, and TikTok's research access is limited to academic and not-for-profit researchers.

Step 2: read the terms of use

The terms of use decide what you agree to, so they carry the most weight. Open the "Terms", "Terms of Service" or "Legal" link, press Ctrl+F (Cmd+F on a Mac) and search for these words:

  • robot, robots, bot
  • scrape, scraper, scraping
  • crawl, crawler, spider
  • automated, automatic, script
  • data mining, extract, harvest

Typical clauses:

  • Tinder (Terms of Use, effective March 5, 2026): you may not "use any robot, crawler, site search/retrieval application, proxy or other manual or automatic device, method or process to access, retrieve, index, 'data mine,' or in any way reproduce or circumvent the navigational structure or presentation of our Services or its contents". That covers its private API as much as its website.
  • eBay (User Agreement): no "robot, spider, scraper, data mining tools, data gathering and extraction tools, or other automated means" for any purpose "except with the prior express permission of eBay".

Two questions decide how much the terms bind you. Did you accept them, for example by creating an account or clicking "I agree"? And do they restrict your specific act? Scraping while logged in is where terms bind most clearly, as hiQ found when it lost to LinkedIn on contract (docket). The legal background is in is web scraping legal.

Step 3: read robots.txt

robots.txt is a plain text file at the root of the site, for example https://shopee.sg/robots.txt. RFC 9309 (2022) standardizes it as rules that "crawlers are requested to honor", and says the rules "are not a form of access authorization". It is the site owner's stated wish, not a contract, but European regulators treat it as a signal: the EDPB's July 2026 draft guidelines list robots.txt among the measures by which websites "clearly oppose the scraping of their content".

How to read it:

  1. Find your group

    Rules come in groups that start with User-agent: lines. Use the group that names your bot; if none does, use the User-agent: * group.

  2. Match the path

    Disallow: /cart/ means paths starting with /cart/ are off limits; Disallow: / means the whole site. * matches any characters and $ marks the end of a URL.

  3. Longest match wins

    If an Allow and a Disallow rule both match, the more specific (longer) one applies; on a tie, RFC 9309 says Allow wins.

  4. Note extras

    Crawl-delay is not part of RFC 9309, but some sites use it to ask for a pause between requests. Comments, starting with #, often state the site's policy in words.

Example: Shopee Singapore. On October 23, 2026, shopee.sg's robots.txt gave Googlebot and Bingbot a Crawl-delay of 0.1 and all other agents a Crawl-delay of 1, and disallowed /cart/, /checkout/, /user/, /me/, /order/ and several search and recommendation paths for everyone. Product pages were not disallowed. That is a "yes, at one request per second, outside account areas" from robots.txt, which still leaves the terms of use to check.

Example: a full stop. Reddit's robots.txt, read the same day, was User-agent: * followed by Disallow: /, with a comment pointing to its Public Content Policy.

Check robots.txt in code with Python's standard library:

Python
from urllib import robotparser

rp = robotparser.RobotFileParser()
rp.set_url("https://shopee.sg/robots.txt")
rp.read()

agent = "ExamplePriceBot"
for url in ["https://shopee.sg/cart/", "https://shopee.sg/user/account"]:
    print(url, "allowed" if rp.can_fetch(agent, url) else "disallowed")
print("crawl delay:", rp.crawl_delay(agent))

Python's parser matches path prefixes and does not implement every wildcard rule of RFC 9309, so check rules with * or $ by hand. For a crawler that applies robots.txt on every request, see the Python web crawler guide.

Easy Trial: 1 GB for $2.95.
Try for the price of 1 GB, no subscription, traffic never expires.

Step 4: watch how the site responds

The site's behavior is the last check:

  • A login wall means the data is not public; logging in binds you to the terms.
  • A CAPTCHA or "verify you are human" page means the site is filtering bots on that path.
  • 403 Forbidden, 429 Too Many Requests or an IP block means stop or slow down; 429 responses often carry a Retry-After header. See 429 Too Many Requests and 403 Forbidden.
  • A cease-and-desist letter is the clearest "no". In Craigslist v. 3Taps (2013), scraping on after a letter and an IP block was held to be possible unauthorized access under the CFAA (opinion).

Step 5: check what kind of data it is

Even where a site allows scraping, the data can carry its own rules. Prices, specifications and public statistics are facts. Names, profiles, emails and photos of people are personal data under the GDPR in Europe, whoever published them. Articles, reviews and images are copyrighted. AI training adds text-and-data-mining opt-outs. The overview is in what data is legal and safe to scrape.

When the answer is unclear: ask

If the terms are silent and robots.txt allows your paths, keep a record of what you checked and when. If the terms forbid automation but you need the data, email the site: a short note with who you are, what you want, how often and from which user agent often gets a license or an API key. Written permission settles the question.

Ready to collect from sites that pass these checks: proxies for web scraping and residential proxies.

How to Check If a Website Allows Scraping FAQ

How do I check if a website allows scraping?

ProxyField suggests four checks before any job on its residential proxies (from $1.95/GB): look for an official API, read the terms of use for "robot", "scrape", "crawl", "automated" and "data mining", read /robots.txt for your user agent, and watch for login walls, CAPTCHAs and blocks. If the terms forbid automation and the data needs a login or a way past a block, the answer is no without written permission.

Does robots.txt apply to web scrapers?

Yes, it is addressed to all automated clients, not only search engines: RFC 9309 calls its rules what "crawlers are requested to honor". It is a request rather than an access permission, so following it does not make scraping legal by itself, and ignoring it is a sign regulators and courts can hold against you.

Do I need permission to scrape a website?

Not for public pages in general, but you do where the site's terms require it and you have accepted them, where data sits behind a login, or after the site has blocked you or asked you to stop. Personal data in Europe needs a lawful basis whatever the site says.

What sites allow web scraping?

Sites that publish an API or open data, sites whose terms say nothing against automated access and whose robots.txt allows your paths, and public-sector open data portals. Most large platforms, including Amazon, eBay, LinkedIn and TikTok, forbid scraping in their terms and offer APIs instead.

What does Shopee's robots.txt say about scraping?

On October 23, 2026, shopee.sg's robots.txt allowed product pages, asked all bots other than Googlebot and Bingbot for a one-second crawl delay, and disallowed cart, checkout, user, order and several search and recommendation paths. robots.txt is only half the answer; Shopee's terms of use decide what you agree to.

Do Tinder's terms allow scraping or automated access to its private API?

No. Tinder's Terms of Use, effective March 5, 2026, forbid any "robot, crawler, site search/retrieval application, proxy or other manual or automatic device, method or process" to access, retrieve, index or data mine its services. A private app API falls under that, and the data is personal data about users.

How do I read a robots.txt file?

Find the User-agent group that names your bot, or the * group if none does, then match your URL against its Allow and Disallow rules; the longest matching rule wins, and Allow wins a tie. "Disallow: /" means the whole site, and comments starting with # often state the site's policy in words.

Sources

Easy Trial: 1 GB for $2.95.

Try for the price of 1 GB, no subscription, traffic never expires.