Skip to content
Price IntelligencePrice Intelligence home

Legal

Is web scraping legal? What the question actually covers

Whether web scraping is legal depends on which body of law is in play, not on scraping as a single activity. Collecting publicly posted facts while logged out sits in different territory than reaching data behind a login. Computer-crime statutes, contract terms, copyright and data-protection rules each apply separately. This guide is educational, not legal advice.

Ashesh DhakalFounder12 min read
Start free trialOpen the live demo14 days, no credit card, cancel in one click.

No single law makes web scraping legal or illegal in the United States. What exists is a set of separate questions a scraping programme can trigger independently: computer-crime statutes about unauthorized access, contract claims about terms of service, copyright in what you copy, database rights outside the US, and data-protection rules if the data describes people. A method can be comfortable under one and exposed under another. The practical work is knowing which questions your method raises, and no longer raising the ones you do not need.

Most arguments about scraping go nowhere because the people arguing mean different statutes. One means computer crime, one means breach of contract, a third means copyright. Those are separate bodies of law with separate elements and separate remedies, so the useful version of the question is which of these five it raises, and which of them you can stop raising.

  1. 1Access. Did the collection reach a computer, or an area of one, that was not open to me? This is the computer-crime question.
  2. 2Agreement. Did I accept terms forbidding automated collection, and then do it anyway? This is the contract question.
  3. 3Copying. Did I take original creative expression, or only facts? This is the copyright question.
  4. 4Investment. Did I extract a substantial part of a database someone invested in assembling? This is the EU database-right question, with no direct US equivalent.
  5. 5People. Does the data describe an identifiable person? This is the data-protection question, and it does not arise for a shelf price.

Price collection is unusual: it can usually be run so that only the first two are live, and both are manageable. That is not true of every scraping use case. It is true of most price scraping done for competitor monitoring.

Publicly accessible pages versus anything behind authentication

The largest single factor in how a scraping dispute gets framed is whether a person without an account could have seen the same page in a browser. A product page that search engines index, that renders fully for a logged-out visitor and that carries a price is in a different category than a page requiring a login, a membership, a dealer code or an API key.

The reason is mechanical rather than moral. Computer-crime statutes are built around a gate. If a page is served to anyone who asks, there is no gate to pass. If it is served only after credentials are checked, passing it is an event a court can point at. Creating an account also means you clicked to accept terms, and it attaches your identity to the collection.

How a competitor price is extracted and validatedA product page is fetched, then extraction is attempted in three orders of preference: schema.org structured data, then a per-domain recipe, then full page rendering. Every extracted value passes a plausibility check before it is stored. A failed check regenerates the domain recipe and, if that also fails, raises a human review task and alerts the customer.Fetch pagerate limitedTRIED IN ORDER — CHEAPEST AND MOST ROBUST FIRST1 · Structured dataschema.org Product JSON-LD2 · Domain recipeselectors written once per site3 · Rendered pageslowest, used only when neededPlausible?currency · magnitude · stockpassStoredappend-onlyfailRegenerate recipe, revalidateHuman queue + alert
What a compliant collection pipeline actually does: public pages only, validated before storage, with no attempt to bypass access controls.

The Computer Fraud and Abuse Act, and how Van Buren narrowed it

The Computer Fraud and Abuse Act, 18 U.S.C. section 1030, is the federal computer-crime statute. It reaches someone who accesses a protected computer without authorization, or who exceeds authorized access. It carries criminal penalties and also gives private parties a civil claim, which is why it turned up so often in scraping disputes: an operator who wanted a scraper to stop could point at a federal statute rather than only at its own contract.

For years a broad reading circulated in which breaking a site's terms of service was itself a way of exceeding authorized access. Under it, an ordinary automated fetch of a public page could be argued into a federal crime because a terms document said no robots.

What Van Buren v. United States (2021) decided

In Van Buren v. United States, decided by the Supreme Court in 2021, a police sergeant used credentials he was entitled to use to look up a license plate in a law-enforcement database for a personal and improper reason. The government argued that using authorized access for an unauthorized purpose exceeded authorized access under the CFAA.

