Swiggy

Search Swiggy restaurants near a location

Returns restaurants delivering to a latitude/longitude, optionally filtered by a keyword or browsed within a curated collection. With no query and no collection_id this browses the nearby-restaurant listing; with a query it runs a keyword search across restaurant names, cuisines, and dishes; with a collection_id (from /swiggy/collections) it browses restaurants within that curated collection. query and collection_id are mutually exclusive. Keyword search has two result tabs, selected with tab: dish (the default) returns restaurants that serve a matching dish, each with the matching dishes, their prices, and Swiggy's own per-dish rating where it has one, in a dishes array; restaurant returns restaurants whose own name or cuisine matches, a wider set with no dishes. tab, veg, min_rating and offers are only valid together with query. sort works with either query (relevance, delivery_time, rating) or collection_id (those three plus cost_low_to_high and cost_high_to_low), and is rejected on a plain nearby browse. Each restaurant carries its id (the value the restaurant and menu endpoints take), name, cuisines, cost for two, rating, delivery time, open/closed status, a hero image, and, where one is shown, an external_rating block with the third-party aggregate score, count, and source. Where the result card advertises a promotion it also carries offers, the same title/description/tag shape /swiggy/restaurant returns (a listing card never carries a coupon code, and a card showing both a discount and a separate free-delivery benefit returns them as two entries). is_promoted is present and true only for a result Swiggy itself labels a sponsored placement rather than an organic one. unavailable_message is present only when Swiggy says the restaurant cannot currently be ordered from and carries its own reason; it is not the inverse of is_open, since Swiggy reports a restaurant as open while still refusing orders for the requested location. A plain nearby browse also returns is_serviceable, which says whether Swiggy delivers to the requested coordinates at all: false means the coordinates are outside Swiggy's delivery coverage, so the empty restaurants list is a coverage answer rather than a no-matches answer, while an empty list without the field means no matches in a served area. It is omitted on keyword search and on a collection_id browse, neither of which carries Swiggy's own coverage marker.

get/swiggy/search

Request

  • Base URL: https://api.crawlora.net/api/v1
  • URL: https://api.crawlora.net/api/v1/swiggy/search
  • Auth: API key in header x-api-key

Query parameters

latitudenumber required

Search center latitude

longitudenumber required

Search center longitude

querystring

Optional keyword to search restaurants and dishes by, at least 2 characters. Mutually exclusive with collection_id.

collection_idstring

Optional curated collection id from /swiggy/collections's id field. Browses restaurants within that collection instead of the plain nearby listing. Mutually exclusive with query.

sort'relevance' | 'delivery_time' | 'rating' | 'cost_low_to_high' | 'cost_high_to_low'

Optional sort order. With query: relevance, delivery_time, rating. With collection_id: those three plus cost_low_to_high and cost_high_to_low. Not valid on a plain nearby browse.

offsetstring

Opaque pagination cursor from a prior response's next_offset (not meaningful when query is set)

tab'dish' | 'restaurant'

Which keyword-search result tab to read: dish (default, restaurants serving a matching dish, each with a dishes array) or restaurant (restaurants whose own name/cuisine matches). Only valid together with query.

vegboolean

Only return vegetarian results: veg dishes on tab=dish, pure-veg restaurants on tab=restaurant. Only valid together with query.

min_ratingnumber

Only return restaurants rated at or above this score (0-5). Only valid together with query.

offersboolean

Only return restaurants currently running an offer. Only valid together with query.

Headers

x-api-keystring required

API key required

Response

OK

codeinteger

Code is the HTTP status code or a custom code used to indicate the result of the request @example 200

msgunknown

Changes

No recorded changes to this operation across all 2 revisions of this API.