# Uber Eats Proxies: 99 Words Until You Render

> We measured Uber Eats via US residential proxies: 99 words over plain HTTP, 42 from a UK exit, 206 rendered for 1.95 MB. Menus need a browser and an address.

[Home](https://quanticdata.io/)/[Blog](https://quanticdata.io/blog/)/Uber Eats Proxies: 99 Words Until You Render

# Uber Eats Proxies: 99 Words Until You Render

Use casesSep 28, 2026·8 min read·By [Aldo Morese](https://quanticdata.io/about/), founder of QuanticData

Words Uber Eats returns to a proxied client on 28 September 2026: 99 words over plain HTTP from a US residential exit, 42 words from a UK exit after a redirect to ubereats.com/gb, and 206 words for 1,951,573 bytes once the page is rendered in a browser

On this page [The search results are about accounts; the autocomplete is about menus](/blog/ubereats-proxies/#the-search-results-are-about-accounts-the-autocomplete-is-ab) [Plain HTTP returns a 99-word shell with the data folded inside it](/blog/ubereats-proxies/#plain-http-returns-a-99-word-shell-with-the-data-folded-insi) [The exit country picks the site, and the site picks the words](/blog/ubereats-proxies/#the-exit-country-picks-the-site-and-the-site-picks-the-words) [The render returns the city list; the address returns the menu](/blog/ubereats-proxies/#the-render-returns-the-city-list-the-address-returns-the-men) [What robots.txt and Uber's terms close off](/blog/ubereats-proxies/#what-robots-txt-and-uber-s-terms-close-off) [The cost of an Uber Eats page on residential bandwidth](/blog/ubereats-proxies/#the-cost-of-an-uber-eats-page-on-residential-bandwidth) [The setting that works on Uber Eats](/blog/ubereats-proxies/#the-setting-that-works-on-uber-eats)

Uber Eats gives a plain HTTP client almost nothing and a browser only a little more, until you set a delivery address. On 28 September 2026 we fetched ubereats.com through residential exits in the United States and the United Kingdom. Plain HTTP from the US: 200 OK, 436,533 bytes, 99 words. Plain HTTP from the UK: a redirect to /gb and 42 words. Rendered from the US: 1,951,573 bytes and 206 words. The setting for Uber Eats proxies is residential, rendered, exit pinned to the market, and an address in the session.

## The search results are about accounts; the autocomplete is about menus

Search Uber Eats proxies from the US and the first page is a BlackHatWorld thread, a Reddit thread about alternate accounts, a scraper-API product, two vendor listicles, an actor listing, two how-to guides, the Uber Eats login page and Uber's help centre. The related searches are new account method, referral bot and promo code. That is the head term's audience, and it is not ours.

Autocomplete for the scraper terms says what buyers actually want: Uber Eats scraper github, Uber Eats menu scraper, scrape Uber Eats data, web scraping Uber Eats. The best of the how-to guides correctly says the site is a JavaScript application that is geo-gated by delivery address and that Uber's terms restrict automated collection. It does not weigh a single response. We did.

## Plain HTTP returns a 99-word shell with the data folded inside it

We audited ubereats.com from a US residential exit with no cookies and no Accept-Language header, then from a UK one, and pulled the raw HTML of the US response.

| Fetch | Exit | Status | Final URL | Bytes | Words |
| --- | --- | --- | --- | --- | --- |
| Homepage, plain HTTP | United States | 200 | / | 436,533 | 99 |
| Homepage, plain HTTP | United Kingdom | 200 | /gb | not weighed | 42 |
| Homepage, rendered | United States | 200 | / | 1,951,573 | 206 |
| robots.txt | United States | 200 | /robots.txt | 42,691 | 27 sitemaps |

The plain response has a canonical, a robots meta of index, follow, an h1 of "Order delivery near you", a WebSite JSON-LD block with a SearchAction, and a noscript block. Ninety-nine words, and the audit marks hasContent as false: there is no restaurant, no price, no city in the text.

The bytes are elsewhere. Inside the 436,533-byte document is a `__REACT_QUERY_STATE__` script: the hydration state Uber's front end reads on load, with the page title and the queries the shell will fill from. For the homepage that state holds navigation, not menus, because no address has been given. But it tells you how the site is built: a thin document plus embedded state plus API calls keyed to a location. That is the shape the whole job has to follow.

## The exit country picks the site, and the site picks the words

From a UK residential exit the same URL did not return the same page. Uber redirected the request to ubereats.com/gb, changed the title to "Food delivery and takeaway" and the description to "takeaways, food shopping and more", and returned 42 words instead of 99. The canonical moved with it. Nothing in the request said United Kingdom; the exit IP did.

Pinning the exit is therefore not a nicety on Uber Eats, it is how you choose which marketplace you are reading. A US job that rotates through a global pool will silently collect /gb, /fr or /au shells with different copy, different currency and different restaurants, and a parser written for one will misread the other. Pin `country=us` for the US site, and pin the market's own country for any other, the same way [Deliveroo](https://quanticdata.io/blog/deliveroo-proxies/) wants a UK exit.

## The render returns the city list; the address returns the menu

Rendered from the US, the homepage grew to 1,951,573 bytes and 206 words. The text that appeared is the part the shell was hiding: the list of 500-plus cities from Akron to West Hollywood and the list of 35 countries with Uber Eats, plus the Uber One promotion. It is 4.5 times the bytes of the plain fetch for twice the words, and it took our browser 50.2 seconds to settle.

That is not a menu either, and it is the honest limit of the homepage. Uber Eats scopes every restaurant, price and delivery estimate to a delivery address, and until one is set in the session the storefront does not exist. So the fetch that returns menus is a rendered session on a residential exit in the right country, with an address entered, held long enough to load the store pages you want. A plain request never gets there, and a rendered request without an address gets a city list.

The city list is worth something on its own. Rendered once, it is the index of every market page, and each market page is a further rendered fetch. Budget the job as sessions, not requests: a sticky residential session per address, the store pages read inside it, and the session released. Our note on [how much proxy data you need](https://quanticdata.io/blog/how-much-proxy-data-do-i-need/) covers the arithmetic for session-shaped jobs.

## What robots.txt and Uber's terms close off

ubereats.com/robots.txt is 42,691 bytes, and almost all of it is a Googlebot block listing hundreds of locale paths it should not crawl. The wildcard agent gets four lines: no delivery-details, no group-orders, no search results with a query string, no select-language. Then 27 sitemap lines: one index and 26 gzipped store sitemaps, sitemap-store-771af823-000 through 025. Uber publishes its store URLs for crawlers and asks scripts to stay off search and checkout.

The terms are stricter than the robots file. Uber's US General Terms of Use grant a licence to use the Services solely for noncommercial use, and state that you may not use the Services or any content available through them, whether or not you are logged in, for any commercial purpose or for developing software, including training machine-learning or AI systems, without Uber's prior written permission. That is one plain line and we leave it plain: commercial use of Uber Eats data is Uber's to license, and a residential IP does not change a contract.

The licensed route exists. The Uber Eats Marketplace APIs on developer.uber.com manage stores, menus and orders for partners, and the page says access may require written approval from Uber. There is no public menu API. Alternate accounts, referral bots and promo farming, which is what the head term's SERP is selling, are outside anything we build. For the US legal ground on public data, see [is web scraping legal in the US](https://quanticdata.io/blog/is-web-scraping-legal-in-us/).

## The cost of an Uber Eats page on residential bandwidth

Every fetch here went through [residential proxies](https://quanticdata.io/residential-proxies/) on the Basic line at $0.80/GB. Counting a gigabyte as 10^9 bytes:

| Job | Bytes per request | Requests per GB | Cost per request |
| --- | --- | --- | --- |
| Homepage, plain HTTP (99 words, shell only) | 436,533 | 2,290 | $0.00035 |
| Homepage, rendered (206 words, city list) | 1,951,573 | 512 | $0.00156 |
| Store page, rendered through the web scraping API | billed per page | n/a | $0.001 |

The first row is the one to stop paying for. Two thousand plain fetches cost 70 cents and return two thousand copies of the same 99-word shell. Spend on rendered sessions with an address set, and count the browser time: 50 seconds a page in our run is the cost line that dwarfs the bandwidth. Mobile exits at $2.30/GB would put the rendered page at $0.00449, 2.9 times more, and no fetch in our run was challenged on the network, so the residential line is the right one.

## The setting that works on Uber Eats

- **Network**: [residential proxies](https://quanticdata.io/residential-proxies/), Basic line, $0.80/GB, sticky sessions so the delivery address survives across the store pages you read.

- **Fetch mode**: rendered, with an address set in the session. Plain HTTP returned 99 words of shell; the render returned 206 words of city and country lists; menus appear only after JavaScript runs against an address. Use `engine: tls` for nothing here except robots.txt and the sitemaps.

- **Country**: pin `country=us` for the US marketplace. A UK exit was redirected to /gb and returned 42 words with a different title; the exit chooses the site.

- **When the proxy is not enough**: there is no Uber Eats collector in our catalogue, and we say so rather than link one. The [web scraping API](https://quanticdata.io/web-scraping-api/) with rendering runs the browser and the residential exit for you at $0.001 per rendered page and bills only on success. For a US restaurant list without a browser, the [DoorDash restaurants collector](https://quanticdata.io/collectors/doordash-scraper-api/) returned 50 rows for Austin, TX in 5.98 seconds; see [DoorDash proxies](https://quanticdata.io/blog/doordash-proxies/) for that measurement.

- The free tier is real: every account gets $2 of free API usage per month, which is 2,000 rendered pages before you pay anything.

### Sources & further reading

- [ubereats.com/robots.txt (fetched 28 September 2026)](https://www.ubereats.com/robots.txt)

- [Uber U.S. General Terms of Use, section 3: The Services, licence and restrictions](https://www.uber.com/us/en/legal/general-terms-of-use/)

- [Uber Eats Marketplace APIs, introduction, Uber Developers](https://developer.uber.com/docs/eats/introduction)

- [Uber Eats store sitemap index](https://www.ubereats.com/sitemap-index-771af823.xml.gz)

## FAQ

Quick answers on uber eats proxies.

[Something else? Ask us →](mailto:hello@quanticdata.io)

### Do I need to render JavaScript to scrape Uber Eats?

Yes. On 28 September 2026 a plain HTTP fetch of ubereats.com through a US residential exit returned 99 words and no restaurant, price or city; the audit marked it as having no content. Rendered, the same page returned 206 words for 1,951,573 bytes, and menus appear only after a delivery address is set in the session.

### Does the proxy exit country change what Uber Eats serves?

It changes the site. The same URL returned 99 words from a US residential exit and was redirected to ubereats.com/gb from a UK exit, where it returned 42 words with a different title, description and canonical. Pin the exit to the marketplace you are reading; a rotating global pool will mix shells from several countries into one dataset.

### Where is the data in the no-JS Uber Eats HTML?

In a __REACT_QUERY_STATE__ script inside the 436,533-byte document, which holds the hydration state the front end reads on load. For the homepage that state carries navigation and the page title, not menus, because no address has been given. The document also carries a WebSite JSON-LD block and a noscript fallback, and 99 words of visible text.

### How much does scraping Uber Eats cost in proxy bandwidth?

On residential Basic at $0.80/GB, counting a gigabyte as 10^9 bytes, the rendered homepage is 1,951,573 bytes and $0.00156 and the plain shell is 436,533 bytes and $0.00035. Through the web scraping API a rendered page is $0.001 and billed only on success. The browser time, 50.2 seconds for the homepage in our run, is the larger budget line.

### Does Uber allow scraping Uber Eats menus?

Not commercially without permission. Uber’s US General Terms of Use license the Services for noncommercial use only and prohibit using any content, logged in or not, for any commercial purpose or for developing software, including training machine-learning or AI systems, without Uber’s prior written permission. The licensed route is the Uber Eats Marketplace APIs for partners; there is no public menu API. robots.txt itself excludes only 4 paths for the wildcard agent.

### Is there an Uber Eats collector?

No. We ship 100 collectors and none of them reads Uber Eats, so the answer is the web scraping API with rendering at $0.001 a page, driven from the 27 sitemap files Uber publishes for its store URLs. For a US restaurant list without a browser, the DoorDash restaurants collector returned 50 rows for one city in 5.98 seconds.

## Render it once, from the right country

Fetch an Uber Eats URL plain and rendered from the exit you choose, compare the two views side by side, and pay only for pages that arrive. Every account gets $2 of free API usage per month.

[Start free — $2/month included](https://quanticdata.io/signup/)[Explore Residential Proxies from $0.80/GB](https://quanticdata.io/residential-proxies/)

## Related reading

[Use cases DoorDash Proxies: 485 Words, No Browser Needed DoorDash measured on 28 September 2026 through residential exits in the United States and Canada. The homepage answers a plain HTTP client with 200 OK and 485 words; a store page answers with 2.95 MB and 1,087 words of menu and prices, no JavaScript run. The browser is the one thing you should not buy here. When you want rows instead of pages, the DoorDash restaurants collector returned 50 restaurants for Austin, TX in 5.98 seconds. Read →](https://quanticdata.io/blog/doordash-proxies/) [Use cases PayPal Proxies: 1 Static IP for Payflow PayPal proxies, the developer version. Payflow Pro lets a merchant allowlist up to 16 Internet-facing server IPs in PayPal Manager and answers everything else with RESULT=1, User authentication failed. PayPal’s own help says REST and Classic APIs need no allowlisting and recommends DNS over hard-coded ranges. For an app on cloud infrastructure whose egress changes, a dedicated static ISP IP is one address to register once. Measured on 28 September 2026: paypal.com/us/home is 1,693 words over plain HTTP from the US and identical from Germany, so nothing here needs a browser either. Read →](https://quanticdata.io/blog/paypal-proxies/) [Use cases Zillow Proxies: 747 Words Over Plain HTTP Zillow measured on 28 September 2026 through residential exits in the United States and Germany. The homepage answers a plain HTTP client with 200 OK and 747 words from both countries; a listing page answers with 755,913 bytes and its price, beds, baths and square feet in the meta description, no JavaScript run. The browser is the one thing not to buy here. For rows, the Zillow search collector returned 20 listings for Austin, TX in 3.02 seconds and the Redfin collector 50 of 240 for one ZIP in 7.01. Read →](https://quanticdata.io/blog/zillow-proxies/)

## Also on this site

Quantic**Data**

Residential proxies & web data APIs for AI.

#### Proxies

- [Residential Basic](https://quanticdata.io/residential-proxies/#basic)

- [Residential Premium](https://quanticdata.io/residential-proxies/#plans)

- [Cheap Residential](https://quanticdata.io/cheap-residential-proxies/)

- [Mobile Proxies](https://quanticdata.io/mobile-proxies/)

- [Datacenter Proxies](https://quanticdata.io/datacenter-proxies/)

- [ISP Proxies](https://quanticdata.io/isp-proxies/)

- [Rotating Proxies](https://quanticdata.io/rotating-proxies/)

- [Sneaker Proxies](https://quanticdata.io/sneaker-proxies/)

- [SOCKS5 Proxies](https://quanticdata.io/socks5-proxies/)

- [IPv6 Proxies](https://quanticdata.io/ipv6-proxies/)

- [Proxy locations](https://quanticdata.io/proxies/)

#### Data APIs

- [MCP Server](https://quanticdata.io/mcp-server/)

- [Web Scraper API](https://quanticdata.io/web-scraping-api/)

- [SERP API](https://quanticdata.io/serp-api/)

- [Collectors](https://quanticdata.io/collectors/)

- [Web Data for AI](https://quanticdata.io/web-data-api-for-ai/)

- [Quantic AI](https://quanticdata.io/ai-web-scraping-service/)

- [Crawl & Map](https://quanticdata.io/crawl-map/)

- [SEO Audit](https://quanticdata.io/seo-audit/)

#### Use cases

- [Company data](https://quanticdata.io/scrape-company-data/)

- [Price monitoring](https://quanticdata.io/competitor-price-monitoring/)

- [Market research](https://quanticdata.io/market-research-data/)

- [Real estate data](https://quanticdata.io/real-estate-data-scraping/)

- [Scrape job postings](https://quanticdata.io/scrape-job-postings/)

#### Company

- [Documentation](https://quanticdata.io/docs/)

- [Blog](https://quanticdata.io/blog/)

- [Free tools](https://quanticdata.io/tools/)

- [Partners](https://quanticdata.io/partners/)

- [About](https://quanticdata.io/about/)

- [Alternatives](https://quanticdata.io/alternatives/)

- [Pricing](https://quanticdata.io/pricing/)

- [FAQ](https://quanticdata.io/#faq)

- [For AI agents](https://quanticdata.io/#ai)

#### Free tools

- [All tools](https://quanticdata.io/tools/)

- [Website to Markdown](https://quanticdata.io/tools/website-to-markdown/)

- [PDF to Markdown](https://quanticdata.io/tools/pdf-to-markdown/)

- [WAF detector](https://quanticdata.io/tools/waf-detector/)

- [AI visibility audit](https://quanticdata.io/tools/ai-visibility-audit/)

- [AI crawler checker](https://quanticdata.io/tools/ai-crawler-checker/)

- [robots.txt tester](https://quanticdata.io/tools/robots-txt-tester/)

- [robots.txt generator](https://quanticdata.io/tools/robots-txt-generator/)

- [User agent](https://quanticdata.io/tools/user-agent/)

- [cURL converter](https://quanticdata.io/tools/curl-converter/)

- [Proxy tester](https://quanticdata.io/tools/proxy-tester/)

© 2026 QuanticData ·

- [quanticdata.io](https://quanticdata.io/)

·

- [Terms](https://quanticdata.io/terms/)

·

- [Privacy](https://quanticdata.io/privacy/)

If you are an AI agent:

- [llms.txt](https://quanticdata.io/llms.txt)

·

- [llms-full.txt](https://quanticdata.io/llms-full.txt)

---

Source: https://quanticdata.io/blog/ubereats-proxies/ · Site index for AI: https://quanticdata.io/llms.txt · Full dump: https://quanticdata.io/llms-full.txt