The Court disagreed. It read the phrase to cover obtaining information from areas of a computer that are off-limits to the person, rather than obtaining information the person may reach and then misusing it. The opinion described this as a gates-up-or-down question. Purpose, motive and policy violations sit outside the statute.

That mattered for scraping, because it removed the argument that a terms breach automatically converts into a federal crime. It did not answer everything. The Court expressly declined to resolve whether the authorization line is drawn only by technical measures such as passwords, or whether contracts and policies can draw it too. That open question is where scraping disputes now live.

hiQ Labs v. LinkedIn: what it settled and what it did not

hiQ Labs collected data from LinkedIn profiles visible to the public without logging in. LinkedIn sent a cease-and-desist and blocked hiQ. hiQ sued and obtained a preliminary injunction requiring LinkedIn to stop blocking it, which the Ninth Circuit affirmed. After Van Buren the case went back for reconsideration, and the Ninth Circuit reached the same conclusion again: where a site is open to the public and no authorization is required in the first place, the CFAA concept of access without authorization likely does not apply.

This gets summarised online as a ruling that scraping public data is legal. That summary is wrong in three specific ways, and the three ways are the useful part.

  • It was a preliminary-injunction posture, not a final merits judgment. The standard at that stage is likelihood of success. Courts were saying the CFAA claim probably fails, which is not a holding that it always does.
  • It is Ninth Circuit law. Persuasive elsewhere, not binding, and other circuits are not obliged to agree.
  • It was about the CFAA, not about contract. LinkedIn later pursued its breach-of-contract theory in the district court and prevailed on it, and the litigation ended in a settlement under which hiQ was restrained from scraping LinkedIn.

That last point is the one to take away. Winning on the CFAA and losing on contract are entirely compatible outcomes. Anyone citing hiQ as blanket permission is citing half a case.

Terms of service and contract claims are a separate risk

A terms-of-service claim is an ordinary contract claim, and it asks a simpler question: was there an agreement, and was it broken? Because the elements are simpler, this is now the more common route for an operator who wants a scraper to stop.

Whether terms bind you depends heavily on how they were presented. Terms you actively clicked to accept when creating an account are routinely enforced. Terms sitting behind a footer link, never surfaced to a visitor who only read a product page, are on much weaker ground, and courts have often been sceptical of them. There is no clean rule, and the analysis is fact-specific enough to be a real question for counsel.

Two things reliably strengthen the operator's position. Account creation converts a passive notice into an accepted agreement. A cease-and-desist removes any argument that you did not know what they wanted. Continuing unchanged after a direct, addressed demand changes the character of the conduct in every framework at once, including the access question.

Separately, hitting a site hard enough to degrade it can support older trespass-to-chattels claims, which generally turn on demonstrating actual interference with or harm to the system. That risk is self-inflicted and avoidable: a collector staying well inside the traffic a site handles routinely does not create it.

Which legal question each collection method raises
What the collector doesComputer-crime exposureContract exposureCopyright exposureShape of the risk
Reads public product pages while logged out, at a modest rateLow. No gate is being passedTurns on whether footer-only terms bind a visitor at allLow if only facts such as price and availability are keptThe ordinary case, where most price monitoring sits
Creates an account and collects while logged inMaterially higher. Credentials passed a gateHigh. Clicked terms are the strongest formUnchanged by the login itselfA decision, not a technical shortcut
Continues after a cease-and-desist or a targeted blockContested and fact-specific, and notice cuts against youHigh. Notice removes ambiguity about knowledgeUnchangedWhere most real disputes actually begin
Solves CAPTCHAs, rotates IPs to evade a block, or uses another party's credentialsHighest. Evasion reads as circumventionHighMay attract additional circumvention theoriesNot a grey area worth exploring
Requests fast enough to slow the site downAdds trespass-style claims turning on demonstrated harmHighUnchangedEntirely preventable with rate limiting
Republishes competitor descriptions, photos or reviewsUnchangedUnchangedHigh. That material is expression owned by someoneA publishing decision, separate from collection

Read each row as a set of independent questions rather than a single score. Rows compound: an account plus evasion plus republication is three problems, not one.

Facts are not copyrightable, expression is

