How to Check If a Website Allows Scraping
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
| Check | Where | "Allowed" looks like | "Not allowed" looks like |
|---|---|---|---|
| 1. API or data license | Developer portal, "API", "partners" in the footer | A documented API that covers your data | No 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.txt | https://site/robots.txt | Your paths not disallowed for your user agent | Disallow: / for all agents or for yours |
| 4. Access signals | The site itself | Public pages that load without a login | Login wall, CAPTCHA, 403 or 429 errors, IP blocks |
| 5. Data type | Your own field list | Prices, specs, public statistics | Personal data, copyrighted text and images |
On this page 8 sections
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:
-
Find your group
Rules come in groups that start with
User-agent:lines. Use the group that names your bot; if none does, use theUser-agent: *group. -
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. -
Longest match wins
If an
Allowand aDisallowrule both match, the more specific (longer) one applies; on a tie, RFC 9309 saysAllowwins. -
Note extras
Crawl-delayis 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:
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.
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-Afterheader. 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.
Where is the legal line for scrapers in robots.txt?
robots.txt itself draws no legal line: RFC 9309 says its rules are not access authorization. The line comes from what surrounds it: terms you accepted, blocks you get past, and, in Europe, data protection, where the EDPB's 2026 draft guidelines treat robots.txt as a sign that a site opposes scraping and expect AI scrapers to exclude such sites.
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
- RFC 9309, Robots Exclusion Protocol (2022)
- EDPB, Guidelines 03/2026 on web scraping in the context of generative AI (adopted July 7, 2026, public consultation)
- Tinder Terms of Use (effective March 5, 2026)
- eBay User Agreement
- eBay API License Agreement
- shopee.sg/robots.txt
- reddit.com/robots.txt
- Python documentation, urllib.robotparser
- hiQ Labs v. LinkedIn, N.D. Cal. No. 3:17-cv-03301, docket
- Craigslist v. 3Taps, 964 F. Supp. 2d 1178 (N.D. Cal. 2013)
This is not legal advice. Laws, court decisions and sites' terms change, and the primary sources linked on this page are the authority.
Related pages
Easy Trial: 1 GB for $2.95.
Try for the price of 1 GB, no subscription, traffic never expires.