Uber Eats menu item with its options
One menu item of an Uber Eats store: name, description, price, sold-out and suspension details, images, dietary labels, endorsements, nutrition facts and every option group (name, min and max choices, required flag) with each option's name, extra price, default quantity, sold-out flag and nested sub-groups. Identify the item by the ids from /ubereats/v1/store, or by the store (url, id or store_id) plus name, which opens the first menu item whose name contains it.
Every response includes credits_used: the credits this call cost.
Parameters
| name | type | description |
|---|---|---|
url | string | The store's link (with name). Example: https://www.ubereats.com/store/joes-pizza-times-square-1435-broadway/F9A-B2bKRg-ikAd0B8uzgg |
name | string | Part of the item's name (with url, id or store_id). Example: cheese pie |
store_id | string | The store UUID. Example: F9A-B2bKRg-ikAd0B8uzgg |
item_id | string | The item's id (from /ubereats/v1/store). |
section_id | string | The item's section_id (from /ubereats/v1/store). |
subsection_id | string | The item's subsection_id (from /ubereats/v1/store). |
locale | string | Language and market of the texts, e.g. en-US, en-GB, fr-FR, es-MX (default en-US). |
Every endpoint also takes fresh, raw, fields (see lean responses and caching).
Example
curl "https://api.api.sh/ubereats/v1/item?url=https%3A%2F%2Fwww.ubereats.com%2Fstore%2Fjoes-pizza-times-square-1435-broadway%2FF9A-B2bKRg-ikAd0B8uzgg" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/ubereats/v1/item",
params={"url": "https://www.ubereats.com/store/joes-pizza-times-square-1435-broadway/F9A-B2bKRg-ikAd0B8uzgg"},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/ubereats/v1/item");
url.searchParams.set("url", "https://www.ubereats.com/store/joes-pizza-times-square-1435-broadway/F9A-B2bKRg-ikAd0B8uzgg");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); Response
A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).