Copyright protects original expression, not facts. In Feist Publications v. Rural Telephone Service Co., the Supreme Court held that an alphabetical white-pages listing lacked the minimal originality copyright requires, and rejected the idea that effort alone earns protection.

A price is a fact. So is a stock status, a shipping threshold, a GTIN, or the observation that a listing was discounted on a Thursday. A product description, a lifestyle photograph, a customer review and an editorial buying guide are expression, and they belong to whoever created them. That line maps neatly onto what a price monitoring system should keep: numbers, identifiers, states and timestamps. One nuance: an original selection or arrangement of facts can attract protection even when the individual facts do not, so reading one competitor price is not the same act as reproducing their entire curated catalogue.

The EU sui generis database right

The European Union has a right the United States does not. Under the EU Database Directive, the maker of a database who made a substantial investment in obtaining, verifying or presenting its contents can prevent extraction or reutilisation of a substantial part, independently of copyright. European case law distinguishes investment in obtaining data that already existed from investment in creating it, which narrows the right, but it applies where copyright would not. If you collect from EU storefronts, do not assume the US analysis travels.

GDPR is about people, and a price is not a person

GDPR governs personal data, meaning information relating to an identified or identifiable natural person. The price of a cordless drill is not personal data. Neither is its stock status or its currency. A programme storing only product identifiers, prices, availability and timestamps is largely outside the regulation, and saying so plainly beats the vague compliance language that usually surrounds the topic.

What brings GDPR into play is everything else on the page. Marketplace seller names are frequently individual traders. Review text, reviewer handles and Q and A threads are personal data, and once stored the record is in scope. The cheapest control is to drop those fields at extraction time. If you never keep the reviewer name, you never have to answer a question about it.

robots.txt is a norm, not a statute

The Robots Exclusion Protocol is a convention site operators use to tell automated clients which paths they would prefer left uncrawled. It was eventually written up as an IETF standard, which gave it a stable specification, but a standard is not legislation. Ignoring a Disallow line is not itself a crime in the United States, and honouring one is not a defence to anything.

It matters anyway. robots.txt is a public, dated, unambiguous statement of what the operator asked for, so if a dispute happens the first exhibit is what the file said and what your collector did. A collector that quietly respected a Disallow tells a coherent story. One that walked straight through it has made every other argument harder to run.

A practical compliance checklist for price collection

None of the following guarantees an outcome. It removes the easy arguments against you, so that any dispute has to be fought on the hard ones. Every item is cheap relative to what it prevents.

  1. 1

    Stay logged out

    Collect only what a visitor with no account can see. If a source genuinely requires an account, escalate it as a business decision rather than solving it in code.

  2. 2

    Do not circumvent access controls

    No CAPTCHA solving, no credential sharing, no rotating identities to defeat a block aimed at you. A block is a message. Route it to whoever owns the relationship.

  3. 3

    Rate limit, and stay boring

    Cap concurrency per domain, spread checks across the day, back off on 429 and 5xx, and never retry aggressively into an error. A collector that never appears in a capacity conversation never generates a harm argument.

  4. 4

    Identify your crawler honestly

    Send a descriptive user agent with a URL or contact address. Anonymity looks like evasion. Being reachable means the first contact is an email rather than a letter from a law firm.

  5. 5

    Take facts, not content

    Store price, currency, availability, promotion state, identifiers and timestamps. Do not store descriptions, photographs, review text or reviewer identities. Enforce it in the extraction schema so it cannot drift by habit.

  6. 6

    Respect robots.txt

    Fetch it, parse it, cache it, obey it, log the decision. When a Disallow removes a source you need, ask through the front door instead of routing around it.

  7. 7

    Keep records

    Retain what you requested, when, from where, what the response was, and how the collector was configured at that moment. A dispute arriving eighteen months later is answerable only from logs you already had.

  8. 8

    Have a stop procedure and use it

    Decide in advance who receives a cease-and-desist, how fast that domain is paused, and who reviews it. The worst version is a letter sitting in a shared inbox while the collector keeps running.

Evidence EV-20260274 — Aurora Buds Pro — Sand

primedeck.example/listing/p-8-outletrun

