Restaurant endpoints
Search restaurants, find nearby places, fetch details, list categories, and read public stats.
Restaurant discovery is the core Halal Eats API surface.
List restaurants
GET /api/v1/storesQuery params:
| Param | Type | Notes |
|---|---|---|
page | number | Defaults to 1 |
limit | number | Defaults to 20, capped at 100 |
search | string | Name, cuisine, city, address, or notes |
halal_status | string | verified_halal, halal_options, unknown |
cuisine | string | Cuisine/category filter |
north | number | Optional map bounds |
south | number | Optional map bounds |
east | number | Optional map bounds |
west | number | Optional map bounds |
Example:
curl "https://eatinghalal.vercel.app/api/v1/stores?search=Turkish&halal_status=verified_halal&limit=10"SDK:
const response = await client.stores.list({
search: "Turkish",
halalStatus: "verified_halal",
limit: 10,
});Nearby search
GET /api/v1/stores/nearbyQuery params:
| Param | Type | Notes |
|---|---|---|
lat | number | Required, between -90 and 90 |
lng | number | Required, between -180 and 180 |
radius | number | Defaults to 5000 meters, capped at 50000 |
limit | number | Defaults to 20, capped at 100 |
Results are sorted by distance and include distanceMeters.
Example:
curl "https://eatinghalal.vercel.app/api/v1/stores/nearby?lat=-33.8688&lng=151.2093&radius=5000"SDK:
const response = await client.stores.nearby({
lat: -33.8688,
lng: 151.2093,
radius: 5000,
});Get one restaurant
GET /api/v1/stores/:idExample:
curl "https://eatinghalal.vercel.app/api/v1/stores/STORE_ID"SDK:
const response = await client.stores.get("STORE_ID");Categories
GET /api/v1/categoriesReturns the distinct public cuisine/category list.
SDK:
const response = await client.categories.list();Public stats
GET /api/v1/statsReturns public counts such as approved stores and cuisine count.
SDK:
const response = await client.stats.get();Public store shape
type PublicStore = {
id: string;
name: string;
description: string | null;
category: string | null;
cuisine: string | null;
address: string;
city: string | null;
state: string | null;
country: string | null;
phone: string | null;
website: string | null;
coverImageUrl: string | null;
halalStatus: "verified_halal" | "halal_options" | "unknown";
halalStatusLabel: "Fully halal" | "Halal options" | "Unknown";
halalVerificationMethod: string | null;
halalVerificationDetails: string | null;
latitude: number | null;
longitude: number | null;
rating: number;
reviewCount: number;
hours: string;
menuItems: PublicMenuItem[];
reviewHighlights: PublicReviewHighlight[];
images: PublicImage[];
distanceMeters?: number;
};Data notes
- Coordinates are
nullwhen unknown. not_halallistings are excluded from public discovery.- Pending or rejected community content is not returned.
- Public review highlights do not expose user account IDs.