Rappi search across stores

GET https://api.api.sh/rappi/v1/search
1 credit / call food & delivery try it in the playground →

Rappi's search across every store that delivers to a location (restaurants, supermarkets, pharmacies, Rappi Mall, pets, express and liquor stores), as the site's search page shows it: each store with id, name, type and section, brand, link, status, open flag, rating, ETA, delivery cost, minimum order, offers (tag, title, value, end date), today's hours and logo, and the store's matching products or dishes (id, name, price, list price, discount, availability, stock, has-options flag, presentation, unit price, category, EAN, age and prescription flags, image). Also the sections the search found results in (for store_type) and stores out of delivery range. Without lat/lon the country's main city is used. The search returns one list (next_page is always null); limit caps the stores returned.

Every response includes credits_used: the credits this call cost.

Parameters

nametypedescription
qrequired string What to search for (a dish, product or store name, in the country's language, e.g. pizza, coca cola, hamburguesa). Example: pizza
country string br (default), co, mx, ar, cl, pe, uy, ec or cr.
lat number Delivery location latitude (with lon); default the country's main city, e.g. -23.5843 for Sao Paulo.
lon number Delivery location longitude (with lat), e.g. -46.6746.
store_type string Only one section of the search: restaurant, market (supermarkets), pharmacy, mall (Rappi Mall), pets, express or liquor, or any value from sections in a response (sections differ a little by country).
sort relevance | delivery_price | delivery_eta relevance (default), delivery_price (cheapest delivery first) or delivery_eta (fastest first).
limit integer Stores to return (1-100, default 50).

Every endpoint also takes fresh, raw, fields (see lean responses and caching).

Example

curl "https://api.api.sh/rappi/v1/search?q=pizza" \
  -H "x-api-key: $APISH_KEY"

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).

The fastest way to see the full response is the playground: it runs this endpoint with your account and shows the exact JSON.