Aurora Buds Pro — Sand

Sold by OutletRun

$115.50$162.23

Advertised price as displayed at capture time.

Evidence ID
EV-20260274
Captured
2026-07-23 06:14:52 UTC
MAP price
$162.23
Advertised
$115.50
Below MAP
$46.73 (28.8%)
Seller
OutletRun
Channel
PrimeDeck Marketplace
First seen
6 days ago
Repeat offences
1
Storage
Write-once, retention locked
Verification
Price read from the rendered page
Record-keeping in practice: a timestamped page capture with the source URL, the observed price and the exact time of collection, from the Northline Supply demo tenant.

If you are building this yourself, the mechanics are covered in how to scrape competitor prices. If you would rather not run the crawler at all, that is what our competitor price monitoring does: logged out, rate limited, with a full collection log per source.

Questions worth taking to a lawyer, not to a forum

  • Which of our sources are collected while logged in, and can any move to logged-out collection?
  • Which terms of service have we actually accepted by clicking, as opposed to terms that merely exist in a footer?
  • What is our exposure if a source operator sends a cease-and-desist tomorrow, and what happens in the first 24 hours?
  • Do we store any personal data at all, including marketplace seller names, and is that deliberate?
  • Do we collect from EU storefronts, and has anyone looked at the database right for those sources?
  • Do we republish anything we collect, on any customer-facing surface, and is it facts or expression?

Collection you do not have to defend

Logged-out collection, published rate limits, honoured robots.txt, facts rather than content, and a per-source log of every request. Start a 14-day trial with no credit card, or ask for a walkthrough of how collection is configured.

Frequently asked questions

Is web scraping legal in the United States?

There is no single statute that answers this. Scraping publicly visible pages while logged out raises different questions than reaching data behind a login, and computer-crime law, contract law, copyright and data protection each apply on their own terms. Most competitor price collection can be run so that only the access and contract questions are live, and both can be managed. This is educational information, not legal advice.

Did hiQ v. LinkedIn make scraping public data legal?

No. The Ninth Circuit concluded that the CFAA concept of access without authorization likely does not apply to a site open to the public, but that was a preliminary-injunction ruling in one circuit about one statute. LinkedIn later prevailed on its separate breach-of-contract theory, and the litigation ended with hiQ restrained from scraping. Winning on computer crime and losing on contract are compatible outcomes.

Does violating a website's terms of service make scraping a federal crime?

After Van Buren v. United States in 2021, that argument is much weaker. The Supreme Court read the CFAA as covering access to areas of a computer that are off-limits to you, not misuse of information you were entitled to reach. A terms violation can still support an ordinary breach-of-contract claim, which is a separate matter with separate remedies.

Is it legal to scrape competitor prices specifically?

Price data is unusually favourable ground because a price is a fact, and facts are not protected by copyright. Prices are also normally published to the public without any login. The remaining questions are about method rather than data: stay logged out, rate limit, do not circumvent blocks, and store numbers and identifiers rather than descriptions, photographs or reviews. Confirm your own position with counsel.

Do I have to obey robots.txt?

Not as a matter of US statute. The Robots Exclusion Protocol is a convention with a published technical specification, not legislation, and ignoring it is not itself a crime. It still matters, because it is a dated public record of what the site operator asked for. Disregarding a clear Disallow makes every other argument you might need to make harder to run.

Does GDPR apply to scraping competitor prices?

Not to the prices themselves. GDPR governs personal data about identifiable people, and a shelf price, a stock status and a currency code are not personal data. It becomes relevant the moment you also capture marketplace seller names that belong to individuals, review text or reviewer handles. The cheapest control is to discard those fields during extraction rather than store and manage them.

What is the riskiest thing a price scraper can do?

Continue unchanged after receiving a direct cease-and-desist, or evade a block that was clearly aimed at it. Both remove any argument that the collection was unknowing or incidental, and both make the conduct look deliberate in every framework at once. Rate-limit problems and login-based collection are close behind, and all three are avoidable by design.

Start monitoring in the next ten minutes

Connect your store, match your catalogue and get your first competitor comparison in the same session.

14 days, no credit card, cancel in one click.