# Food & Drink — Zapi reference > Every Food & Drink endpoint on Zapi, with parameters, request shape and an example response. **Base URL:** `https://api.zpi.web.id` **Auth:** Send `x-api-key: YOUR_KEY` header on every request. Get a key at https://zpi.web.id/dashboard/keys (free tier — 2,000 req/mo, no credit card). **Response envelope:** `{ status: "success" | "error", message: string, content: }` **Rate limit:** 60 req/min (free tier). Per-endpoint cache TTL is documented below. **Errors:** standard HTTP codes (`401` invalid key, `429` rate limited, `5xx` upstream). Body always has `{ status: "error", message, errors? }`. ```bash curl "https://api.zpi.web.id/v1/CATEGORY:SCRAPER/ENDPOINT?param=value" \ -H "x-api-key: $ZAPI_KEY" ``` **Category page:** https://zpi.web.id/category/food **Full catalog:** https://zpi.web.id/apis · **Index:** https://zpi.web.id/llms-full.txt --- ## Cookpad **Category:** food · **Slug:** `cookpad` **Detail page:** https://zpi.web.id/api/food/cookpad Cookpad recipe scraper — cari resep berdasarkan kata kunci, ambil detail resep, bahan, langkah dan waktu. **Tags:** food, recipe, Cookpad ### Search Recipes - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/food:cookpad/search` - **Cache TTL:** 3600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `q` | string | query | yes | Kata kunci resep yang dicari | | `page` | number | query | no | Halaman hasil pencarian. Default 1, max 50 | **cURL:** ```bash curl "https://api.zpi.web.id/v1/food:cookpad/search?q=ayam%20kecap&page=1" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/food:cookpad/search?q=ayam%20kecap&page=1", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/food:cookpad/search?q=ayam%20kecap&page=1", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "count": 30, "items": [ { "id": "25801704", "url": "https://cookpad.com/id/resep/25801704", "title": "Ayam Kecap Berempah🧄🍗", "author": "", "imageUrl": "", "prepTime": "1 jam", "servings": null, "ingredients": [] }, { "id": "25796387", "url": "https://cookpad.com/id/resep/25796387", "title": "Tumis Ayam Kecap Cabe Rawit", "author": "", "imageUrl": "", "prepTime": "30 menit", "servings": null, "ingredients": [] }, { "id": "25765289", "url": "https://cookpad.com/id/resep/25765289", "title": "Ayam Kecap Bawang Bombay", "author": "", "imageUrl": "", "prepTime": "1 jam 30 menit", "servings": null, "ingredients": [] }, { "id": "25773409", "url": "https://cookpad.com/id/resep/25773409", "title": "Ayam kecap", "author": "", "imageUrl": "", "prepTime": null, "servings": "5 porsi", "ingredients": [] }, { "id": "25789506", "url": "https://cookpad.com/id/resep/25789506", "title": "Ayam Kecap di Mie Ayam 🍜", "author": "", "imageUrl": "", "prepTime": "2 jam", "servings": null, "ingredients": [] }, { "id": "25793629", "url": "https://cookpad.com/id/resep/25793629", "title": "Ayam Kecap Rempah", "author": "Melv", "imageUrl": "https://img-global.cpcdn.com/users/f5bafbc4c625f405/24x24cq50/avatar.jpg", "prepTime": null, "servings": null, "ingredients": [] }, { "id": "25782700", "url": "https://cookpad.com/id/resep/25782700", "title": "Topping Mie Ayam - Ayam Bumbu Kecap", "author": "", "imageUrl": "", "prepTime": "45 Menit", "servings": null, "ingredients": [] }, { "id": "25765752", "url": "https://cookpad.com/id/resep/25765752", "title": "Ayam Kecap Super Yummy", "author": "Mahbubah Najah (The Luckiest Woman)", "imageUrl": "https://img-global.cpcdn.com/users/f48ff6ba40e27c9b/24x24cq50/avatar.jpg", "prepTime": null, "servings": null, "ingredients": [] }, { "id": "25765485", "url": "https://cookpad.com/id/resep/25765485", "title": "Mie Ayam Kecap", "author": "Aurelia Evelinadine", "imageUrl": "https://img-global.cpcdn.com/users/b7716b91c2db0bfd/24x24cq50/avatar.jpg", "prepTime": null, "servings": null, "ingredients": [] }, { "id": "25758610", "url": "https://cookpad.com/id/resep/25758610", "title": "Bakpao Labu Ayam Kecap", "author": "", "imageUrl": "", "prepTime": "1 jam", "servings": null, "ingredients": [] }, { "id": "25756182", "url": "https://cookpad.com/id/resep/25756182", "title": "Ayam Kecap", "author": "", "imageUrl": "", "prepTime": "30 menit", "servings": null, "ingredients": [] }, { "id": "25752375", "url": "https://cookpad.com/id/resep/25752375", "title": "Ayam Kecap Isian Pau", "author": "", "imageUrl": "", "prepTime": "20 menit", "servings": null, "ingredients": [] }, { "id": "25753387", "url": "https://cookpad.com/id/resep/25753387", "title": "Bakpao Labu Kuning Isi Ayam Kecap", "author": "", "imageUrl": "", "prepTime": "1 jam 30 menit", "servings": null, "ingredients": [] }, { "id": "25749939", "url": "https://cookpad.com/id/resep/25749939", "title": "Bakpao No Mixer (Isi Ayam Kecap)", "author": "", "imageUrl": "", "prepTime": "1 jam 30 menit", "servings": null, "ingredients": [] }, { "id": "25749945", "url": "https://cookpad.com/id/resep/25749945", "title": "Ayam Kecap untuk Isian Bakpao", "author": "", "imageUrl": "", "prepTime": "30 menit", "servings": null, "ingredients": [] }, { "id": "25751354", "url": "https://cookpad.com/id/resep/25751354", "title": "Bakpao Ayam Kecap (no mixer)", "author": "", "imageUrl": "", "prepTime": "1 jam 30 menit", "servings": null, "ingredients": [] }, { "id": "25752523", "url": "https://cookpad.com/id/resep/25752523", "title": "Ayam Kecap Isian Bakpao", "author": "", "imageUrl": "", "prepTime": "60 menit", "servings": null, "ingredients": [] }, { "id": "25753089", "url": "https://cookpad.com/id/resep/25753089", "title": "Isian Bakpao: Ayam Kecap", "author": "", "imageUrl": "", "prepTime": "30 menit", "servings": null, "ingredients": [] }, { "id": "25752644", "url": "https://cookpad.com/id/resep/25752644", "title": "Ayam Kecap", "author": "", "imageUrl": "", "prepTime": "25 menit", "servings": null, "ingredients": [] }, { "id": "25751097", "url": "https://cookpad.com/id/resep/25751097", "title": "Isian Ayam Kecap", "author": "", "imageUrl": "", "prepTime": "20 menit", "servings": null, "ingredients": [] }, { "id": "25751726", "url": "https://cookpad.com/id/resep/25751726", "title": "Bakpao Isi Ayam Kecap", "author": "", "imageUrl": "", "prepTime": "2 jam", "servings": null, "ingredients": [] }, { "id": "25751181", "url": "https://cookpad.com/id/resep/25751181", "title": "Ayam Kecap (Isian Bakpao)", "author": "", "imageUrl": "", "prepTime": "20 menit", "servings": null, "ingredients": [] }, { "id": "25721052", "url": "https://cookpad.com/id/resep/25721052", "title": "Bakpao Mawar Isi Ayam Kecap (No Mixer)", "author": "", "imageUrl": "", "prepTime": "1 Jam 30 Menit", "servings": null, "ingredients": [] }, { "id": "25749448", "url": "https://cookpad.com/id/resep/25749448", "title": "Bakpao Isi Ayam Kecap (No Mixer)", "author": "", "imageUrl": "", "prepTime": "1 jam", "servings": null, "ingredients": [] }, { "id": "25746831", "url": "https://cookpad.com/id/resep/25746831", "title": "Bakpao Ayam Kecap Tanpa Tepung Tangmien", "author": "", "imageUrl": "", "prepTime": "2 jam", "servings": null, "ingredients": [] }, { "id": "25746528", "url": "https://cookpad.com/id/resep/25746528", "title": "Ayam Kecap Bawang Bombay", "author": "", "imageUrl": "", "prepTime": "45 menit", "servings": null, "ingredients": [] }, { "id": "25744194", "url": "https://cookpad.com/id/resep/25744194", "title": "Pao Sushi (Isi Ayam Kecap)", "author": "", "imageUrl": "", "prepTime": "1 jam 30 menit", "servings": null, "ingredients": [] }, { "id": "25735880", "url": "https://cookpad.com/id/resep/25735880", "title": "Bakpao isi Ayam Kecap", "author": "", "imageUrl": "", "prepTime": "1 jam 30 Menit", "servings": null, "ingredients": [] }, { "id": "25739781", "url": "https://cookpad.com/id/resep/25739781", "title": "1100. Bakpao Ayam Kecap Metode No Mixer", "author": "", "imageUrl": "", "prepTime": "90 menit", "servings": null, "ingredients": [] }, { "id": "25734888", "url": "https://cookpad.com/id/resep/25734888", "title": "Bakpao Ayam kecap", "author": "", "imageUrl": "", "prepTime": "1 jam 30 menit", "servings": null, "ingredients": [] } ], "query": "ayam kecap", "hasMore": true, "nextPage": 2 } ``` --- ### Get Recipe Detail - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/food:cookpad/detail` - **Cache TTL:** 3690s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `url` | string | query | yes | URL resep cookpad.com | **cURL:** ```bash curl "https://api.zpi.web.id/v1/food:cookpad/detail?url=https%3A%2F%2Fcookpad.com%2Fid%2Fresep%2F25801704" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/food:cookpad/detail?url=https%3A%2F%2Fcookpad.com%2Fid%2Fresep%2F25801704", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/food:cookpad/detail?url=https%3A%2F%2Fcookpad.com%2Fid%2Fresep%2F25801704", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "id": "25801704", "url": "https://cookpad.com/id/resep/25801704", "steps": [ { "text": "Haluskan bawang putih, bawang merah, merica, dan ketumbar.", "images": [] }, { "text": "Panaskan minyak dengan api sedang, tumis bumbu halus hingga harum.", "images": [] }, { "text": "Masukkan daun salam, daun jeruk, laos, dan sedikit kayu manis. Tumis hingga aroma rempah keluar.", "images": [] }, { "text": "Masukkan ayam, aduk hingga berubah warna.", "images": [] }, { "text": "Tambahkan kecap manis, garam, penyedap, dan sedikit gula jawa.", "images": [] }, { "text": "Tuang sedikit air, lalu masak hingga ayam empuk dan bumbu meresap.", "images": [] }, { "text": "Masak sampai kuah sedikit menyusut dan warna kecap lebih pekat mengilap.", "images": [] }, { "text": "Koreksi rasa, lalu sajikan hangat.", "images": [] } ], "title": "Ayam Kecap Berempah🧄🍗", "author": { "url": "https://cookpad.com/id/pengguna/115097929", "name": "fani_cookingday", "username": null }, "imageUrl": "https://img-global.cpcdn.com/recipes/eb7f66a4764540be/1200x630cq80/photo.jpg", "prepTime": "1 jam", "servings": "3 orang", "description": "Masakan ayam kecap ini terinspirasi dari menu rumahan sederhana yang sering dibuat saat ingin masak praktis tapi tetap enak. Tambahan rempah seperti daun jeruk, laos, dan sedikit kayu manis membuat aroma ayam lebih harum dan rasanya lebih khas dibanding ayam kecap biasa. Cocok disajikan hangat untuk makan bersama keluarga✨🧄", "ingredients": [ "500 gr ayam, potong sesuai selera", "3 siung bawang putih", "3 siung bawang putih", "1/2 sdt merica", "1/2 sdt ketumbar", "2 lembar daun jeruk", "2 lembar daun salam", "1 ruas laos, geprek", "Sedikit kayu manis", "secukupnya Garam", "secukupnya Penyedap", "sedikit Gula jawa", "secukupnya Air", "secukupnya Minyak" ], "dateModified": "2026-05-22", "datePublished": "2026-05-22" } ``` --- ## Dapur Umami **Category:** food · **Slug:** `dapurumami` **Detail page:** https://zpi.web.id/api/food/dapurumami Scraper resep Dapur Umami — kumpulan resep masakan Indonesia, pencarian by keyword, detail resep (bahan, langkah, durasi, porsi). **Tags:** food, recipe, indonesia, masakan ### Search Cari resep berdasarkan keyword dengan pagination. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/food:dapurumami/search` - **Cache TTL:** 180s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `query` | string | query | yes | Keyword pencarian resep | | `page` | number | query | no | Halaman hasil (default 1, max 50) | **cURL:** ```bash curl "https://api.zpi.web.id/v1/food:dapurumami/search?query=ayam%20goreng&page=1" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/food:dapurumami/search?query=ayam%20goreng&page=1", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/food:dapurumami/search?query=ayam%20goreng&page=1", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "count": 10, "items": [ { "url": "https://www.dapurumami.com/resep/nasi-goreng-ayam-kecap-plctbssu", "image": "https://assets.dapurumami.com/uploads/recipe/nasi-goreng-ayam-kecap-plctbssu-25be6d7f2ca81d115b48aa456492c6ab.webp", "title": "Nasi Goreng Ayam Kecap", "author": "Christina Kurniati", "source": "dapurumami.com" }, { "url": "https://www.dapurumami.com/resep/sarang-udang-ghi86u3l", "image": "https://assets.dapurumami.com/uploads/recipe/sarang-udang-ghi86u3l-6a161feddbafd.webp", "title": "SARANG UDANG", "author": "Dewi Masita", "source": "dapurumami.com", "summary": "Perpaduan udang segar dan aneka sayuran warna-warni di atas kulit lumpia crispy yang renyah bikin menu ini terlihat cantik sekaligus menggugah selera. Gurihnya semakin terasa dengan tambahan Masako Ayam dan Ajinomoto yang membuat cita rasanya lebih umami dan nikmat di setiap gigitan. Cocok disajikan sebagai menu spesial keluarga maupun ide jualan rumahan." }, { "url": "https://www.dapurumami.com/resep/chicken-steak-gj4swh49", "image": "https://assets.dapurumami.com/uploads/recipe/chicken-steak-gj4swh49-6a159af34df6e.webp", "title": "Chicken Steak", "author": "Dewi Masita", "source": "dapurumami.com", "summary": "Chicken Steak dengan saus manis gurih yang meresap sampai ke daging ayam. Disajikan lengkap dengan kentang goreng dan mix vegetables yang membuat tampilannya makin cantik dan menggugah selera. Cocok jadi menu spesial keluarga maupun ide jualan rumahan karena rasanya lezat dan plating-nya elegan." }, { "url": "https://www.dapurumami.com/resep/ayam-goreng-lado-ijo-ala-aji-no-moto-h6svxbd5", "image": "https://assets.dapurumami.com/uploads/recipe/ayam-goreng-lado-ijo-ala-aji-no-moto-h6svxbd5-6a157bd245f05.webp", "title": "Ayam Goreng Lado Ijo ala AJI-NO-MOTO©", "author": "Istikhoroh Yosefa", "source": "dapurumami.com", "summary": "Ayam digoreng lalu disambal lado ijo rasanya enak sekali disantap bersama nasi hangat." }, { "url": "https://www.dapurumami.com/resep/mie-goreng-saus-lada-hitam-hi7hb6ny", "image": "https://assets.dapurumami.com/uploads/recipe/mie-goreng-saus-lada-hitam-hi7hb6ny-6a1578d6e2476.webp", "title": "Mie Goreng Saus Lada Hitam", "author": "Hesti Winarsih", "source": "dapurumami.com", "summary": "Mie goreng saus lada hitam rasanya enak, tinggal tambahin cabe rawit hijau di iris jadi makin lezat" }, { "url": "https://www.dapurumami.com/resep/dadar-telur-tahu-ala-masako-bu4m0obn", "image": "https://assets.dapurumami.com/uploads/recipe/dadar-telur-tahu-ala-masako-bu4m0obn-6a15765b6665a.webp", "title": "Dadar Telur Tahu ala MASAKO®", "author": "Istikhoroh Yosefa", "source": "dapurumami.com", "summary": "Telur didadar dengan tahu yang dihaluskan diberi Masako rasanya enak dan lembut." }, { "url": "https://www.dapurumami.com/resep/nasi-goreng-pete-cl0lwfr4", "image": "https://assets.dapurumami.com/uploads/recipe/nasi-goreng-pete-cl0lwfr4-6a154fcb2b2cd.webp", "title": "Nasi Goreng Pete", "author": "Elli puspita", "source": "dapurumami.com", "summary": "behh,, aroma Pete dan nasi gorengnya menyatu, rasanya nagih" }, { "url": "https://www.dapurumami.com/resep/ayam-goreng-ketumbar-xehjfftr", "image": "https://assets.dapurumami.com/uploads/recipe/ayam-goreng-ketumbar-xehjfftr-6a154d8c3c979.webp", "title": "Ayam goreng ketumbar", "author": "Ariee Kz", "source": "dapurumami.com", "summary": "ayam goreng ketumbar rasanya gurih bumbunya menyerap sempurna" }, { "url": "https://www.dapurumami.com/resep/sate-ayam-madura-ala-saori-teriyaki", "image": "https://assets.dapurumami.com/uploads/recipe/sate-ayam-madura-ala-saori-teriyaki-7b7968e6aa3e3790d0ba7fd3bb836e83.webp", "title": "Sate Ayam Madura ala SAORI® Teriyaki", "author": "Official Umamin", "source": "dapurumami.com", "summary": "

Sate Ayam Madura merupakan salah satu hidangan khas Indonesia yang terkenal dengan potongan ayam yang dibakar hingga harum dan disajikan bersama bumbu kacang yang gurih manis. Tekstur ayam yang empuk dipadukan dengan saus kacang yang kental membuat hidangan ini selalu menjadi favorit banyak orang.

\r\n

 

\r\n

Pada resep ini, penggunaan SAORI® Saus Teriyaki membantu memberikan rasa manis gurih yang meresap pada potongan ayam sebelum dibakar. Dipadukan dengan kecap manis dan AJI-NO-MOTO®, sate ayam memiliki rasa yang lebih seimbang dan lezat.

\r\n

 

\r\n

Sate Ayam Madura paling nikmat disajikan dengan bumbu kacang, lontong, acar timun, taburan bawang merah goreng, serta perasan jeruk limau yang memberikan sentuhan segar. Hidangan ini cocok dinikmati sebagai menu makan siang atau makan malam bersama keluarga. Untuk mencoba berbagai inspirasi masakan lainnya, kamu juga bisa menemukannya melalui aplikasi resep Dapur Umami.

" }, { "url": "https://www.dapurumami.com/resep/ayam-kari-jawa-2xg3q8zi", "image": "https://assets.dapurumami.com/uploads/recipe/ayam-kari-jawa-2xg3q8zi-6a14f6384417a.webp", "title": "Ayam Kari Jawa", "author": "Hesti Winarsih", "source": "dapurumami.com", "summary": "ayam kari jawa kuah rempah yang gurih, aroma khas bumbu tradisional, dan ayam yang empuk bikin makan jadi nambah terus" } ], "hasMore": true, "nextPage": 2 } ``` --- ### Detail Resep Ambil detail lengkap resep dari URL — bahan, langkah, durasi, porsi. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/food:dapurumami/detail` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `url` | string | query | yes | URL resep lengkap | **cURL:** ```bash curl "https://api.zpi.web.id/v1/food:dapurumami/detail?url=https%3A%2F%2Fwww.dapurumami.com%2Fresep%2Fayam-goreng-lado-ijo-ala-aji-no-moto-h6svxbd5" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/food:dapurumami/detail?url=https%3A%2F%2Fwww.dapurumami.com%2Fresep%2Fayam-goreng-lado-ijo-ala-aji-no-moto-h6svxbd5", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/food:dapurumami/detail?url=https%3A%2F%2Fwww.dapurumami.com%2Fresep%2Fayam-goreng-lado-ijo-ala-aji-no-moto-h6svxbd5", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "url": "http:// www.dapurumami.com/resep/ayam-goreng-lado-ijo-ala-aji-no-moto-h6svxbd5", "image": "https://assets.dapurumami.com/uploads/recipe/ayam-goreng-lado-ijo-ala-aji-no-moto-h6svxbd5-6a157bd245f05.webp", "steps": [ "Goreng ayam hingga matang, sisihkan", "Tumis cabe ijo hingga matang", "Tambahkan seasoning, aduk", "Masukkan ayam goreng", "Masak hingga bumbu meresap", "Angkat dan sajikan" ], "title": "Ayam Goreng Lado Ijo ala AJI-NO-MOTO©", "author": "Istikhoroh Yosefa", "source": "dapurumami.com", "summary": "Nikmati kelezatan Ayam Goreng Lado Ijo ala AJI-NO-MOTO© ala Istikhoroh Yosefa yang nikmat. Resep praktis yang mudah diikuti untuk santapan nikmat keluarga di rumah!", "cookTime": "25 Menit", "servings": "4 Porsi", "ingredients": [ "8 potongn ayam", "Minyak goreng secukupnya", "Bahan lado ijo, haluskan: 8 lado ijo", "Bahan lado ijo, haluskan: 5 rawit", "Bahan lado ijo, haluskan: 4 cabe merah", "Bahan lado ijo, haluskan: 1 tomat merah", "Seasoning: 1 sdt garam", "Seasoning: 1 sdt gula", "Seasoning: 1 sdt ajinomoto" ] } ``` --- ### Resep Terbaru Daftar resep terbaru, optional filter kategori. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/food:dapurumami/latest` - **Cache TTL:** 180s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `category` | string | query | no | Keyword opsional untuk filter (default kosong = semua terbaru) | | `page` | number | query | no | Nomor halaman (default 1, max 50) | **cURL:** ```bash curl "https://api.zpi.web.id/v1/food:dapurumami/latest?category=ayam&page=1" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/food:dapurumami/latest?category=ayam&page=1", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/food:dapurumami/latest?category=ayam&page=1", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "count": 10, "items": [ { "url": "https://www.dapurumami.com/resep/nasi-goreng-ayam-kecap-plctbssu", "image": "https://assets.dapurumami.com/uploads/recipe/nasi-goreng-ayam-kecap-plctbssu-25be6d7f2ca81d115b48aa456492c6ab.webp", "title": "Nasi Goreng Ayam Kecap", "author": "Christina Kurniati", "source": "dapurumami.com" }, { "url": "https://www.dapurumami.com/resep/bento-nasi-kuning-ala-masako-x70hwnpx", "image": "https://assets.dapurumami.com/uploads/recipe/bento-nasi-kuning-ala-masako-x70hwnpx-6a16242d3a797.webp", "title": "BENTO NASI KUNING ala MASAKO", "author": "Dewi Masita", "source": "dapurumami.com", "summary": "Bento nasi kuning berbentuk kura-kura ini jadi menu yang lucu dan menarik, apalagi untuk bekal anak maupun sajian spesial di rumah. Aroma nasi kuning yang gurih dipadukan lauk pelengkap favorit membuat makan jadi lebih semangat. Dengan tambahan Masako Ayam dan Ajinomoto, rasa nasi kuning semakin lezat, harum, dan pas di lidah keluarga." }, { "url": "https://www.dapurumami.com/resep/roti-tongkol-suwir-x590e0q7", "image": "https://assets.dapurumami.com/uploads/recipe/roti-tongkol-suwir-x590e0q7-6a16221560579.webp", "title": "ROTI TONGKOL SUWIR", "author": "Dewi Masita", "source": "dapurumami.com", "summary": "Roti lembut dengan isian tongkol suwir pedas khas Manado ini punya rasa gurih, sedikit pedas, dan bikin nagih. Perpaduan ikan tongkol yang dimasak dengan bumbu sederhana, ditambah Masako Ayam dan Ajinomoto, membuat cita rasanya semakin kaya dan meresap sempurna. Cocok dijadikan bekal, camilan sore, ataupun teman minum teh hangat." }, { "url": "https://www.dapurumami.com/resep/sarang-udang-ghi86u3l", "image": "https://assets.dapurumami.com/uploads/recipe/sarang-udang-ghi86u3l-6a161feddbafd.webp", "title": "SARANG UDANG", "author": "Dewi Masita", "source": "dapurumami.com", "summary": "Perpaduan udang segar dan aneka sayuran warna-warni di atas kulit lumpia crispy yang renyah bikin menu ini terlihat cantik sekaligus menggugah selera. Gurihnya semakin terasa dengan tambahan Masako Ayam dan Ajinomoto yang membuat cita rasanya lebih umami dan nikmat di setiap gigitan. Cocok disajikan sebagai menu spesial keluarga maupun ide jualan rumahan." }, { "url": "https://www.dapurumami.com/resep/tongseng-ayam-ala-ajinomoto-spesialiduladha-yt0rllse", "image": "https://assets.dapurumami.com/uploads/recipe/tongseng-ayam-ala-ajinomoto-spesialiduladha-yt0rllse-6a1609ce8f164.webp", "title": "Tongseng Ayam ala Ajinomoto #SpesialIdulAdha", "author": "Dewi Asih Anggraeni", "source": "dapurumami.com", "summary": "Bikin menu Idul adha yang sat set dan gak ribet" }, { "url": "https://www.dapurumami.com/resep/bayam-tumis-labu-jamur-2rh1h3lr", "image": "https://assets.dapurumami.com/uploads/recipe/bayam-tumis-labu-jamur-2rh1h3lr-6a15d0c70b9ec.webp", "title": "Bayam Tumis Labu Jamur", "author": "Fettyiik", "source": "dapurumami.com", "summary": "Perpaduan sayur bayam,labu siam dan jamur kancing.Dengan kuah bening segar dan gurih" }, { "url": "https://www.dapurumami.com/resep/pepes-ceker-ayam-6m0cy0wl", "image": "https://assets.dapurumami.com/uploads/recipe/pepes-ceker-ayam-6m0cy0wl-6a15a920bac99.webp", "title": "Pepes Ceker Ayam", "author": "Ai Imas Muslimah", "source": "dapurumami.com", "summary": "Menu pepes ceker yang dipresto dan memakai kaldu jamur dari Masako Ajinomoto" }, { "url": "https://www.dapurumami.com/resep/croissant-chicken-mentai-h9k001dl", "image": "https://assets.dapurumami.com/uploads/recipe/croissant-chicken-mentai-h9k001dl-6a159f4c7702d.webp", "title": "Croissant Chicken Mentai", "author": "Dewi Masita", "source": "dapurumami.com", "summary": "Perpaduan croissant yang flaky dan buttery dengan isian chicken mentai creamy pedas gurih yang lumer di mulut. Disajikan cantik dengan sayuran segar membuat menu ini terlihat mewah ala cafe, namun tetap mudah dibuat di rumah. Cocok untuk camilan premium, brunch, ataupun ide jualan kekinian." }, { "url": "https://www.dapurumami.com/resep/chicken-steak-gj4swh49", "image": "https://assets.dapurumami.com/uploads/recipe/chicken-steak-gj4swh49-6a159af34df6e.webp", "title": "Chicken Steak", "author": "Dewi Masita", "source": "dapurumami.com", "summary": "Chicken Steak dengan saus manis gurih yang meresap sampai ke daging ayam. Disajikan lengkap dengan kentang goreng dan mix vegetables yang membuat tampilannya makin cantik dan menggugah selera. Cocok jadi menu spesial keluarga maupun ide jualan rumahan karena rasanya lezat dan plating-nya elegan." }, { "url": "https://www.dapurumami.com/resep/ayam-mayo-cabe-hijau-specialiduladha-1ninwuv4", "image": "https://assets.dapurumami.com/uploads/recipe/ayam-mayo-cabe-hijau-specialiduladha-1ninwuv4-6a159918ad209.webp", "title": "Ayam Mayo Cabe Hijau #SpecialIduladha", "author": "Siti Amna A", "source": "dapurumami.com", "summary": "Ayam Mayo Cabe Hijau menu kesukaan keluarga terutama anak-anak,resep ini sering d request anak-anak katanya enak dan mereka selalu lahap makan ini, menu ini Bahannya simpel." } ], "hasMore": true, "nextPage": 2 } ``` --- ## GoFood **Category:** food · **Slug:** `gofood` **Detail page:** https://zpi.web.id/api/food/gofood Cari restoran GoFood per kota/area & kategori masakan (data SSR). Catatan: detail menu per-resto tidak tersedia (di-gate WAF upstream). **Tags:** gofood, food, kuliner, restoran, indonesia, delivery ### Cari Restoran Cari restoran GoFood berdasarkan kota, kategori masakan, dan area (opsional). - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/food:gofood/search` - **Cache TTL:** 300s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `city` | string | query | yes | Slug kota/service area (huruf kecil), mis. jakarta, bandung, surabaya, solo, bali | | `category` | enum(seafood|pizza_pasta|coffee_shop|chinese|japanese|korean|indian_food|middle_eastern|fastfood|healthy_food|bakmie|burger_sandwich_steak|martabak|minuman|roti|sate|snacks_jajanan|soto_bakso_sop|best_seller|most_loved|affordable_price|24_hours|near_me) | query | yes | Kategori/kurasi masakan yang mau dicari | | `area` | string | query | no | Slug area/kecamatan (opsional). Kosong = cari se-kota | **cURL:** ```bash curl "https://api.zpi.web.id/v1/food:gofood/search?city=jakarta&category=seafood&area=kebayoran-baru" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/food:gofood/search?city=jakarta&category=seafood&area=kebayoran-baru", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/food:gofood/search?city=jakarta&category=seafood&area=kebayoran-baru", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "area": "tawangsari", "city": "solo", "note": "Hasil dibatasi pada outlet teratas yang ditampilkan halaman (umumnya ~12). Pakai `area` untuk mempersempit lokasi.", "count": 12, "items": [ { "uid": "58018670-9f87-4d01-9671-136ecd0e6af6", "url": "https://gofood.co.id/solo/restaurant/seafood-lamongan-cak-agung-banmati-58018670-9f87-4d01-9671-136ecd0e6af6", "name": "Seafood Lamongan Cak Agung, Banmati", "cover": "https://i.gojekapi.com/darkroom/gofood-indonesia/v2/images/uploads/9248e11a-be32-43dd-a5a5-7426a8e23d0f_IMG_20200105_194018_998.jpg", "hours": [ { "day": 1, "open": "00:00", "close": "01:00" }, { "day": 1, "open": "16:45", "close": "23:59" }, { "day": 2, "open": "00:00", "close": "01:00" }, { "day": 2, "open": "16:45", "close": "23:59" }, { "day": 3, "open": "00:00", "close": "01:00" }, { "day": 3, "open": "16:45", "close": "23:59" }, { "day": 4, "open": "00:00", "close": "01:00" }, { "day": 4, "open": "16:45", "close": "23:59" } ], "isOpen": true, "source": "gofood.co.id", "cuisines": [ "Seafood" ], "latitude": -7.712815340932043, "timeZone": "Asia/Jakarta", "longitude": 110.81111658364534, "shortLink": "https://gofood.link/u/0Kmp5", "distanceKm": 2.94, "etaSeconds": 1920, "priceLevel": 1, "deliverable": true, "ratingTotal": 0, "ratingAverage": 4.2 }, { "uid": "7a0cac2e-7b89-4d89-8a6c-2e47605380ef", "url": "https://gofood.co.id/solo/restaurant/pujasera-aa-tangkisan-tawangsari-skh-7a0cac2e-7b89-4d89-8a6c-2e47605380ef", "name": "Pujasera AA, Tangkisan Tawangsari Skh", "cover": "https://i.gojekapi.com/darkroom/gofood-indonesia/v2/images/uploads/1efd299a-db9f-40d4-b6e9-973ee536bd3c_GENERIC_RESTAURANT_IMAGE.jpg", "hours": [ { "day": 1, "open": "11:00", "close": "21:30" }, { "day": 2, "open": "11:00", "close": "21:30" }, { "day": 3, "open": "11:00", "close": "21:30" }, { "day": 4, "open": "11:00", "close": "21:30" }, { "day": 5, "open": "11:00", "close": "21:30" }, { "day": 6, "open": "11:00", "close": "21:30" }, { "day": 7, "open": "11:00", "close": "21:30" } ], "isOpen": true, "source": "gofood.co.id", "cuisines": [ "Aneka nasi", "Ayam & bebek", "Seafood" ], "latitude": -7.702523325846713, "timeZone": "Asia/Jakarta", "longitude": 110.79887934029102, "shortLink": "https://gofood.link/a/LUpvKxs", "distanceKm": 3.05, "etaSeconds": 2280, "priceLevel": 2, "deliverable": true, "ratingTotal": 0, "ratingAverage": 4.4 }, { "uid": "4833a4b3-6023-4343-ad7a-2213a21ad732", "url": "https://gofood.co.id/solo/restaurant/raos-barokah-ikan-bakar-cobek-4833a4b3-6023-4343-ad7a-2213a21ad732", "name": "Raos Barokah Ikan Bakar Cobek", "cover": "https://i.gojekapi.com/darkroom/gofood-indonesia/v2/images/uploads/01d2c3b5-424f-4709-8c32-8a40a4d2c1e0_Go-Food-Merchant_20251021_075621.jpeg", "hours": [ { "day": 1, "open": "08:00", "close": "22:00" }, { "day": 2, "open": "08:00", "close": "22:00" }, { "day": 3, "open": "06:00", "close": "22:00" }, { "day": 4, "open": "07:00", "close": "22:00" }, { "day": 5, "open": "06:00", "close": "22:00" }, { "day": 6, "open": "07:00", "close": "22:00" }, { "day": 7, "open": "06:00", "close": "22:00" } ], "isOpen": true, "source": "gofood.co.id", "cuisines": [ "Seafood", "Makanan sehat", "Indonesia" ], "latitude": -7.729000911025582, "timeZone": "Asia/Jakarta", "longitude": 110.8252253383398, "shortLink": "https://gofood.link/a/RBweMhy", "distanceKm": 3.93, "etaSeconds": 1560, "priceLevel": 0, "deliverable": true, "ratingTotal": 0, "ratingAverage": 4.3 }, { "uid": "c92e9b18-7ee0-408a-aeef-f732e1a3fcfb", "url": "https://gofood.co.id/solo/restaurant/nilasari-c92e9b18-7ee0-408a-aeef-f732e1a3fcfb", "name": "Nilasari", "cover": "https://i.gojekapi.com/darkroom/gofood-indonesia/v2/images/uploads/4b2819eb-c9c4-49a6-9a57-d8ffa643f88a_Go-Food-Merchant_20260605_171729.jpeg", "hours": [ { "day": 1, "open": "07:15", "close": "22:00" }, { "day": 2, "open": "07:15", "close": "17:15" }, { "day": 3, "open": "07:15", "close": "22:00" }, { "day": 4, "open": "07:15", "close": "22:15" }, { "day": 5, "open": "07:15", "close": "17:15" }, { "day": 6, "open": "07:15", "close": "20:00" }, { "day": 7, "open": "07:15", "close": "20:00" } ], "isOpen": true, "source": "gofood.co.id", "cuisines": [ "Aneka nasi", "Ayam & bebek", "Seafood" ], "latitude": -7.685724380925473, "timeZone": "Asia/Jakarta", "longitude": 110.8298135921359, "shortLink": "https://gofood.link/a/QQmptxE", "distanceKm": 6.49, "etaSeconds": 2340, "priceLevel": 2, "deliverable": true, "ratingTotal": 0, "ratingAverage": 0 }, { "uid": "87e5c763-641e-4918-8a62-0f86c298b297", "url": "https://gofood.co.id/solo/restaurant/seafood-cak-hery-seliran-sukoharjo-kota-87e5c763-641e-4918-8a62-0f86c298b297", "name": "Seafood Cak HERY Seliran, Sukoharjo Kota", "cover": "https://i.gojekapi.com/darkroom/gofood-indonesia/v2/images/uploads/6fd8ff25-5848-45fe-a7f4-2f1891295577_Go-Biz_20220825_224908.jpeg", "hours": [ { "day": 1, "open": "00:00", "close": "00:30" }, { "day": 1, "open": "16:30", "close": "23:59" }, { "day": 2, "open": "00:00", "close": "00:30" }, { "day": 2, "open": "16:30", "close": "23:59" }, { "day": 3, "open": "00:00", "close": "00:30" }, { "day": 3, "open": "16:30", "close": "23:59" }, { "day": 4, "open": "00:00", "close": "00:30" }, { "day": 4, "open": "16:30", "close": "23:59" } ], "isOpen": true, "source": "gofood.co.id", "cuisines": [ "Seafood" ], "latitude": -7.685643300725774, "timeZone": "Asia/Jakarta", "longitude": 110.8307404971548, "shortLink": "https://gofood.link/a/yM9iibY", "distanceKm": 6.56, "etaSeconds": 2220, "priceLevel": 2, "deliverable": true, "ratingTotal": 0, "ratingAverage": 4.7 }, { "uid": "034a3e8e-5935-417e-86ba-d77d75447951", "url": "https://gofood.co.id/solo/restaurant/batam-steak-sukoharjo-kota-034a3e8e-5935-417e-86ba-d77d75447951", "name": "Batam Steak, Sukoharjo Kota", "cover": "https://i.gojekapi.com/darkroom/gofood-indonesia/v2/images/uploads/69586ac7-458f-4ba5-90af-b95ef4e3288c_Go-Biz_20210930_170036.jpeg", "hours": [ { "day": 1, "open": "10:00", "close": "21:15" }, { "day": 2, "open": "09:30", "close": "21:15" }, { "day": 3, "open": "10:00", "close": "21:00" }, { "day": 4, "open": "10:00", "close": "21:00" }, { "day": 5, "open": "10:00", "close": "21:00" }, { "day": 6, "open": "10:00", "close": "21:15" }, { "day": 7, "open": "10:00", "close": "21:15" } ], "isOpen": true, "source": "gofood.co.id", "cuisines": [ "Ayam & bebek", "Minuman", "Seafood" ], "latitude": -7.689037, "timeZone": "Asia/Jakarta", "longitude": 110.836026, "shortLink": "https://gofood.link/a/yM8XLCU", "distanceKm": 6.73, "etaSeconds": 1800, "priceLevel": 2, "deliverable": true, "ratingTotal": 0, "ratingAverage": 4.3 }, { "uid": "f53afd26-c481-42d0-9fbf-0e6f13ff4843", "url": "https://gofood.co.id/solo/restaurant/callysta-jaya-f53afd26-c481-42d0-9fbf-0e6f13ff4843", "name": "callysta jaya", "cover": "https://i.gojekapi.com/darkroom/gofood-indonesia/v2/images/uploads/1a43415b-ce11-4419-9f4d-312007c362c8_GENERIC_RESTAURANT_IMAGE_1.png", "hours": [ { "day": 1, "open": "15:00", "close": "22:00" }, { "day": 2, "open": "10:00", "close": "22:00" }, { "day": 3, "open": "10:00", "close": "22:00" }, { "day": 4, "open": "10:00", "close": "22:00" }, { "day": 5, "open": "10:00", "close": "22:00" }, { "day": 6, "open": "10:00", "close": "22:00" }, { "day": 7, "open": "10:00", "close": "22:00" } ], "isOpen": true, "source": "gofood.co.id", "cuisines": [ "Ayam & bebek", "Cepat saji", "Seafood" ], "latitude": -7.668822599999999, "timeZone": "Asia/Jakarta", "longitude": 110.8046283, "shortLink": "https://gofood.link/a/TfwAgi7", "distanceKm": 6.8, "etaSeconds": 2880, "priceLevel": 0, "deliverable": true, "ratingTotal": 0, "ratingAverage": 0 }, { "uid": "51ac5716-6dcc-438f-8076-fbec812242f0", "url": "https://gofood.co.id/solo/restaurant/seafood-cak-rama-51ac5716-6dcc-438f-8076-fbec812242f0", "name": "Seafood Cak Rama", "cover": "https://i.gojekapi.com/darkroom/gofood-indonesia/v2/images/uploads/5e14ff10-5849-44f3-88e3-c5e77f19ed0b_Go-Biz_20241113_203131.jpeg", "hours": [ { "day": 1, "open": "00:00", "close": "00:45" }, { "day": 1, "open": "17:45", "close": "23:59" }, { "day": 2, "open": "00:00", "close": "00:45" }, { "day": 2, "open": "17:45", "close": "23:59" }, { "day": 3, "open": "00:00", "close": "00:45" }, { "day": 3, "open": "17:45", "close": "23:59" }, { "day": 4, "open": "00:00", "close": "00:45" }, { "day": 4, "open": "17:45", "close": "23:59" } ], "isOpen": true, "source": "gofood.co.id", "cuisines": [ "Ayam & bebek", "Seafood" ], "latitude": -7.682978208503464, "timeZone": "Asia/Jakarta", "longitude": 110.83158519119024, "shortLink": "https://gofood.link/a/CxTcnjY", "distanceKm": 6.84, "etaSeconds": 2700, "priceLevel": 2, "deliverable": true, "ratingTotal": 0, "ratingAverage": 5 } ], "category": "seafood", "location": { "name": "Tawangsari, Solo", "latitude": -7.7285206, "locality": "tawangsari", "timezone": "Asia/Jakarta", "longitude": 110.7897275, "serviceArea": "solo" } } ``` --- ## Masak Apa Hari Ini **Category:** food · **Slug:** `masakapahariini` **Detail page:** https://zpi.web.id/api/food/masakapahariini Search and fetch Indonesian recipes with ingredients and cooking steps. **Tags:** food, recipe, indonesia ### Search Search Indonesian recipes by keyword. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/food:masakapahariini/search` - **Cache TTL:** 300s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `query` | string | query | yes | Resep keyword (Indonesian) | | `limit` | number | query | no | Items per page (default 10, max 30) | **cURL:** ```bash curl "https://api.zpi.web.id/v1/food:masakapahariini/search?query=ayam%20goreng&limit=10" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/food:masakapahariini/search?query=ayam%20goreng&limit=10", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/food:masakapahariini/search?query=ayam%20goreng&limit=10", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "ok": true, "count": 3, "items": [ { "url": "https://www.masakapahariini.com/r/resep-bakso-mercon-simple-dan-enak-untuk-jualan.html/257442", "image": "https://assets.unileversolutions.com/recipes-v3/257442-default.jpg", "title": "Resep Bakso Mercon Simple dan Enak Untuk Jualan", "source": "masakapahariini.com", "prepTime": "" }, { "url": "https://www.masakapahariini.com/r/cara-membuat-tumis-genjer-taoco-sederhana,-enak-dan-tidak-pahit.html/258644", "image": "https://assets.unileversolutions.com/recipes-v3/258644-default.jpg", "title": "Cara Membuat Tumis Genjer Taoco Sederhana, Enak dan Tidak Pahit", "source": "masakapahariini.com", "prepTime": "" }, { "url": "https://www.masakapahariini.com/r/resep-sayur-sop-bening-sederhana-tanpa-minyak.html/258351", "image": "https://assets.unileversolutions.com/recipes-v3/258351-default.png", "title": "Resep Sayur Sop Bening Sederhana Tanpa Minyak", "source": "masakapahariini.com", "prepTime": "" } ] } ``` --- ### Recipe Get full recipe details. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/food:masakapahariini/recipe` - **Cache TTL:** 300s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `url` | string | query | yes | MasakApaHariIni recipe URL | **cURL:** ```bash curl "https://api.zpi.web.id/v1/food:masakapahariini/recipe?url=https%3A%2F%2Fwww.masakapahariini.com%2Fr%2Fresep-bakso-mercon-simple-dan-enak-untuk-jualan.html%2F257442" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/food:masakapahariini/recipe?url=https%3A%2F%2Fwww.masakapahariini.com%2Fr%2Fresep-bakso-mercon-simple-dan-enak-untuk-jualan.html%2F257442", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/food:masakapahariini/recipe?url=https%3A%2F%2Fwww.masakapahariini.com%2Fr%2Fresep-bakso-mercon-simple-dan-enak-untuk-jualan.html%2F257442", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` --- ## Open Food Facts **Category:** food · **Slug:** `openfoodfacts` **Detail page:** https://zpi.web.id/api/food/openfoodfacts Retrieve product information, ingredients, and nutritional data from packaged foods. **Tags:** food, recipe, nutrition ### Product Get product details by barcode. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/food:openfoodfacts/product` - **Cache TTL:** 300s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `barcode` | string | query | yes | Product barcode (EAN/UPC), 8-13 digits | **cURL:** ```bash curl "https://api.zpi.web.id/v1/food:openfoodfacts/product?barcode=3017620422003" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/food:openfoodfacts/product?barcode=3017620422003", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/food:openfoodfacts/product?barcode=3017620422003", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "ok": true, "product": { "name": "Nutella", "brands": "Nutella", "labels": "Sans gluten, Triman, en:Sans colorants, en:Sans conservateurs, en:Sans gluten, en:Sans matière grasse hydrogénée, en:Végétarien", "barcode": "3017620422003", "quantity": "", "allergens": "lait, fruits à coque, soja", "countries": "France, Italie, Luxembourg, Philippines, en:Allemagne, en:Belgique, en:Espagne, en:Inde, en:Maroc, en:Pays-Bas, en:Pologne, en:Roumanie, en:Royaume-Uni, en:Suisse, en:Turquie, en:États-Unis", "image_url": "https://images.openfoodfacts.org/images/products/301/762/042/2003/front_en.820.400.jpg", "categories": "en:Petit-déjeuners, en:Produits à tartiner, en:Produits à tartiner sucrés, en:Pâtes à tartiner", "nutriments": { "fat_100g": 30.9, "salt_100g": 0.107, "sugars_100g": 56.3, "proteins_100g": 6.3, "energy_kcal_100g": 539, "carbohydrates_100g": 57.5 }, "ecoscore_grade": "unknown", "ingredients_text": "Sucre, huile de palme, NOISETTES 13%, cacao maigre 7,4%, LAIT écrémé en poudre 6,6%, LACTOSERUM en poudre, émulsifiants: lécithines [SOJA), vanilline. Sans gluten.", "nutriscore_grade": "e" } } ``` --- ## Punch Drink **Category:** food · **Slug:** `punchdrink` **Detail page:** https://zpi.web.id/api/food/punchdrink Cocktail & drink recipe scraper untuk Punch Drink — cari resep cocktail, ambil detail (bahan, cara, garnish), dan koleksi terbaru. **Tags:** drinks, cocktails, recipe, english ### Search Cari resep berdasarkan keyword dengan pagination. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/food:punchdrink/search` - **Cache TTL:** 180s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `query` | string | query | yes | Cocktail / drink keyword | | `page` | number | query | no | Page number (default 1, max 50) | **cURL:** ```bash curl "https://api.zpi.web.id/v1/food:punchdrink/search?query=gin&page=1" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/food:punchdrink/search?query=gin&page=1", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/food:punchdrink/search?query=gin&page=1", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "count": 10, "items": [ { "url": "https://punchdrink.com/recipes/dirty-gin-tonic/", "title": "Dirty Gin & Tonic", "author": "Punch Staff", "source": "punchdrink.com", "summary": "Salty gin and some olive brine make this the warm-weather drink for dirty Martini fans." }, { "url": "https://punchdrink.com/recipes/gin-coco-no-2/", "title": "Gin Coco No. 2", "author": "Punch Staff", "source": "punchdrink.com", "summary": "Tropical, creamy, herbal, spicy—this cocktail ticks all the boxes." }, { "url": "https://punchdrink.com/recipes/gin-it/", "title": "Gin & It", "author": "Punch Staff", "source": "punchdrink.com", "summary": "A lesser-known gin classic from the 1970s." }, { "url": "https://punchdrink.com/recipes/harrison-ginsbergs-martini/", "title": "Harrison Ginsberg’s Martini", "author": "Mary Anne Porto", "source": "punchdrink.com", "summary": "In this winning Martini recipe, a few simple ingredients come together in precisely the right proportions." }, { "url": "https://punchdrink.com/recipes/gin-sonic/", "title": "Gin Sonic", "author": "Mary Anne Porto", "source": "punchdrink.com", "summary": "Japan’s very own Gin & Tonic." }, { "url": "https://punchdrink.com/recipes/harrison-ginsbergs-martinez/", "title": "Harrison Ginsberg’s Martinez", "author": "Mary Anne Porto", "source": "punchdrink.com", "summary": "A modern take splits the base between Old Tom and London dry gins." }, { "url": "https://punchdrink.com/recipes/gin-pahit/", "title": "Sling Bar's Gin Pahit", "author": "Mary Anne Porto", "source": "punchdrink.com", "summary": "A simplified version of the pared-back Malaysian classic." }, { "url": "https://punchdrink.com/recipes/harrison-ginsberg-white-negroni/", "title": "Harrison Ginsberg’s White Negroni", "author": "Mary Anne Porto", "source": "punchdrink.com", "summary": "A winning recipe that adds a splash of verjus for extra brightness." }, { "url": "https://punchdrink.com/recipes/maison-premieres-ramos-gin-fizz-cocktail-recipe/", "title": "Maison Premiere's Ramos Gin Fizz", "author": "Talia Baiocchi", "source": "punchdrink.com", "summary": "A winning recipe for the New Orleans classic." }, { "url": "https://punchdrink.com/articles/mastering-the-gin-rickey-cocktail-recipe-with-aj-johnson/", "image": "https://punchdrink.com/wp-content/uploads/2021/09/Thumb-Gin-Rickey-Cocktail-Recipe-Andra-AJ-Johnson-Serenata-Washington-DC.jpg", "title": "Mastering the Gin Rickey with Andra “AJ” Johnson", "author": "Laurel Miller", "source": "punchdrink.com", "summary": "The D.C. bartender elevates the city's hometown highball with a vibrant, aromatic citrus syrup." } ], "hasMore": false } ``` --- ### Detail Resep Ambil detail lengkap resep dari URL — bahan, langkah, durasi, porsi. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/food:punchdrink/detail` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `url` | string | query | yes | Cocktail recipe URL on punchdrink.com | **cURL:** ```bash curl "https://api.zpi.web.id/v1/food:punchdrink/detail?url=https%3A%2F%2Fpunchdrink.com%2Frecipes%2Fdirty-gin-tonic%2F" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/food:punchdrink/detail?url=https%3A%2F%2Fpunchdrink.com%2Frecipes%2Fdirty-gin-tonic%2F", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/food:punchdrink/detail?url=https%3A%2F%2Fpunchdrink.com%2Frecipes%2Fdirty-gin-tonic%2F", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "url": "https://punchdrink.com/recipes/dirty-gin-tonic/", "image": "https://punchdrink.com/wp-content/uploads/2026/04/Article2-Dirty-Gin-Tonic-Fishers-Deans-Cocktail-Recipe.jpg?w=800", "steps": [ "Add all ingredients to a Collins or highball glass over ice.", "Top with equal parts club soda and tonic water.", "Garnish with three pitted olives on a skewer." ], "title": "Dirty Gin & Tonic", "author": "Punch Staff", "source": "punchdrink.com", "summary": "The Dirty Gin & Tonic cocktail recipe from New York City restaurant Dean's is made with Fishers gin, fino sherry and olive brine.", "category": "Recipe", "servings": "1", "updatedAt": "2026-04-24T10:00:21Z", "ingredients": [ "1 1/2 ounces gin, such as Fishers", "1/2 ounce fino sherry", "1/2 ounce olive brine", "equal parts club soda and light tonic water, such as Fever Tree Light Tonic, to top", "Garnish: three pitted olives on a skewer" ], "publishedAt": "2026-04-24T10:00:21Z" } ``` --- ### Resep Terbaru Daftar resep terbaru, optional filter kategori. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/food:punchdrink/latest` - **Cache TTL:** 180s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `category` | string | query | no | Section slug (optional). Examples: cocktails, beer, wine, spirits, places. Leave empty for global feed. | | `page` | number | query | no | Page (default 1, max 50) | **cURL:** ```bash curl "https://api.zpi.web.id/v1/food:punchdrink/latest?category=cocktails&page=1" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/food:punchdrink/latest?category=cocktails&page=1", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/food:punchdrink/latest?category=cocktails&page=1", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "count": 10, "items": [ { "url": "https://punchdrink.com/articles/best-trendy-cocktail-glassware-2026/", "title": "Five Glasses Defining Cocktail Bars Right Now", "author": "Liz Provencher", "source": "punchdrink.com", "summary": "From a statuesque Martini glass to a playful footed rocks glass, here’s what’s trending.", "category": "recommendations", "publishedAt": "Tue, 26 May 2026 12:47:38 +0000" }, { "url": "https://punchdrink.com/articles/ultimate-best-guide-to-cocktail-glassware/", "tags": [ "glassware" ], "title": "The Ultimate Guide to Cocktail Glassware", "author": "Punch Staff", "source": "punchdrink.com", "summary": "The best go-tos and splurges in every category, plus our favorite outliers.", "category": "gift guide", "publishedAt": "Tue, 26 May 2026 10:00:20 +0000" }, { "url": "https://punchdrink.com/articles/boy-martini-manhattan-cocktail-trend/", "title": "Manhattan? Actually, It’s a “Boy Martini”", "author": "Bettina Makalintal", "source": "punchdrink.com", "summary": "First there were “girl dinners” and “boy kibble,” and now we’ve apparently rebranded the Manhattan.", "category": "trends", "publishedAt": "Thu, 21 May 2026 10:00:54 +0000" }, { "url": "https://punchdrink.com/articles/strawberry-cocktail-recipes/", "title": "All the Ways to Add Strawberries to Your Cocktail", "author": "Punch Staff", "source": "punchdrink.com", "summary": "Our favorite recipes using the fruit, from Daiquiris to Negronis to Miami Vices.", "category": "cocktail package", "publishedAt": "Tue, 19 May 2026 10:00:57 +0000" }, { "url": "https://punchdrink.com/articles/easy-tequila-cocktail-recipes/", "tags": [ "update" ], "title": "Our Favorite Easy Tequila Cocktails", "author": "Punch Staff", "source": "punchdrink.com", "summary": "The agave spirit complements cold brew, Campari and more in these simple recipes.", "category": "cocktail package", "publishedAt": "Tue, 12 May 2026 10:00:38 +0000" }, { "url": "https://punchdrink.com/articles/best-easy-gimlet-cocktail-recipes-2025/", "tags": [ "update" ], "title": "A Gimlet for Every Mood", "author": "Punch Staff", "source": "punchdrink.com", "summary": "Upgrade the gin classic with everything from celery to basil, MSG to Ango and more.", "category": "cocktail package", "publishedAt": "Thu, 07 May 2026 10:00:38 +0000" }, { "url": "https://punchdrink.com/articles/amaro-cocktail-recipes/", "tags": [ "update" ], "title": "Our Favorite Easy Amaro Cocktails", "author": "Punch Staff", "source": "punchdrink.com", "summary": "Fifteen recipes starring the bittersweet liqueur, from the Jägerita to the Mezcaletti.", "category": "cocktail package", "publishedAt": "Tue, 05 May 2026 10:00:37 +0000" }, { "url": "https://punchdrink.com/articles/most-popular-best-cocktail-recipes-april-2026/", "title": "The Most Popular Cocktails of April", "author": "Punch Staff", "source": "punchdrink.com", "summary": "Here are the drinks that you couldn’t get enough of this month.", "category": "cocktail package", "publishedAt": "Fri, 01 May 2026 13:30:02 +0000" }, { "url": "https://punchdrink.com/articles/mint-julep-cocktail-recipes/", "tags": [ "update" ], "title": "A Julep for Every Mood", "author": "Punch Staff", "source": "punchdrink.com", "summary": "From the minty classic to a pineapple-spiked take and more.", "category": "cocktail package", "publishedAt": "Mon, 27 Apr 2026 10:00:10 +0000" }, { "url": "https://punchdrink.com/articles/dirty-gin-tonic-fishers-deans-cocktail-recipe/", "tags": [ "recommendations" ], "title": "This Salty Gin Makes a Superb “Dirty G&T”", "author": "Mary Anne Porto", "source": "punchdrink.com", "summary": "Made with English seaside botanicals, it adds minerality to highballs, Martinis and more.", "category": "Obsessions", "publishedAt": "Fri, 24 Apr 2026 10:00:21 +0000" } ], "hasMore": false } ``` --- ## Resep Koki **Category:** food · **Slug:** `resepkoki` **Detail page:** https://zpi.web.id/api/food/resepkoki Scraper resep masakan Indonesia dari Resep Koki — pencarian, detail resep lengkap (bahan, langkah, durasi), dan resep terbaru. **Tags:** food, recipe, indonesia, masakan ### Search Cari resep berdasarkan keyword dengan pagination. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/food:resepkoki/search` - **Cache TTL:** 180s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `query` | string | query | yes | Keyword pencarian resep | | `page` | number | query | no | Halaman hasil (default 1, max 50) | **cURL:** ```bash curl "https://api.zpi.web.id/v1/food:resepkoki/search?query=ayam%20goreng&page=1" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/food:resepkoki/search?query=ayam%20goreng&page=1", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/food:resepkoki/search?query=ayam%20goreng&page=1", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "count": 13, "items": [ { "url": "https://resepkoki.id/resep/resep-ayam-goreng-madu/", "image": "https://i0.wp.com/resepkoki.id/wp-content/uploads/2021/12/Resep-Ayam-Goreng-Madu.jpg?fit=640%2C853&ssl=1", "title": "Ayam Goreng Madu", "source": "resepkoki.id" }, { "url": "https://resepkoki.id/resep/resep-ayam-goreng-oatmeal/", "image": "https://i0.wp.com/resepkoki.id/wp-content/uploads/2021/03/Resep-Ayam-Goreng-Oatmeal.jpg?fit=640%2C853&ssl=1", "title": "Ayam Goreng Oatmeal", "source": "resepkoki.id" }, { "url": "https://resepkoki.id/resep/resep-ayam-goreng-sasando/", "image": "https://i0.wp.com/resepkoki.id/wp-content/uploads/2020/02/Resep-Ayam-Goreng-Sasando.jpg?fit=640%2C742&ssl=1", "title": "Ayam Goreng Sasando", "source": "resepkoki.id" }, { "url": "https://resepkoki.id/resep/resep-ayam-goreng-cabe/", "image": "https://i0.wp.com/resepkoki.id/wp-content/uploads/2020/01/Resep-Ayam-Goreng-Cabe.jpg?fit=640%2C642&ssl=1", "title": "Ayam Goreng Cabe", "source": "resepkoki.id" }, { "url": "https://resepkoki.id/resep/resep-ayam-goreng-terasi/", "image": "https://i0.wp.com/resepkoki.id/wp-content/uploads/2020/01/Resep-Ayam-Goreng-Terasi.jpg?fit=640%2C800&ssl=1", "title": "Ayam Goreng Terasi", "source": "resepkoki.id" }, { "url": "https://resepkoki.id/resep/resep-ayam-goreng-bawang/", "image": "https://i0.wp.com/resepkoki.id/wp-content/uploads/2018/01/Resep-Ayam-Goreng-Bawang.jpg?fit=640%2C794&ssl=1", "title": "Ayam Goreng Bawang", "source": "resepkoki.id" }, { "url": "https://resepkoki.id/resep/resep-ayam-goreng-kfc-krispi/", "image": "https://i0.wp.com/resepkoki.id/wp-content/uploads/2016/12/Resep-Ayam-Goreng-KFC.jpg?fit=640%2C610&ssl=1", "title": "Ayam Goreng KFC Krispi", "source": "resepkoki.id" }, { "url": "https://resepkoki.id/resep/resep-ayam-goreng-kalasan/", "image": "https://i0.wp.com/resepkoki.id/wp-content/uploads/2017/12/Resep-Ayam-kalasan.jpg?fit=640%2C800&ssl=1", "title": "Ayam Goreng Kalasan", "source": "resepkoki.id" }, { "url": "https://resepkoki.id/resep/resep-ayam-goreng-tulang-lunak/", "image": "https://i0.wp.com/resepkoki.id/wp-content/uploads/2016/04/Resep-Ayam-goreng-tulang-lunak.jpg?fit=640%2C624&ssl=1", "title": "Ayam Goreng Tulang Lunak", "source": "resepkoki.id" }, { "url": "https://resepkoki.id/resep/resep-ayam-goreng-lengkuas/", "image": "https://i0.wp.com/resepkoki.id/wp-content/uploads/2016/10/Resep-Ayam-Goreng-Lengkuas.jpg?fit=640%2C800&ssl=1", "title": "Ayam Goreng Lengkuas", "source": "resepkoki.id" }, { "url": "https://resepkoki.id/resep/resep-ayam-goreng-kecap/", "image": "https://i0.wp.com/resepkoki.id/wp-content/uploads/2017/01/Resep-Ayam-Goreng-Kecap.jpg?fit=640%2C622&ssl=1", "title": "Ayam Goreng Kecap", "source": "resepkoki.id" }, { "url": "https://resepkoki.id/resep/resep-ayam-goreng-tepung/", "image": "https://i0.wp.com/resepkoki.id/wp-content/uploads/2018/08/Resep-Ayam-Goreng-Tepung.jpg?fit=640%2C960&ssl=1", "title": "Ayam Goreng Tepung", "source": "resepkoki.id" }, { "url": "https://resepkoki.id/resep/resep-ayam-goreng-padang/", "image": "https://i0.wp.com/resepkoki.id/wp-content/uploads/2018/08/Resep-Ayam-Goreng-Padang.jpg?fit=640%2C960&ssl=1", "title": "Ayam Goreng Padang", "source": "resepkoki.id" } ], "hasMore": true, "nextPage": 2 } ``` --- ### Detail Resep Ambil detail lengkap resep dari URL — bahan, langkah, durasi, porsi. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/food:resepkoki/detail` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `url` | string | query | yes | URL resep dari resepkoki.id | **cURL:** ```bash curl "https://api.zpi.web.id/v1/food:resepkoki/detail?url=https%3A%2F%2Fresepkoki.id%2Fresep%2Fresep-ayam-kecap%2F" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/food:resepkoki/detail?url=https%3A%2F%2Fresepkoki.id%2Fresep%2Fresep-ayam-kecap%2F", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/food:resepkoki/detail?url=https%3A%2F%2Fresepkoki.id%2Fresep%2Fresep-ayam-kecap%2F", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "url": "https://resepkoki.id/resep/resep-ayam-kecap/", "tags": [ "Resep Ayam Kecap" ], "image": "https://i0.wp.com/resepkoki.id/wp-content/uploads/2019/11/Ayam-Kecap.jpg?fit=480%2C600&ssl=1", "steps": [ "Siapkan ayam yang sudah dicuci bersih. Kucuri jeruk nipis, beri garam, merica, diamkan 10-15 menit.", "Sambil menunggu marinasi, iris bawang merah, cincang halus bawang putih, potong tomat jadi 4-6 bagian, iris serong daun bawang.", "Panaskan minyak secukupnya (sedikit sedang). Dalam minyak yang sudah panas goreng ayam sampai setengah matang, sisihkan.", "Panaskan 3 sdm minyak, tumis bawang merah, bawang putih, jahe, sampai harum. Gunakan minyak sisa menggoreng ayam, jika minyak terlalu banyak bisa buang sebagian.", "Masukkan tomat, lalu ayam yang sudah digoreng, aduk rata.", "Kemudian masukkan air, beri kecap manis, kecap asin, merica bubuk, saus tiram, dan kecap inggris. Masak sampai mendidih, kemudian koreksi rasanya.", "Masak sampai mengental, sambil sesekali dibalik.", "Sesaat sebelum mematikan api, taburi dengan daun bawang.", "Siap disajikan." ], "title": "Resep Ayam Kecap", "author": "admin", "source": "resepkoki.id", "summary": "Manis gurih ayam kecap bisa bikin santapan keluarga jadi terasa spesial. Ayam kecap sebenarnya cukup mudah dibuat, bahan-bahannya juga sederhana saja. Kalau bosan dengan ayam goreng biasa, resep yang satu ini bisa jadi pilihan. Untuk rasa yang lebih lezat dan meresap, gunakan bagian paha atau paha atas.", "category": "Ayam - Daging", "servings": "6 Servings", "ingredients": [ "Ayam, potong sedang: 750 gram", "Bawang merah, iris tipis: 5 butir", "Bawang putih, cincang: 3 siung", "Daun bawang: 1 batang", "Jahe, geprek: 1 ruas", "Tomat, potong 8 bagian: 1 buah", "Kecap manis: 4 sdm", "Kecap asin: 1 sdm", "Garam: 1/2 sdt", "Saus tiram: 1 sdm", "Kecap inggris: 1 sdt", "Merica bubuk: 1/2 sdt", "Air: 250 ml", "Minyak goreng: secukupnya" ], "publishedAt": "2021-12-15" } ``` --- ### Resep Terbaru Daftar resep terbaru, optional filter kategori. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/food:resepkoki/latest` - **Cache TTL:** 180s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `category` | string | query | no | Slug kategori (opsional). Contoh: ayam-daging, ikan-seafood, sayur, kue-dessert. Kosongkan untuk homepage. | | `page` | number | query | no | Nomor halaman (default 1, max 50) | **cURL:** ```bash curl "https://api.zpi.web.id/v1/food:resepkoki/latest?category=ayam-daging&page=1" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/food:resepkoki/latest?category=ayam-daging&page=1", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/food:resepkoki/latest?category=ayam-daging&page=1", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "count": 10, "items": [ { "url": "https://resepkoki.id/resep/resep-ayam-panidar/", "image": "https://i0.wp.com/resepkoki.id/wp-content/uploads/2022/08/Resep-Ayam-Pinadar.jpg?fit=640%2C853&ssl=1", "title": "Ayam Panidar", "source": "resepkoki.id", "category": "ayam-daging" }, { "url": "https://resepkoki.id/resep/resep-toppa-lada/", "image": "https://i0.wp.com/resepkoki.id/wp-content/uploads/2022/08/Resep-Toppa-Lada.jpg?fit=640%2C853&ssl=1", "title": "Toppa Lada", "source": "resepkoki.id", "category": "ayam-daging" }, { "url": "https://resepkoki.id/resep/resep-lawar-ayam/", "image": "https://i0.wp.com/resepkoki.id/wp-content/uploads/2022/08/Resep-Lawar-Ayam.jpg?fit=640%2C853&ssl=1", "title": "Lawar Ayam", "source": "resepkoki.id", "category": "ayam-daging" }, { "url": "https://resepkoki.id/resep/resep-martabak-kari/", "image": "https://i0.wp.com/resepkoki.id/wp-content/uploads/2022/08/Resep-Martabak-Kari.jpg?fit=640%2C853&ssl=1", "title": "Martabak Kari", "source": "resepkoki.id", "category": "ayam-daging" }, { "url": "https://resepkoki.id/resep/resep-sate-buntel/", "image": "https://i0.wp.com/resepkoki.id/wp-content/uploads/2022/07/Resep-Sate-Buntel.jpg?fit=640%2C853&ssl=1", "title": "Sate Buntel", "source": "resepkoki.id", "category": "ayam-daging" }, { "url": "https://resepkoki.id/resep/resep-saus-barbeque/", "image": "https://i0.wp.com/resepkoki.id/wp-content/uploads/2022/04/Resep-Saus-Barbeque.jpg?fit=640%2C853&ssl=1", "title": "Saus Barbeque", "source": "resepkoki.id", "category": "ayam-daging" }, { "url": "https://resepkoki.id/resep/resep-sosis-asam-manis/", "image": "https://i0.wp.com/resepkoki.id/wp-content/uploads/2022/04/Resep-Sosis-Asam-Manis.jpg?fit=640%2C853&ssl=1", "title": "Sosis Asam Manis", "source": "resepkoki.id", "category": "ayam-daging" }, { "url": "https://resepkoki.id/resep/resep-ayam-bacem/", "image": "https://i0.wp.com/resepkoki.id/wp-content/uploads/2022/04/Resep-Ayam-Bacem.jpg?fit=640%2C799&ssl=1", "title": "Ayam Bacem", "source": "resepkoki.id", "category": "ayam-daging" }, { "url": "https://resepkoki.id/resep/resep-ayam-bumbu-merah/", "image": "https://i0.wp.com/resepkoki.id/wp-content/uploads/2022/03/Resep-Ayam-Bumbu-Merah.jpg?fit=640%2C853&ssl=1", "title": "Ayam Bumbu Merah", "source": "resepkoki.id", "category": "ayam-daging" }, { "url": "https://resepkoki.id/resep/resep-ayam-suwir-kecap/", "image": "https://i0.wp.com/resepkoki.id/wp-content/uploads/2022/03/Resep-Ayam-Suwir-Kecap.jpg?fit=640%2C897&ssl=1", "title": "Ayam Suwir Kecap", "source": "resepkoki.id", "category": "ayam-daging" } ], "hasMore": true, "nextPage": 2 } ``` --- ## TheMealDB **Category:** food · **Slug:** `themealdb` **Detail page:** https://zpi.web.id/api/food/themealdb Search and look up meal recipes with ingredients and preparation instructions. **Tags:** food, recipe ### Search Search meals by name. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/food:themealdb/search` - **Cache TTL:** 300s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `query` | string | query | yes | Meal keyword (English) | **cURL:** ```bash curl "https://api.zpi.web.id/v1/food:themealdb/search?query=chicken" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/food:themealdb/search?query=chicken", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/food:themealdb/search?query=chicken", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "ok": true, "count": 25, "meals": [ { "idMeal": "52795", "strArea": "India", "strMeal": "Chicken Handi", "strTags": null, "strSource": "", "strYoutube": "https://www.youtube.com/watch?v=IO0issT0Rmc", "ingredients": [ { "name": "Chicken", "measure": "1.2 kg" }, { "name": "Onion", "measure": "5 thinly sliced" }, { "name": "Tomatoes", "measure": "2 finely chopped" }, { "name": "Garlic", "measure": "8 cloves chopped" }, { "name": "Ginger paste", "measure": "1 tbsp" }, { "name": "Vegetable oil", "measure": "¼ cup" }, { "name": "Cumin seeds", "measure": "2 tsp" }, { "name": "Coriander seeds", "measure": "3 tsp" }, { "name": "Turmeric powder", "measure": "1 tsp" }, { "name": "Chilli powder", "measure": "1 tsp" }, { "name": "Green chilli", "measure": "2" }, { "name": "Yogurt", "measure": "1 cup" }, { "name": "Cream", "measure": "¾ cup" }, { "name": "fenugreek", "measure": "3 tsp Dried" }, { "name": "Garam masala", "measure": "1 tsp" }, { "name": "Salt", "measure": "To taste" } ], "strCategory": "Chicken", "strMealThumb": "https://www.themealdb.com/images/media/meals/wyxwsp1486979827.jpg", "strInstructions": "Take a large pot or wok, big enough to cook all the chicken, and heat the oil in it. Once the oil is hot, add sliced onion and fry them until deep golden brown. Then take them out on a plate and set aside.\r\nTo the same pot, add the chopped garlic and sauté for a minute. Then add the chopped tomatoes and cook until tomatoes turn soft. This would take about 5 minutes.\r\nThen return the fried onion to the pot and stir. Add ginger paste and sauté well.\r\nNow add the cumin seeds, half of the coriander seeds and chopped green chillies. Give them a quick stir.\r\nNext goes in the spices – turmeric powder and red chilli powder. Sauté the spices well for couple of minutes.\r\nAdd the chicken pieces to the wok, season it with salt to taste and cook the chicken covered on medium-low heat until the chicken is almost cooked through. This would take about 15 minutes. Slowly sautéing the chicken will enhance the flavor, so do not expedite this step by putting it on high heat.\r\nWhen the oil separates from the spices, add the beaten yogurt keeping the heat on lowest so that the yogurt doesn’t split. Sprinkle the remaining coriander seeds and add half of the dried fenugreek leaves. Mix well.\r\nFinally add the cream and give a final mix to combine everything well.\r\nSprinkle the remaining kasuri methi and garam masala and serve the chicken handi hot with naan or rotis. Enjoy!" }, { "idMeal": "53358", "strArea": "India", "strMeal": "Chicken Mandi", "strTags": null, "strSource": "", "strYoutube": "", "ingredients": [ { "name": "Chicken", "measure": "1" }, { "name": "Basmati Rice", "measure": "2 cups" }, { "name": "Water", "measure": "4 cups" }, { "name": "Onion", "measure": "1 large" }, { "name": "Garlic", "measure": "4 cloves" }, { "name": "Green Chilli", "measure": "2" }, { "name": "Salt", "measure": "1 ½ tsp" }, { "name": "Oil", "measure": "3 tablespoons" }, { "name": "Turmeric Powder", "measure": "1 tablespoon" }, { "name": "Coriander", "measure": "1 teaspoon" }, { "name": "Cardamom", "measure": "½ tbsp" }, { "name": "Cloves", "measure": "¼ teaspoon" }, { "name": "Cinnamon", "measure": "1/2 tsp" }, { "name": "Pepper", "measure": "1 tsp" }, { "name": "Bay Leaf", "measure": "2" } ], "strCategory": "Chicken", "strMealThumb": "https://www.themealdb.com/images/media/meals/er4d081765186828.jpg", "strInstructions": "1. Clean and cut the chicken; marinate briefly with salt, turmeric and a little oil.\r\n2. Rinse and soak basmati rice 20–30 minutes.\r\n3. In a large pot, heat ghee/oil. Fry chopped onion until golden. Add minced garlic and green chillies and fry 1–2 min.\r\n4. Add whole spices (cardamom, cloves, cinnamon, bay leaves) and ground spices (coriander, cumin). Stir until fragrant.\r\n5. Add chicken pieces, brown lightly and add enough water/chicken stock to cover. Simmer until chicken is nearly cooked.\r\n6. Remove chicken; measure remaining liquid and add soaked rice. Bring to a boil, then reduce heat, cover and cook rice until almost done.\r\n7. Return the chicken to the rice pot on top, cover tightly and steam on low for 10–15 min so flavors meld.\r\n8. (Optional) For authentic smoky aroma: heat a small charcoal until red hot, place it on a small foil cup in the centre of the pot, add a tsp of butter/oil on the coal then cover immediately to trap smoke for 5–10 minutes. Remove coal.\r\n9. Garnish with fried onions, chopped coriander and serve with chutney or raita.\r\n" }, { "idMeal": "53110", "strArea": "Australian", "strMeal": "Sticky Chicken", "strTags": null, "strSource": "https://www.bbcgoodfood.com/recipes/sticky-chicken", "strYoutube": "https://www.youtube.com/watch?v=o8tz2BOltTg", "ingredients": [ { "name": "Chicken drumsticks", "measure": "8" }, { "name": "Soy Sauce", "measure": "2 tblsp" }, { "name": "Honey", "measure": "1 tablespoon" }, { "name": "Olive Oil", "measure": "1 tblsp" }, { "name": "Tomato Puree", "measure": "1 teaspoon" }, { "name": "Dijon Mustard", "measure": "1 tbsp" } ], "strCategory": "Chicken", "strMealThumb": "https://www.themealdb.com/images/media/meals/cj56fs1762340001.jpg", "strInstructions": "step 1\r\nMake 3 slashes on each of the drumsticks. Mix together the soy, honey, oil, tomato purée and mustard. Pour this mixture over the chicken and coat thoroughly. Leave to marinate for 30 mins at room temperature or overnight in the fridge. Heat oven to 200C/fan 180C/gas 6.\r\n\r\nstep 2\r\nTip the chicken into a shallow roasting tray and cook for 35 mins, turning occasionally, until the chicken is tender and glistening with the marinade." }, { "idMeal": "52956", "strArea": "Chinese", "strMeal": "Chicken Congee", "strTags": null, "strSource": "https://sueandgambo.com/pages/chicken-congee", "strYoutube": "https://www.youtube.com/watch?v=kqEfk801E94", "ingredients": [ { "name": "Chicken", "measure": "8 oz" }, { "name": "Salt", "measure": "pinch" }, { "name": "Pepper", "measure": "pinch" }, { "name": "Ginger Cordial", "measure": "1 tsp" }, { "name": "Ginger", "measure": "1 tsp" }, { "name": "Spring Onions", "measure": "1 tbs" }, { "name": "Rice", "measure": "1/2 cup" }, { "name": "Water", "measure": "8 cups" }, { "name": "Coriander", "measure": "2 oz" } ], "strCategory": "Chicken", "strMealThumb": "https://www.themealdb.com/images/media/meals/1529446352.jpg", "strInstructions": "STEP 1 - MARINATING THE CHICKEN\r\nIn a bowl, add chicken, salt, white pepper, ginger juice and then mix it together well.\r\nSet the chicken aside.\r\nSTEP 2 - RINSE THE WHITE RICE\r\nRinse the rice in a metal bowl or pot a couple times and then drain the water.\r\nSTEP 2 - BOILING THE WHITE RICE\r\nNext add 8 cups of water and then set the stove on high heat until it is boiling. Once rice porridge starts to boil, set the stove on low heat and then stir it once every 8-10 minutes for around 20-25 minutes.\r\nAfter 25 minutes, this is optional but you can add a little bit more water to make rice porridge to make it less thick or to your preference.\r\nNext add the marinated chicken to the rice porridge and leave the stove on low heat for another 10 minutes.\r\nAfter an additional 10 minutes add the green onions, sliced ginger, 1 pinch of salt, 1 pinch of white pepper and stir for 10 seconds.\r\nServe the rice porridge in a bowl\r\nOptional: add Coriander on top of the rice porridge." }, { "idMeal": "52831", "strArea": "Japanese", "strMeal": "Chicken Karaage", "strTags": null, "strSource": "https://norecipes.com/karaage-recipe", "strYoutube": "https://www.youtube.com/watch?v=XivddFddthc", "ingredients": [ { "name": "Chicken", "measure": "450 grams Boneless skin" }, { "name": "Ginger", "measure": "1 tablespoon" }, { "name": "Garlic", "measure": "1 clove" }, { "name": "Soy sauce", "measure": "2 tablespoons" }, { "name": "Sake", "measure": "1 tablespoon" }, { "name": "Granulated sugar", "measure": "2 teaspoon" }, { "name": "Potato starch", "measure": "1/3 cup" }, { "name": "Vegetable oil", "measure": "1/3 cup" }, { "name": "Lemon", "measure": "1/3 cup" } ], "strCategory": "Chicken", "strMealThumb": "https://www.themealdb.com/images/media/meals/tyywsw1505930373.jpg", "strInstructions": "Add the ginger, garlic, soy sauce, sake and sugar to a bowl and whisk to combine. Add the chicken, then stir to coat evenly. Cover and refrigerate for at least 1 hour.\r\n\r\nAdd 1 inch of vegetable oil to a heavy bottomed pot and heat until the oil reaches 360 degrees F. Line a wire rack with 2 sheets of paper towels and get your tongs out. Put the potato starch in a bowl\r\n\r\nAdd a handful of chicken to the potato starch and toss to coat each piece evenly.\r\n\r\nFry the karaage in batches until the exterior is a medium brown and the chicken is cooked through. Transfer the fried chicken to the paper towel lined rack. If you want the karaage to stay crispy longer, you can fry the chicken a second time, until it's a darker color after it's cooled off once. Serve with lemon wedges." }, { "idMeal": "52920", "strArea": "France", "strMeal": "Chicken Marengo", "strTags": null, "strSource": "https://www.bbcgoodfood.com/recipes/3146682/chicken-marengo", "strYoutube": "https://www.youtube.com/watch?v=U33HYUr-0Fw", "ingredients": [ { "name": "Olive Oil", "measure": "1 tbs" }, { "name": "Mushrooms", "measure": "300g" }, { "name": "Chicken Legs", "measure": "4" }, { "name": "Passata", "measure": "500g" }, { "name": "Chicken Stock Cube", "measure": "1" }, { "name": "Black Olives", "measure": "100g" }, { "name": "Parsley", "measure": "Chopped" } ], "strCategory": "Chicken", "strMealThumb": "https://www.themealdb.com/images/media/meals/qpxvuq1511798906.jpg", "strInstructions": "Heat the oil in a large flameproof casserole dish and stir-fry the mushrooms until they start to soften. Add the chicken legs and cook briefly on each side to colour them a little.\r\nPour in the passata, crumble in the stock cube and stir in the olives. Season with black pepper – you shouldn’t need salt. Cover and simmer for 40 mins until the chicken is tender. Sprinkle with parsley and serve with pasta and a salad, or mash and green veg, if you like." }, { "idMeal": "53164", "strArea": "Spanish", "strMeal": "Spanish Chicken", "strTags": null, "strSource": "https://www.bbcgoodfood.com/recipes/spanish-chicken", "strYoutube": "https://www.youtube.com/watch?v=fKqSOn5NCrk", "ingredients": [ { "name": "Chicken Thighs", "measure": "8" }, { "name": "Onion", "measure": "3 sliced thinly" }, { "name": "Paprika", "measure": "2 teaspoons" }, { "name": "Lemon", "measure": "Zest and juice of 1" }, { "name": "Parsley", "measure": "Handful" }, { "name": "Chicken Stock", "measure": "150ml" }, { "name": "Olive Oil", "measure": "1 tablespoon" } ], "strCategory": "Chicken", "strMealThumb": "https://www.themealdb.com/images/media/meals/pqulvm1763282839.jpg", "strInstructions": "step 1\r\nHeat oven to 190C/170C fan/gas 5. Put all the ingredients into a large, wide ovenproof dish. Mix everything together with your hands and season.\r\n\r\nstep 2\r\nBake for 45 mins, stirring the onions after 20 mins, until the chicken is golden and the onions tender. Serve with rice." }, { "idMeal": "52806", "strArea": "India", "strMeal": "Tandoori chicken", "strTags": "Spicy,Meat", "strSource": "http://www.bbcgoodfood.com/recipes/1660651/tandoori-chicken", "strYoutube": "https://www.youtube.com/watch?v=-CKvt1KNU74", "ingredients": [ { "name": "lemons", "measure": "2 Juice" }, { "name": "paprika", "measure": "4 tsp" }, { "name": "red onions", "measure": "2 finely chopped" }, { "name": "chicken thighs", "measure": "16 skinnless" }, { "name": "vegetable oil", "measure": "For brushing" }, { "name": "Greek yogurt", "measure": "300ml" }, { "name": "ginger", "measure": "large piece" }, { "name": "garlic clove", "measure": "4" }, { "name": "garam masala", "measure": "¾ tsp" }, { "name": "ground cumin", "measure": "¾ tsp" }, { "name": "chilli powder", "measure": "½ tsp" }, { "name": "turmeric", "measure": "¼ tsp" } ], "strCategory": "Chicken", "strMealThumb": "https://www.themealdb.com/images/media/meals/qptpvt1487339892.jpg", "strInstructions": "Mix the lemon juice with the paprika and red onions in a large shallow dish. Slash each chicken thigh three times, then turn them in the juice and set aside for 10 mins.\r\nMix all of the marinade ingredients together and pour over the chicken. Give everything a good mix, then cover and chill for at least 1 hr. This can be done up to a day in advance.\r\nHeat the grill. Lift the chicken pieces onto a rack over a baking tray. Brush over a little oil and grill for 8 mins on each side or until lightly charred and completely cooked through." }, { "idMeal": "52850", "strArea": "Moroccan", "strMeal": "Chicken Couscous", "strTags": null, "strSource": "https://www.bbcgoodfood.com/recipes/13139/onepan-chicken-couscous", "strYoutube": "https://www.youtube.com/watch?v=GZQGy9oscVk", "ingredients": [ { "name": "Olive Oil", "measure": "1 tbsp" }, { "name": "Onion", "measure": "1 chopped" }, { "name": "Chicken Breast", "measure": "200g" }, { "name": "Ginger", "measure": "pinch" }, { "name": "Harissa Spice", "measure": "2 tblsp" }, { "name": "Dried Apricots", "measure": "10" }, { "name": "Chickpeas", "measure": "220g" }, { "name": "Couscous", "measure": "200g" }, { "name": "Chicken Stock", "measure": "200ml" }, { "name": "Coriander", "measure": "Handful" } ], "strCategory": "Chicken", "strMealThumb": "https://www.themealdb.com/images/media/meals/qxytrx1511304021.jpg", "strInstructions": "Heat the olive oil in a large frying pan and cook the onion for 1-2 mins just until softened. Add the chicken and fry for 7-10 mins until cooked through and the onions have turned golden. Grate over the ginger, stir through the harissa to coat everything and cook for 1 min more.\r\n\r\nTip in the apricots, chickpeas and couscous, then pour over the stock and stir once. Cover with a lid or tightly cover the pan with foil and leave for about 5 mins until the couscous has soaked up all the stock and is soft. Fluff up the couscous with a fork and scatter over the coriander to serve. Serve with extra harissa, if you like." }, { "idMeal": "52945", "strArea": "Chinese", "strMeal": "Kung Pao Chicken", "strTags": null, "strSource": "http://allrecipes.co.uk/recipe/1773/kung-pao-chicken.aspx", "strYoutube": "https://www.youtube.com/watch?v=QqdcCHQlOe0", "ingredients": [ { "name": "Sake", "measure": "2 tbs" }, { "name": "Soy Sauce", "measure": "2 tbs" }, { "name": "Sesame Seed Oil", "measure": "2 tbs" }, { "name": "Corn Flour", "measure": "2 tbs" }, { "name": "Water", "measure": "2 tbs" }, { "name": "Chicken", "measure": "500g" }, { "name": "Chilli Powder", "measure": "1 tbs" }, { "name": "Rice Vinegar", "measure": "1 tsp" }, { "name": "Brown Sugar", "measure": "1 tbs" }, { "name": "Spring Onions", "measure": "4 Chopped" }, { "name": "Garlic Clove", "measure": "6 cloves" }, { "name": "Water Chestnut", "measure": "220g" }, { "name": "Peanuts", "measure": "100g" } ], "strCategory": "Chicken", "strMealThumb": "https://www.themealdb.com/images/media/meals/1525872624.jpg", "strInstructions": "Combine the sake or rice wine, soy sauce, sesame oil and cornflour dissolved in water. Divide mixture in half.\r\nIn a glass dish or bowl, combine half of the sake mixture with the chicken pieces and toss to coat. Cover dish and place in refrigerator for about 30 minutes.\r\nIn a medium frying pan, combine remaining sake mixture, chillies, vinegar and sugar. Mix together and add spring onion, garlic, water chestnuts and peanuts. Heat sauce slowly over medium heat until aromatic.\r\nMeanwhile, remove chicken from marinade and sauté in a large frying pan until juices run clear. When sauce is aromatic, add sautéed chicken and let simmer together until sauce thickens." }, { "idMeal": "52934", "strArea": "France", "strMeal": "Chicken Basquaise", "strTags": "Meat", "strSource": "https://www.rivercottage.net/recipes/chicken-basquaise", "strYoutube": "https://www.youtube.com/watch?v=emfm6TwsVhg", "ingredients": [ { "name": "Chicken", "measure": "1.5kg" }, { "name": "Butter", "measure": "25g" }, { "name": "Olive Oil", "measure": "6 tblsp" }, { "name": "Red Onions", "measure": "2 sliced" }, { "name": "Red Pepper", "measure": "3 Large" }, { "name": "Chorizo", "measure": "130g" }, { "name": "Sun-Dried Tomatoes", "measure": "8" }, { "name": "Garlic", "measure": "6 cloves sliced" }, { "name": "Basmati Rice", "measure": "300g" }, { "name": "Tomato Puree", "measure": "drizzle" }, { "name": "Paprika", "measure": "½ tsp" }, { "name": "Bay Leaves", "measure": "4" }, { "name": "Thyme", "measure": "Handful" }, { "name": "Chicken Stock", "measure": "350ml" }, { "name": "Dry White Wine", "measure": "180g" }, { "name": "Lemons", "measure": "2" }, { "name": "Black Olives", "measure": "100g" }, { "name": "Salt", "measure": "to serve" }, { "name": "Pepper", "measure": "to serve" } ], "strCategory": "Chicken", "strMealThumb": "https://www.themealdb.com/images/media/meals/wruvqv1511880994.jpg", "strInstructions": "Preheat the oven to 180°C/Gas mark 4. Have the chicken joints ready to cook. Heat the butter and 3 tbsp olive oil in a flameproof casserole or large frying pan. Brown the chicken pieces in batches on both sides, seasoning them with salt and pepper as you go. Don't crowd the pan - fry the chicken in small batches, removing the pieces to kitchen paper as they are done.\r\n\r\nAdd a little more olive oil to the casserole and fry the onions over a medium heat for 10 minutes, stirring frequently, until softened but not browned. Add the rest of the oil, then the peppers and cook for another 5 minutes.\r\n\r\nAdd the chorizo, sun-dried tomatoes and garlic and cook for 2-3 minutes. Add the rice, stirring to ensure it is well coated in the oil. Stir in the tomato paste, paprika, bay leaves and chopped thyme. Pour in the stock and wine. When the liquid starts to bubble, turn the heat down to a gentle simmer. Press the rice down into the liquid if it isn't already submerged and place the chicken on top. Add the lemon wedges and olives around the chicken.\r\n\r\nCover and cook in the oven for 50 minutes. The rice should be cooked but still have some bite, and the chicken should have juices that run clear when pierced in the thickest part with a knife. If not, cook for another 5 minutes and check again." }, { "idMeal": "53367", "strArea": "Chinese", "strMeal": "Chicken Fried Rice", "strTags": null, "strSource": "https://www.simplyrecipes.com/recipes/chicken_fried_rice/", "strYoutube": "https://www.youtube.com/watch?v=mUr-7wjhHuU", "ingredients": [ { "name": "Chicken Thighs", "measure": "1 lb" }, { "name": "Salt", "measure": "1 tsp" }, { "name": "Canola Oil", "measure": "3 tablespoons" }, { "name": "Egg", "measure": "3 Large" }, { "name": "Onion", "measure": "2/3 Cup" }, { "name": "Garlic", "measure": "2 cloves minced" }, { "name": "Ground Ginger", "measure": "2 tsp" }, { "name": "Carrots", "measure": "1 large" }, { "name": "Peas", "measure": "2/3 Cup" }, { "name": "Jasmine Rice", "measure": "4 cups" }, { "name": "Scallions", "measure": "2 sliced" }, { "name": "Chinese five spice powder", "measure": "1/2 tsp" }, { "name": "Soy Sauce", "measure": "2.5 tbsp" }, { "name": "Sesame Seed Oil", "measure": "1 tsp" } ], "strCategory": "Chicken", "strMealThumb": "https://www.themealdb.com/images/media/meals/wuyd2h1765655837.jpg", "strInstructions": "Fried rice is best made with leftover rice that's at least a day old. Otherwise it becomes gummy in the skillet.\r\nIf you don’t have any leftover rice from the night before, cook a batch of rice and spread it on a large baking sheet or several large plates. Let the rice dry out for about 1 to 2 hours before using it for fried rice.\r\n\r\nRice sticks to the pan very easily, so make sure to use a wok or pan that doesn’t have a sticky surface. I usually cook stir-fries in my seasoned carbon steel wok, but cast iron or nonstick pans work well, too. You might need to add a little more oil if things aren’t releasing easily.\r\n\r\nPrepare the chicken:\r\nChop the chicken into small 1/4-inch to 1/2-inch cubes. Sprinkle 1/2 teaspoon of salt over the chicken and mix to combine. Set the chicken aside for about 10 minutes (I usually use this time to chop all the vegetables).\r\n\r\nScramble the egg:\r\nHeat a wok or large sauté pan over medium-high heat. Swirl in a tablespoon of oil and add the whisked eggs. Use a spatula to quickly scramble the eggs, breaking the curds into smaller pieces as they come together. Transfer the eggs to a plate.\r\n\r\nCook the chicken:\r\nAdd another tablespoon of oil in the wok or pan. Add the chicken and cook for 4 to 5 minutes, stirring occasionally. Turn off the heat and transfer the cooked chicken to a plate.\r\n\r\nUsing your spatula, scrape off any chicken bits that are still stuck to the wok so they don't burn during the next step. You can also use paper towels to wipe down your wok or pan.\r\n\r\nCook the vegetables:\r\nSwirl 1 tablespoon of oil into the wok over medium-high heat. Add the diced onions and cook them for 1 minute, until they start to soften. Mix in the minced garlic and ginger and cook until fragrant, about 30 seconds. Add the diced carrots and cook for 2 minutes, stirring frequently. Add 1/2 teaspoon salt and the peas, and stir to incorporate.\r\n\r\nCook the rice:\r\nAdd the rice to the wok or pan on top of the vegetables and stir to combine. Using the back of your spatula, smash any large chunks of rice to break them apart. Add the white and green parts of the sliced scallions (save the dark green parts) and five-spice powder. Stir to incorporate. If the rice starts to stick to the pan, stir in a little more oil.\r\n\r\nDrizzle the soy sauce and sesame oil over the rice and stir to incorporate. Stir in the cooked chicken, scrambled eggs, and the dark parts of the scallions. Stir briefly to bring it together, and cook for another 1 to 2 minutes.\r\n\r\nServe:\r\nTaste, and add more soy sauce if necessary. Serve immediately." }, { "idMeal": "52879", "strArea": "France", "strMeal": "Chicken Parmentier", "strTags": "Meat,Dairy", "strSource": "https://www.bbc.co.uk/food/recipes/chicken_parmentier_25434", "strYoutube": "https://www.youtube.com/watch?v=tiG-xlmeyjg", "ingredients": [ { "name": "Potatoes", "measure": "1.5kg" }, { "name": "Butter", "measure": "30g" }, { "name": "Double Cream", "measure": "5 tblsp" }, { "name": "Egg Yolks", "measure": "2" }, { "name": "Butter", "measure": "30g" }, { "name": "Shallots", "measure": "7" }, { "name": "Carrots", "measure": "3 chopped" }, { "name": "Celery", "measure": "2 sticks" }, { "name": "Garlic Clove", "measure": "1 finely chopped" }, { "name": "White Wine", "measure": "4 tbsp" }, { "name": "Tomato Puree", "measure": "1 tbls" }, { "name": "Tinned Tomatos", "measure": "400g" }, { "name": "Chicken Stock", "measure": "350ml" }, { "name": "Chicken", "measure": "600g" }, { "name": "Black Olives", "measure": "16" }, { "name": "Parsley", "measure": "2 tbs" }, { "name": "Gruyere cheese", "measure": "50g" } ], "strCategory": "Chicken", "strMealThumb": "https://www.themealdb.com/images/media/meals/uwvxpv1511557015.jpg", "strInstructions": "For the topping, boil the potatoes in salted water until tender. Drain and push through a potato ricer, or mash thoroughly. Stir in the butter, cream and egg yolks. Season and set aside.\r\nFor the filling, melt the butter in a large pan. Add the shallots, carrots and celery and gently fry until soft, then add the garlic. Pour in the wine and cook for 1 minute. Stir in the tomato purée, chopped tomatoes and stock and cook for 10–15 minutes, until thickened. Add the shredded chicken, olives and parsley. Season to taste with salt and pepper.\r\nPreheat the oven to 180C/160C Fan/Gas 4.\r\nPut the filling in a 20x30cm/8x12in ovenproof dish and top with the mashed potato. Grate over the Gruyère. Bake for 30–35 minutes, until piping hot and the potato is golden-brown." }, { "idMeal": "52940", "strArea": "Jamaican", "strMeal": "Brown Stew Chicken", "strTags": "Stew", "strSource": "http://www.geniuskitchen.com/recipe/authentic-jamaican-brown-stew-chicken-347996", "strYoutube": "https://www.youtube.com/watch?v=_gFB1fkNhXs", "ingredients": [ { "name": "Chicken", "measure": "1 whole" }, { "name": "Tomato", "measure": "1 chopped" }, { "name": "Onions", "measure": "2 chopped" }, { "name": "Garlic Clove", "measure": "2 chopped" }, { "name": "Red Pepper", "measure": "1 chopped" }, { "name": "Carrots", "measure": "1 chopped" }, { "name": "Lime", "measure": "1" }, { "name": "Thyme", "measure": "2 tsp" }, { "name": "Allspice", "measure": "1 tsp" }, { "name": "Soy Sauce", "measure": "2 tbs" }, { "name": "Cornstarch", "measure": "2 tsp" }, { "name": "Coconut Milk", "measure": "2 cups" }, { "name": "Vegetable Oil", "measure": "1 tbs" } ], "strCategory": "Chicken", "strMealThumb": "https://www.themealdb.com/images/media/meals/sypxpx1515365095.jpg", "strInstructions": "Squeeze lime over chicken and rub well. Drain off excess lime juice.\r\nCombine tomato, scallion, onion, garlic, pepper, thyme, pimento and soy sauce in a large bowl with the chicken pieces. Cover and marinate at least one hour.\r\nHeat oil in a dutch pot or large saucepan. Shake off the seasonings as you remove each piece of chicken from the marinade. Reserve the marinade for sauce.\r\nLightly brown the chicken a few pieces at a time in very hot oil. Place browned chicken pieces on a plate to rest while you brown the remaining pieces.\r\nDrain off excess oil and return the chicken to the pan. Pour the marinade over the chicken and add the carrots. Stir and cook over medium heat for 10 minutes.\r\nMix flour and coconut milk and add to stew, stirring constantly. Turn heat down to minimum and cook another 20 minutes or until tender." }, { "idMeal": "53155", "strArea": "Spanish", "strMeal": "Spanish chicken pie", "strTags": null, "strSource": "https://www.bbcgoodfood.com/recipes/spanish-chicken-pie", "strYoutube": "", "ingredients": [ { "name": "Potatoes", "measure": "1 kg" }, { "name": "Paprika", "measure": "3 tsp" }, { "name": "Olive Oil", "measure": "2 teaspoons" }, { "name": "Onion", "measure": "2 sliced" }, { "name": "Garlic", "measure": "2 cloves minced" }, { "name": "Tinned Tomatos", "measure": "800g" }, { "name": "Chicken", "measure": "300g" }, { "name": "Roasted pepper", "measure": "140g" }, { "name": "Green Olives", "measure": "Handful" } ], "strCategory": "Chicken", "strMealThumb": "https://www.themealdb.com/images/media/meals/8ovxf41763253962.jpg", "strInstructions": "step 1\r\nHeat oven to 200C/fan 180C/gas 6. Boil the potatoes for 15-20 mins until tender. Drain, return to the pan, then mash with some seasoning and 2 tsp of the paprika.\r\n\r\nstep 2\r\nMeanwhile, heat the oil in a large pan, then fry the onions and garlic for a few mins until softened. Stir in the remaining paprika for 1 min, add the tomatoes , then, bring to a simmer. Tip into a large ovenproof dish, then stir in the chicken, peppers, olives and some seasoning.\r\n\r\nstep 3\r\nSpoon over the mash, then bake for 15 mins until the mash is golden on top and the sauce is bubbling." }, { "idMeal": "52820", "strArea": "Japanese", "strMeal": "Katsu Chicken curry", "strTags": "Curry,Meat", "strSource": "http://allrecipes.co.uk/recipe/29578/chicken-katsu-curry.aspx", "strYoutube": "https://www.youtube.com/watch?v=MWzxDFRtVbc", "ingredients": [ { "name": "chicken breast", "measure": "4 pounded to 1cm thickness" }, { "name": "plain flour", "measure": "2 tablespoons" }, { "name": "egg", "measure": "1 beaten" }, { "name": "breadcrumbs", "measure": "100g fine" }, { "name": "vegetable oil", "measure": "230ml frying" }, { "name": "sunflower oil", "measure": "2 tablespoons" }, { "name": "onions", "measure": "2 sliced" }, { "name": "garlic", "measure": "5 chopped cloves" }, { "name": "carrot", "measure": "2 sliced" }, { "name": "plain flour", "measure": "2 tablespoons" }, { "name": "curry powder", "measure": "4 teaspoons" }, { "name": "chicken stock", "measure": "600ml" }, { "name": "honey", "measure": "2 teaspoons" }, { "name": "soy sauce", "measure": "4 teaspoons" }, { "name": "bay leaf", "measure": "1" }, { "name": "garam masala", "measure": "1 teaspoon" } ], "strCategory": "Chicken", "strMealThumb": "https://www.themealdb.com/images/media/meals/vwrpps1503068729.jpg", "strInstructions": "Prep:15min › Cook:30min › Ready in:45min \r\n\r\nFor the curry sauce: Heat oil in medium non-stick saucepan, add onion and garlic and cook until softened. Stir in carrots and cook over low heat for 10 to 12 minutes.\r\nAdd flour and curry powder; cook for 1 minute. Gradually stir in stock until combined; add honey, soy sauce and bay leaf. Slowly bring to the boil.\r\nTurn down heat and simmer for 20 minutes or until sauce thickens but is still of pouring consistency. Stir in garam masala. Pour the curry sauce through a sieve; return to saucepan and keep on low heat until ready to serve.\r\nFor the chicken: Season both sides of chicken breasts with salt and pepper. Place flour, egg and breadcrumbs in separate bowls and arrange in a row. Coat the chicken breasts in flour, then dip them into the egg, then coat in breadcrumbs, making sure you cover both sides.\r\nHeat oil in large frying pan over medium-high heat. Place chicken into hot oil and cook until golden brown, about 3 or 4 minutes each side. Once cooked, place on kitchen paper to absorb excess oil.\r\nPour curry sauce over chicken, serve with white rice and enjoy!" }, { "idMeal": "52851", "strArea": "India", "strMeal": "Nutty Chicken Curry", "strTags": null, "strSource": "https://www.bbcgoodfood.com/recipes/11753/nutty-chicken-curry", "strYoutube": "https://www.youtube.com/watch?v=nSQNfZxOdeU", "ingredients": [ { "name": "Red Chilli", "measure": "1 large" }, { "name": "Ginger", "measure": "0.5" }, { "name": "Garlic", "measure": "1 large" }, { "name": "Coriander", "measure": "Bunch" }, { "name": "Sunflower Oil", "measure": "1 tbsp" }, { "name": "Chicken Breasts", "measure": "4" }, { "name": "Peanut Butter", "measure": "5 tblsp" }, { "name": "Chicken Stock", "measure": "150ml" }, { "name": "Greek Yogurt", "measure": "200g" } ], "strCategory": "Chicken", "strMealThumb": "https://www.themealdb.com/images/media/meals/yxsurp1511304301.jpg", "strInstructions": "Finely slice a quarter of the chilli, then put the rest in a food processor with the ginger, garlic, coriander stalks and one-third of the leaves. Whizz to a rough paste with a splash of water if needed.\r\nHeat the oil in a frying pan, then quickly brown the chicken chunks for 1 min. Stir in the paste for another min, then add the peanut butter, stock and yogurt. When the sauce is gently bubbling, cook for 10 mins until the chicken is just cooked through and sauce thickened. Stir in most of the remaining coriander, then scatter the rest on top with the chilli, if using. Eat with rice or mashed sweet potato." }, { "idMeal": "53143", "strArea": "Spanish", "strMeal": "Easy Spanish chicken", "strTags": null, "strSource": "https://www.bbcgoodfood.com/recipes/easy-spanish-chicken", "strYoutube": "https://www.youtube.com/watch?v=EusTpzrqYK4", "ingredients": [ { "name": "Extra Virgin Olive Oil", "measure": "2 tbsp" }, { "name": "Onion", "measure": "1" }, { "name": "Chorizo", "measure": "150g" }, { "name": "Red Pepper", "measure": "1" }, { "name": "Yellow Pepper", "measure": "1" }, { "name": "sweet smoked paprika", "measure": "1 teaspoon" }, { "name": "Garlic", "measure": "4 cloves" }, { "name": "Tinned Tomatos", "measure": "400g" }, { "name": "Green Olives", "measure": "150g" }, { "name": "Butter Beans", "measure": "400g" }, { "name": "Chicken Thighs", "measure": "8" }, { "name": "Parsley", "measure": "1 Handfull" } ], "strCategory": "Chicken", "strMealThumb": "https://www.themealdb.com/images/media/meals/kzxflc1763194887.jpg", "strInstructions": "step 1\r\nHeat the oven to 200C/180C fan/gas 6. Heat the olive oil in a large ovenproof frying pan over a medium heat and fry the onion, chorizo and peppers along with a pinch of salt and pepper for 15 mins until the veg has softened and the chorizo has released its oils. Add the paprika and garlic, and cook for another few minutes until fragrant.\r\n\r\nstep 2\r\nTip in the chopped tomatoes, olives and butter beans, stir to combine and season. Nestle in the chicken thighs and season well. Transfer to the oven and bake for 40 mins until the chicken skin is crisp and the meat cooked through and tender. Scatter with the parsley and serve.\r\n\r\nWatch after ad (0.04):\r\n3 Budget Egg Ideas\r\n\r\n" }, { "idMeal": "52951", "strArea": "Chinese", "strMeal": "General Tsos Chicken", "strTags": null, "strSource": "https://www.skinnytaste.com/general-tsos-chicken/", "strYoutube": "https://www.youtube.com/watch?v=wWGwz0iBmvU", "ingredients": [ { "name": "Chicken Breast", "measure": "1 1/2" }, { "name": "Plain Flour", "measure": "3/4 cup" }, { "name": "Egg", "measure": "1" }, { "name": "Starch", "measure": "2 tbs" }, { "name": "Baking Powder", "measure": "1 tbs" }, { "name": "Salt", "measure": "1 tsp" }, { "name": "Onion Salt", "measure": "1/2 tsp" }, { "name": "Garlic Powder", "measure": "1/4 tsp" }, { "name": "Water", "measure": "3/4 cup" }, { "name": "Chicken Stock", "measure": "1/2 cup" }, { "name": "Duck Sauce", "measure": "1/4 cup" }, { "name": "Soy Sauce", "measure": "3 tbs" }, { "name": "Honey", "measure": "2 tbs" }, { "name": "Rice Vinegar", "measure": "1 tbs" }, { "name": "Sesame Seed Oil", "measure": "2 tbs" }, { "name": "Gochujang", "measure": "1/2 tbs" }, { "name": "Starch", "measure": "2 tbs" }, { "name": "Garlic", "measure": "1 clove" }, { "name": "Spring Onions", "measure": "2 chopped" }, { "name": "Ginger", "measure": "1 tsp" } ], "strCategory": "Chicken", "strMealThumb": "https://www.themealdb.com/images/media/meals/1529444113.jpg", "strInstructions": "DIRECTIONS:\r\nSTEP 1 - SAUCE\r\nIn a bowl, add 2 Cups of water, 2 Tablespoon soy sauce, 2 Tablespoon white vinegar, sherry cooking wine, 1/4 Teaspoon white pepper, minced ginger, minced garlic, hot pepper, ketchup, hoisin sauce, and sugar.\r\nMix together well and set aside.\r\nSTEP 2 - MARINATING THE CHICKEN\r\nIn a bowl, add the chicken, 1 pinch of salt, 1 pinch of white pepper, 2 egg whites, and 3 Tablespoon of corn starch\r\nSTEP 3 - DEEP FRY THE CHICKEN\r\nDeep fry the chicken at 350 degrees for 3-4 minutes or until it is golden brown and loosen up the chicken so that they don't stick together.\r\nSet the chicken aside.\r\nSTEP 4 - STIR FRY\r\nAdd the sauce to the wok and then the broccoli and wait until it is boiling.\r\nTo thicken the sauce, whisk together 2 Tablespoon of cornstarch and 4 Tablespoon of water in a bowl and slowly add to your stir-fry until it's the right thickness.\r\nNext add in the chicken and stir-fry for a minute and serve on a plate" }, { "idMeal": "53264", "strArea": "Turkish", "strMeal": "Smoky chicken skewers", "strTags": null, "strSource": "https://www.bbcgoodfood.com/recipes/smoky-chicken-skewers", "strYoutube": "https://www.youtube.com/watch?v=vNDTGF4ppu8", "ingredients": [ { "name": "Chicken Thighs", "measure": "6" }, { "name": "Olive Oil", "measure": "2 tablespoons" }, { "name": "Fennel Seeds", "measure": "1 tsp" }, { "name": "Ground Cumin", "measure": "1 tsp" }, { "name": "sweet smoked paprika", "measure": "1 tsp" }, { "name": "Garlic", "measure": "1 clove peeled crushed" }, { "name": "Red Wine Vinegar", "measure": "1 tsp" }, { "name": "Smoky Aïoli", "measure": "To serve" } ], "strCategory": "Chicken", "strMealThumb": "https://www.themealdb.com/images/media/meals/3um6il1763794322.jpg", "strInstructions": "step 1\r\nYou need 15 skewers: if wooden, soak in water for 10 mins. Cut chicken into 3cm pieces and place in a bowl. Add 1 tbsp olive oil, the spices, garlic and vinegar, toss well and season. You can do this up to a day before and refrigerate.\r\n\r\nstep 2\r\nThread 2-3 pieces on each skewer. Pour remaining oil in a frying pan or rub onto a griddle pan. Get the pan hot and sear the chicken for 3-4 mins on each side – you may have to do this in batches, keeping the cooked skewers warm in a low oven. Serve with smoky aïoli if you like." }, { "idMeal": "53376", "strArea": "Chinese", "strMeal": "Sweet and Sour Chicken", "strTags": null, "strSource": "https://www.simplyrecipes.com/recipes/sweet_and_sour_chicken/", "strYoutube": "https://www.youtube.com/watch?v=cblsP5S9PhU", "ingredients": [ { "name": "Chicken Thighs", "measure": "1 lb" }, { "name": "Egg White", "measure": "1 large" }, { "name": "Kosher Salt", "measure": "1 tsp" }, { "name": "Cornstarch", "measure": "2 tsp" }, { "name": "Pineapple Chunks", "measure": "10 oz" }, { "name": "Pineapple Juice", "measure": "1/4 cup" }, { "name": "White Vinegar", "measure": "1/4 cup" }, { "name": "Tomato Ketchup", "measure": "1/4 cup" }, { "name": "Brown Sugar", "measure": "3 tablespoons" }, { "name": "Oil", "measure": "4 tsp" }, { "name": "Red Pepper", "measure": "1 chopped" }, { "name": "Yellow Pepper", "measure": "1 chopped" }, { "name": "Ginger", "measure": "1 tsp" } ], "strCategory": "Chicken", "strMealThumb": "https://www.themealdb.com/images/media/meals/arzs741766434335.jpg", "strInstructions": "Coat the chicken with egg white:\r\nIn a bowl, combine the chicken with the egg white, 1/2 teaspoon kosher salt, and cornstarch. Stir to coat the chicken evenly. Let sit for 15 minutes at room temperature or up to overnight in the refrigerator.\r\n\r\nMake the sweet and sour sauce:\r\nWhisk together the pineapple juice, vinegar, ketchup, 1/2 teaspoon kosher salt, and brown sugar.\r\n\r\nStir-fry the chicken over high heat:\r\nHeat a large frying pan or wok over high heat until a bead of water instantly sizzles and evaporates. Pour in 1 tablespoon of cooking oil and swirl to coat. It's important that the pan is very hot.\r\n\r\nAdd the chicken and spread the pieces out in one layer. Let the chicken fry untouched for 1 minute, until the bottoms are browned.\r\n\r\nFlip and fry the other side for 1 minute. The chicken should still be pinkish in the middle. Dish out the chicken onto a clean plate, leaving as much oil in the pan as possible.\r\n\r\nStir-fry the bell pepper and ginger:\r\nReduce the heat to medium and add the remaining 1 teaspoon of cooking oil. Let the oil heat up before adding the bell pepper chunks and ginger. Fry for 1 minute.\r\n\r\nAdd the pineapple, sauce, and then, the chicken:\r\nAdd the pineapple chunks and the sweet and sour sauce. Turn up the heat to high. When the sauce is simmering, add the chicken pieces back in.\r\n\r\nLet simmer for 1 to 2 minutes, until the chicken is cooked through. Timing depends on how thick you've cut your chicken. The best way to tell if the chicken is done is to take a piece out and cut into it. If it's pink, add another minute to the cooking.\r\n\r\nAdjust the seasoning and serve:\r\nTaste the sauce and add more brown sugar or vinegar to suit your tastes, if you’d like.\r\n\r\nServe hot with steamed white or brown rice." }, { "idMeal": "52813", "strArea": "United States", "strMeal": "Kentucky Fried Chicken", "strTags": "Meat,Spicy", "strSource": "http://www.tablespoon.com/recipes/copycat-kfc-original-style-chicken/97c93d14-9d8c-4bc7-96dc-1e0b37e4fcaa", "strYoutube": "https://www.youtube.com/watch?v=PTUxCvCz8Bc", "ingredients": [ { "name": "Chicken", "measure": "1 whole" }, { "name": "Oil", "measure": "2 quarts neutral frying" }, { "name": "Egg White", "measure": "1" }, { "name": "Flour", "measure": "1 1/2 cups" }, { "name": "Brown Sugar", "measure": "1 tablespoon" }, { "name": "Salt", "measure": "1 tablespoon" }, { "name": "paprika", "measure": "1 tablespoon" }, { "name": "onion salt", "measure": "2 teaspoons" }, { "name": "chili powder", "measure": "1 teaspoon" }, { "name": "black pepper", "measure": "1 teaspoon" }, { "name": "celery salt", "measure": "1/2 teaspoon" }, { "name": "sage", "measure": "1/2 teaspoon" }, { "name": "garlic powder", "measure": "1/2 teaspoon" }, { "name": "allspice", "measure": "1/2 teaspoon" }, { "name": "oregano", "measure": "1/2 teaspoon" }, { "name": "basil", "measure": "1/2 teaspoon" }, { "name": "marjoram", "measure": "1/2 teaspoon" } ], "strCategory": "Chicken", "strMealThumb": "https://www.themealdb.com/images/media/meals/40r49m1763197022.jpg", "strInstructions": "Preheat fryer to 350°F. Thoroughly mix together all the spice mix ingredients.\r\nCombine spice mix with flour, brown sugar and salt.\r\nDip chicken pieces in egg white to lightly coat them, then transfer to flour mixture. Turn a few times and make sure the flour mix is really stuck to the chicken. Repeat with all the chicken pieces.\r\nLet chicken pieces rest for 5 minutes so crust has a chance to dry a bit.\r\nFry chicken in batches. Breasts and wings should take 12-14 minutes, and legs and thighs will need a few more minutes. Chicken pieces are done when a meat thermometer inserted into the thickest part reads 165°F.\r\nLet chicken drain on a few paper towels when it comes out of the fryer. Serve hot." }, { "idMeal": "53365", "strArea": "Chinese", "strMeal": "Chinese Orange Chicken", "strTags": null, "strSource": "https://www.simplyrecipes.com/recipes/chinese_orange_chicken/", "strYoutube": "https://www.youtube.com/watch?v=-222Dutomek", "ingredients": [ { "name": "Orange", "measure": "Zest of 1" }, { "name": "Orange Juice", "measure": "1/4 cup" }, { "name": "Soy Sauce", "measure": "1/4 cup" }, { "name": "Water", "measure": "1/4 cup" }, { "name": "Rice Vinegar", "measure": "1/3 cup" }, { "name": "Cornstarch", "measure": "1 tablespoon" }, { "name": "Sesame Seed Oil", "measure": "1 tablespoon" }, { "name": "Sugar", "measure": "1/2 cup" }, { "name": "Chicken Thighs", "measure": "650g" }, { "name": "Egg", "measure": "2 large" }, { "name": "Salt", "measure": "1 tsp" }, { "name": "Black Pepper", "measure": "1/4 tsp" }, { "name": "Cornstarch", "measure": "1/2 cup" }, { "name": "All purpose flour", "measure": "1/2 cup" }, { "name": "Vegetable Oil", "measure": "2 cups" }, { "name": "Garlic", "measure": "2 cloves chopped" }, { "name": "Shallots", "measure": "1 chopped" }, { "name": "Scallions", "measure": "Sliced" }, { "name": "Sesame Seed", "measure": "Garnish" }, { "name": "Rice", "measure": "To serve" } ], "strCategory": "Chicken", "strMealThumb": "https://www.themealdb.com/images/media/meals/s73ytv1765567838.jpg", "strInstructions": "Make the orange sauce:\r\nWhisk together sauce ingredients in a medium bowl. Set aside.\r\n\r\n\r\nPrep the chicken:\r\nCut chicken into about 1-inch cubes. Whisk eggs with salt and black pepper in a bowl and add chicken. Stir together.\r\n\r\nIn a separate bowl, whisk together flour and cornstarch. Remove chicken from eggs with a slotted spoon or tongs, letting excess egg drain off, then transfer to cornstarch mixture and coat well.\r\n\r\n\r\nFry the chicken:\r\nAdd oil to a large 10- to 12-inch skillet. Heat over medium-high heat until it reaches 350°F. If you don’t have a thermometer, you can also test the temperature by sprinkling in some flour. If the oil is hot enough, it should fizzle immediately.\r\n\r\nOnce oil is hot, fry the chicken in two batches. The oil might not completely cover the chicken—that’s okay. Cook for 3 to 4 minutes. Flip the chicken pieces and cook until the chicken is cooked through, about 3 to 4 more minutes. Total cook time is about 6 to 8 minutes.\r\n\r\nRemove fried chicken cubes and transfer to a plate lined with paper towels, so the chicken can drain. Repeat until all the chicken is cooked.\r\n\r\n\r\nSimmer the chicken in the sauce:\r\nOnce chicken is done, pour out hot oil and wipe pan clean. Add a fresh tablespoon of oil along with chopped garlic and shallot. Cook for a minute and then add the sauce. Simmer the sauce until it starts to thicken.\r\n\r\nOnce the sauce is lightly bubbling, add fried chicken and toss together to coat. The sauce should continue to thicken and stick to the chicken. Let simmer for a minute or two more. Serve orange chicken over cooked white rice, garnished with sesame seeds and fresh scallions.\r\n\r\nDid you love this recipe? Let us know with a rating and review!\r\n\r\n\r\nLEFTOVERS! The orange chicken keeps well in the fridge for 5 days. Reheat in a skillet with a splash of water over low heat. Freeze the orange chicken for up to 3 months, but be sure to thaw it before reheating so the chicken doesn’t clump together." }, { "idMeal": "53214", "strArea": "Thai", "strMeal": "Thai green chicken soup", "strTags": "Soup", "strSource": "https://www.bbcgoodfood.com/recipes/thai-green-chicken-soup", "strYoutube": "https://www.youtube.com/watch?v=3s4Yitd546w", "ingredients": [ { "name": "Sunflower Oil", "measure": "2 tblsp" }, { "name": "Onion", "measure": "1 chopped" }, { "name": "Chicken Thighs", "measure": "500g" }, { "name": "Garlic Clove", "measure": "4 sliced" }, { "name": "Thai Green Curry Paste", "measure": "280g" }, { "name": "Coconut Milk", "measure": "400ml" }, { "name": "Chicken Stock", "measure": "2 Litres" }, { "name": "Lime Leaves", "measure": "5" }, { "name": "Fish Sauce", "measure": "2 tblsp" }, { "name": "Spring Onions", "measure": "1 bunch" }, { "name": "Green Beans", "measure": "280g" }, { "name": "Bamboo Shoot", "measure": "150g" }, { "name": "Lime", "measure": "Juice of 2" }, { "name": "Basil", "measure": "Bunch" } ], "strCategory": "Chicken", "strMealThumb": "https://www.themealdb.com/images/media/meals/7kb44y1763589084.jpg", "strInstructions": "step 1\r\nHeat the oil in your largest pan, add the onion and fry for 3 mins to soften. Add the chicken and garlic, and cook until the chicken changes colour.\r\n\r\nstep 2\r\nAdd the curry paste, coconut milk, stock, lime leaves and fish sauce, then simmer for 12 mins. Add the chopped onion tops, green beans and bamboo shoots and cook for 4-6 mins, until the beans are just tender.\r\n\r\nstep 3\r\nMeanwhile, put the lime juice and basil in a narrow jug and blitz with a hand blender to make a smooth green paste. Pour into the soup with the sliced spring onion and heat through. Serve with lime wedges for a light lunch or supper or as a make-ahead starter." }, { "idMeal": "53204", "strArea": "Thai", "strMeal": "Red curry chicken kebabs", "strTags": null, "strSource": "https://www.bbcgoodfood.com/recipes/red-curry-chicken-kebabs", "strYoutube": "https://www.youtube.com/watch?v=XJscdFRT8_8", "ingredients": [ { "name": "Chicken Breasts", "measure": "2" }, { "name": "Thai Red Curry Paste", "measure": "2 tblsp" }, { "name": "Coconut Milk", "measure": "2 tblsp" }, { "name": "Red Pepper", "measure": "1 chopped" }, { "name": "Courgettes", "measure": "1 chopped" }, { "name": "Red Onions", "measure": "1 cut thin wedges" }, { "name": "Lime", "measure": "To serve" } ], "strCategory": "Chicken", "strMealThumb": "https://www.themealdb.com/images/media/meals/prjve31763486864.jpg", "strInstructions": "step 1\r\nFire up the barbecue or heat a griddle pan to high. Tip chicken, curry paste and coconut milk into a bowl, then mix well until the chicken is evenly coated. Thread vegetables and chicken onto skewers. Cook the skewers on the barbecue or griddle for 5-8 mins, turning every so often, until the chicken is cooked through and charred. Serve with herby rice, salad and a lime half to squeeze over." } ] } ``` --- ### Lookup Look up a meal by its ID. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/food:themealdb/lookup` - **Cache TTL:** 300s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `mealId` | string | query | yes | Meal numeric id | **cURL:** ```bash curl "https://api.zpi.web.id/v1/food:themealdb/lookup?mealId=52772" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/food:themealdb/lookup?mealId=52772", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/food:themealdb/lookup?mealId=52772", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "ok": true, "meal": { "idMeal": "52772", "strArea": "Japanese", "strMeal": "Teriyaki Chicken Casserole", "strTags": "Meat,Casserole", "strSource": null, "strYoutube": "https://www.youtube.com/watch?v=4aZr5hZXP_s", "ingredients": [ { "name": "soy sauce", "measure": "3/4 cup" }, { "name": "water", "measure": "1/2 cup" }, { "name": "brown sugar", "measure": "1/4 cup" }, { "name": "ground ginger", "measure": "1/2 teaspoon" }, { "name": "minced garlic", "measure": "1/2 teaspoon" }, { "name": "cornstarch", "measure": "4 Tablespoons" }, { "name": "chicken breasts", "measure": "2" }, { "name": "stir-fry vegetables", "measure": "1 (12 oz.)" }, { "name": "brown rice", "measure": "3 cups" } ], "strCategory": "Chicken", "strMealThumb": "https://www.themealdb.com/images/media/meals/wvpsxx1468256321.jpg", "strInstructions": "Preheat oven to 350° F. Spray a 9x13-inch baking pan with non-stick spray.\r\nCombine soy sauce, ½ cup water, brown sugar, ginger and garlic in a small saucepan and cover. Bring to a boil over medium heat. Remove lid and cook for one minute once boiling.\r\nMeanwhile, stir together the corn starch and 2 tablespoons of water in a separate dish until smooth. Once sauce is boiling, add mixture to the saucepan and stir to combine. Cook until the sauce starts to thicken then remove from heat.\r\nPlace the chicken breasts in the prepared pan. Pour one cup of the sauce over top of chicken. Place chicken in oven and bake 35 minutes or until cooked through. Remove from oven and shred chicken in the dish using two forks.\r\n*Meanwhile, steam or cook the vegetables according to package directions.\r\nAdd the cooked vegetables and rice to the casserole dish with the chicken. Add most of the remaining sauce, reserving a bit to drizzle over the top when serving. Gently toss everything together in the casserole dish until combined. Return to oven and cook 15 minutes. Remove from oven and let stand 5 minutes before serving. Drizzle each serving with remaining sauce. Enjoy!" } } ``` --- ## Zomato **Category:** food · **Slug:** `zomato` **Detail page:** https://zpi.web.id/api/food/zomato Data restoran Zomato: pencarian per kota/cuisine, detail restoran, menu, dan ulasan. Catatan: Zomato tidak beroperasi di Indonesia — gunakan kota pasar aktif (mis. bangalore, dubai). **Tags:** zomato, food, restoran, kuliner, review, menu ### Menu Daftar menu/dish restoran Zomato dari path hasil pencarian. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/food:zomato/menu` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `path` | string | query | yes | Restaurant path or full URL from a search result (the `url` field) | **cURL:** ```bash curl "https://api.zpi.web.id/v1/food:zomato/menu?path=%2Fbangalore%2Fyazu-pan-asian-supper-club-ashok-nagar-bangalore%2Forder" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/food:zomato/menu?path=%2Fbangalore%2Fyazu-pan-asian-supper-club-ashok-nagar-bangalore%2Forder", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/food:zomato/menu?path=%2Fbangalore%2Fyazu-pan-asian-supper-club-ashok-nagar-bangalore%2Forder", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "note": "Dish prices are not publicly available for this restaurant; only dish names, descriptions and images are returned.", "path": "/bangalore/yazu-pan-asian-supper-club-ashok-nagar-bangalore/order", "source": "zomato.com", "dishCount": 137, "categories": [ { "name": "Sushi", "subCategories": [ { "name": "Veg Sushi", "items": [ { "id": "ctl_792270206", "desc": "(4 pcs / 8 pcs) (Spicy) A vegetable roll with avocado, spicy mayo, sesame and miso dressing. (Contains dairy, soy, sesame)", "name": "Autumn Sushi Roll", "image": "https://b.zmtcdn.com/data/dish_photos/92f/346de4d0346b03b44019e548461ac92f.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270207", "desc": "(4 pcs / 8 pcs) Avocado roll topped with truffle mayo and crispy tanuki. (Contains sesame, dairy) [GF] [Protein: 0.65 gms per Piece]", "name": "Avocado Sensei Sushi Roll", "image": "https://b.zmtcdn.com/data/dish_photos/761/f4872d690eb5c5579e6b024fc511f761.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270208", "desc": "(4 pcs / 8 pcs) Avocado and cucumber roll with cream cheese and crispy tanuki. (Contains dairy, gluten) [Protein: 0.70 gms per Piece]", "name": "Crispy Avocado & Cucumber Sushi Roll", "image": "https://b.zmtcdn.com/data/dish_photos/f75/b82700e2c34eca101784b7d4b4d80f75.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270209", "desc": "(4 pcs / 8 pcs) Tempura asparagus roll with a light crispy finish. (Contains gluten, dairy, sesame) [Protein: 0.8 gms per Piece]", "name": "Crispy Black Rice Asparagus Sushi Roll", "image": "https://b.zmtcdn.com/data/dish_photos/76f/a3e4f05a64f0441192adb30bd9ea876f.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270210", "desc": "(4 pcs / 8 pcs) Tempura asparagus roll with a light crispy finish. (Contains gluten,dairy, sesame) [Protein: 0.8 gms per Piece]", "name": "Crispy White Rice Asparagus Sushi Roll", "image": "https://b.zmtcdn.com/data/dish_photos/206/ba54f5c377551afe287e2b8e3a382206.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270211", "desc": "(4 pcs / 8 pcs) Charred bell pepper roll finished with miso glaze and yuzu kosho. (Contains soy, dairy)", "name": "Miso Charred Bell Pepper Sushi Roll", "image": "https://b.zmtcdn.com/data/dish_photos/5eb/22e630e5406250362155644d74f015eb.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270212", "desc": "(4 pcs / 8 pcs) Avocado and cream cheese uramaki sushi roll coated with crispy furikake. (Contains dairy, gluten, sesame)", "name": "Spicy Furikake Sushi Roll", "image": "https://b.zmtcdn.com/data/dish_photos/928/32fc62509b3ba904949fb4aa11b06928.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270213", "desc": "(4 pcs / 8 pcs) A classic roll with avocado, cucumber, inari, and cream cheese. (Contains dairy) [GF] [Protein: 0.80 gms per Piece]", "name": "Veg Classic California Sushi Roll", "image": "https://b.zmtcdn.com/data/dish_photos/842/46f09d88549488a6d466971e820e0842.jpeg", "dietarySlugs": [ "veg" ] } ] }, { "name": "Non-veg Sushi", "items": [ { "id": "ctl_792270217", "desc": "(4 pcs / 8 pcs) Classic roll with crab stick, avocado, and tobiko. (Contains dairy, shellfish, fish) [Protein: 1.3 gms per Piece]", "name": "Non-veg Classic California Sushi Roll", "image": "https://b.zmtcdn.com/data/dish_photos/b60/3e0f061b1ff63d88fede8cb2e5059b60.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270218", "desc": "(4 pcs / 8 pcs) Salmon and cream cheese roll with avocado served with wasabi, gari and soy sauce. (Contains dairy, fish)", "name": "Philadelphia Sushi Roll", "image": "https://b.zmtcdn.com/data/dish_photos/769/ed52bedd4e153e901e32480ab85d3769.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270219", "desc": "(4 pcs / 8 pcs) Crispy prawn tempura roll with avocado and togarashi sauce, (Contains dairy, gluten, shellfish) [Protein: 1.28 gms per Piece]", "name": "Prawn Tempura Sushi Roll", "image": "https://b.zmtcdn.com/data/dish_photos/936/cd7ca60775cc1fba1147eff16b41e936.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270220", "desc": "(4 pcs / 8 pcs) Uramaki style lobster tempura roll topped with avocado and black tobiko. (Contains gluten, shellfish, fish) [Protein: 1.1 gms per Piece]", "name": "Yazu Signature Lobster Sushi Roll", "image": "https://b.zmtcdn.com/data/dish_photos/ec1/cdc0f0b09a6268949b545a4f4cbc2ec1.jpeg", "dietarySlugs": [ "non-veg" ] } ] } ] }, { "name": "Dim Sum & Bao", "subCategories": [ { "name": "Veg Dim Sum", "items": [ { "id": "ctl_792270221", "desc": "(4 pcs / 6 pcs) Pine nut and vegetable filling in a kiwi crystal skin. (Contains gluten) [Protein: 0.6 gms per Piece]", "name": "Peruvian Kiwi & Pine Nut Dim Sum", "image": "https://b.zmtcdn.com/data/dish_photos/59b/1d299537326b1e937768ec2e5a4c359b.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270222", "desc": "(4 pcs / 6 pcs) Quinoa and vegetables with lemongrass and kaffir lime. (Contains gluten) [Protein: 1.63 gms per Piece]", "name": "Thai Herb Quinoa Dim Sum", "image": "https://b.zmtcdn.com/data/dish_photos/37e/2da54872afbbbacbf6d2c8f46100237e.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270223", "desc": "(4 pcs / 6 pcs) Cream cheese dumpling with garlic and truffle. (Contains dairy, gluten) [Protein: 3.9 gms per Piece]", "name": "Truffle Cream Cheese Dim Sum", "image": "https://b.zmtcdn.com/data/dish_photos/1c9/30b2bfdbfdec4c8bb2e2c4d51136b1c9.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270224", "desc": "(4 pcs / 6 pcs) Creamy edamame dumpling with a hint of truffle. (Contains soy, gluten) [Protein: 2.1 gms per Piece]", "name": "Truffle Edamame Dim Sum", "image": "https://b.zmtcdn.com/data/dish_photos/304/7705d52eca1886374f28806a0bd83304.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270225", "desc": "(4 pcs / 6 pcs) Wild mushroom dumpling finished with truffle oil. (Contains gluten, dairy, soy) [Protein: 1.8 gms per Piece]", "name": "Truffle Mushroom Dim Sum", "image": "https://b.zmtcdn.com/data/dish_photos/f4c/b41b8bef97aea473ef375521190edf4c.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270226", "desc": "(4 pcs / 6 pcs) Delicate dumpling with water chestnut and vegetables. [GF] [Protein: 0.7 gms per Piece]", "name": "Veg Crystal Dim Sum", "image": "https://b.zmtcdn.com/data/dish_photos/df5/2e414c6a96e33cc94acf198f7ab32df5.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270227", "desc": "[7 pcs] Yazu Vegetarian Experience Dim Sum Basket. [Contains gluten]", "name": "Veg Dim Sum Experience", "dietarySlugs": [ "veg" ] } ] }, { "name": "Non-veg Dim Sum", "items": [ { "id": "ctl_792270228", "desc": "(4 pcs / 6 pcs) Marinated chicken with fresh cilantro. (Contains gluten) [Protein: 2.45 gms per Piece]", "name": "Chicken Cilantro Dim Sum", "image": "https://b.zmtcdn.com/data/dish_photos/549/76d729c1c9862ab6315524ef1284d549.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270229", "desc": "(4 pcs / 6 pcs) (Spicy) Chicken wontons in spicy soy chilli oil. (Contains gluten, soy, sesame, nuts) [Protein: 3.3 gms per Piece]", "name": "Chicken Wonton In Soy Chilli Oil", "image": "https://b.zmtcdn.com/data/dish_photos/244/8bf599824fb831c6676c160bee330244.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270230", "desc": "(4 pcs / 6 pcs) Open faced lamb dumpling in Hong Kong style. (Contains gluten)", "name": "Lamb Shumai Dim Sum", "image": "https://b.zmtcdn.com/data/dish_photos/6a3/c11ad071ff84e35d4d8f7807461ed6a3.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270231", "desc": "[7 pcs] Yazu Non-Vegetarian Experience Dim Sum Basket. [Contains gluten]", "name": "Non-veg Dim Sum Experience", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270232", "desc": "(4 pcs / 6 pcs) Prawn dumpling with bamboo shoots. (Contains gluten) [Protein: 2.7 gms per Piece]", "name": "Prawn Hargow Dim Sum", "image": "https://b.zmtcdn.com/data/dish_photos/e3b/297ffdef7fe4519014d6434a36df6e3b.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270233", "desc": "(4 pcs / 6 pcs) Spicy prawn dumpling with XO sauce. (Contains shellfish)", "name": "Prawn XO Dim Sum", "image": "https://b.zmtcdn.com/data/dish_photos/7a8/01ca09abc278cfee7b86227f5f8c57a8.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270234", "desc": "(4 pcs / 6 pcs) (Spicy) Chicken dumpling with spicy siracha. (Contains gluten) [Protein: 2.6 gms per Piece]", "name": "Sriracha Chicken Dim Sum", "image": "https://b.zmtcdn.com/data/dish_photos/512/e61cfad2519d7177483ef38854ee0512.jpeg", "dietarySlugs": [ "non-veg" ] } ] }, { "name": "Veg Bao", "items": [ { "id": "ctl_792270235", "desc": "Soft bao filled with pan fried wild mushrooms. (Contains gluten) [Protein: 11.1 gms per Portion]", "name": "Pan Fried Mushroom Bao", "image": "https://b.zmtcdn.com/data/dish_photos/a0b/0fa6f40bab13a09db96178fa02af9a0b.jpeg", "dietarySlugs": [ "veg" ] } ] }, { "name": "Non-veg Bao", "items": [ { "id": "ctl_792270236", "desc": "(Spicy) Soft bao with spicy chicken and scallions. (Contains gluten) [Protein: 10.1 gms per Portion]", "name": "Spicy Chicken Bao", "image": "https://b.zmtcdn.com/data/dish_photos/61b/6454e7a21ef8f93b52a33d7c3f85c61b.jpeg", "dietarySlugs": [ "non-veg" ] } ] } ] }, { "name": "Asian Small Plates", "subCategories": [ { "name": "Veg Asian Small Plates", "items": [ { "id": "ctl_792270237", "desc": "(325 gms) (Spicy) Shiitake mushrooms and bok choy in oyster and chilli garlic sauce. (Contains soy) [Protein: 6.9 gms per Portion]", "name": "Cantonese Shiitake & Bokchoy", "image": "https://b.zmtcdn.com/data/dish_photos/63c/d5bd831ef1d1c445e2a22371509e963c.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270238", "desc": "[Spicy] Crispy paneer tossed with curry leaves and bird’s eye chilli. [Contains dairy] [GF]", "name": "Crispy Chilli Paneer", "image": "https://b.zmtcdn.com/data/dish_photos/bf4/5681b68e44e79adb10aa1aa791424bf4.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270239", "desc": "(305 gms) (Spicy) Korean sticky rice cakes in a spicy gochujang sauce. (Contains sesame) [Protein: 8.2 gms per Portion]", "name": "Korean Tteokbokki", "image": "https://b.zmtcdn.com/data/dish_photos/46b/a94276b92ddc5a0b8c6898c57e14546b.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270240", "desc": "(400 gms) Baby potatoes tossed in a bold Kung Pao sauce. (Contains soy,gluten,sesame) [Protein: 9.9 gms per Portion]", "name": "Kung Pao Baby Potatoes", "image": "https://b.zmtcdn.com/data/dish_photos/ef8/1695234f270dfc0217451c0cd10c1ef8.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270241", "desc": "(Spicy) Steamed edamame pods tossed in a spicy Japanese sauce. (Contains soy, sesame) [Protein: 13 gms per Portion]", "name": "Spicy Edamame", "image": "https://b.zmtcdn.com/data/dish_photos/888/ae0c40df1276c749a5dc4a89849cc888.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270242", "desc": "(250 gms) (Spicy) Lotus root slices tossed in a sweet and spicy sauce. (Contains sesame) [GF] [Protein: 4.3 gms per Portion]", "name": "Spicy Lotus Root", "image": "https://b.zmtcdn.com/data/dish_photos/07b/9d921e9115916d6dc32df9c158def07b.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270243", "desc": "(350 gms) (Spicy) Mock meat tossed in a bold black pepper sauce. (Contains soy, gluten, sesame) [Protein: 36.3 gms per Portion]", "name": "Spicy Mock Meat", "image": "https://b.zmtcdn.com/data/dish_photos/dc2/5194cb8ccdc71fe11f9e172d9f1dedc2.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270244", "desc": "Fresh edamame pods lightly steamed and seasoned. [Protein: 35.7 gms per Portion]", "name": "Steamed Edamame", "image": "https://b.zmtcdn.com/data/dish_photos/939/c492738e9963d803bf66b77f2644f939.jpeg", "dietarySlugs": [ "veg" ] } ] }, { "name": "Non-veg Asian Small Plates", "items": [ { "id": "ctl_792270247", "desc": "(290 gms) Crispy fish tossed in your choice of sauce. (Contains fish, soy, sesame) [GF] [Protein: 39.3 gms per Portion]", "name": "Crispy Fish", "image": "https://b.zmtcdn.com/data/dish_photos/ff6/255dbfe92041d80034075c4ed5439ff6.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270248", "desc": "(300 gms) (Spicy) Chicken with peanuts and dry chillies in a Sichuan peppercorn sauce. (Contains nuts, gluten, sesame) [Protein: 55.7 gms per Portion]", "name": "Sichuan Peppercorn Chicken", "image": "https://b.zmtcdn.com/data/dish_photos/b0f/fed517f4f7785ff6371c8e51f8f6bb0f.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270249", "desc": "(250 gms) Chicken Stir-fried in a savoury sauce. [GF] [Protein: 57.7 gms per Portion]", "name": "Stir-fried Chicken", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270250", "desc": "(250 gms) (Spicy) Crispy chicken tossed with cashews in a sweet and spicy sauce. (Contains nuts, soy) [Protein: 40.8 gms per Portion]", "name": "Yazu Signature Chicken", "image": "https://b.zmtcdn.com/data/dish_photos/f8d/89de29bbcdf37e4f061594d00b50cf8d.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270251", "desc": "(290 gms) (Spicy) Crispy prawns tossed in a bold sichuan garlic sauce. (Contains soy, shellfish, gluten, sesame) [Protein: 42.3 gms per Portion]", "name": "Yazu Signature Sichuan Garlic Prawn", "image": "https://b.zmtcdn.com/data/dish_photos/dc3/f571f91a0b30bdd313f396dc20a3fdc3.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270252", "desc": "(300 gms) Slow braised lamb Stir-fried with celery and chillies. (Contains soy, sesame) [Protein: 39.4 gms per Portion]", "name": "Yazu Signature Spicy Lamb", "image": "https://b.zmtcdn.com/data/dish_photos/fc0/537171033666708f0336cdddeec48fc0.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270253", "desc": "(300 gms) (Spicy) Lamb tossed in a bold black pepper sauce. (Contains soy, sesame) [Protein: 33.4 gms per Portion]", "name": "Yazu Style Black Pepper Sauce Lamb", "image": "https://b.zmtcdn.com/data/dish_photos/4fc/23ae6c2560200a3ff923cd3db8f6d4fc.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270254", "desc": "(300 gms) (Spicy) Tenderloin tossed in a bold black pepper sauce. (Contains soy, sesame) [Protein: 43.4 gms per Portion]", "name": "Yazu Style Black Pepper Sauce Tenderloin", "image": "https://b.zmtcdn.com/data/dish_photos/4fc/23ae6c2560200a3ff923cd3db8f6d4fc.jpeg", "dietarySlugs": [ "non-veg" ] } ] } ] }, { "name": "Rice & Noodles", "subCategories": [ { "name": "Veg Noodles", "items": [ { "id": "ctl_792270256", "desc": "(400 gms) Charcoal noodles tossed with vegetables in a savoury house sauce. (Contains sesame) (Vegan) [Protein: 9.9 gms per Portion]", "name": "Veg Charcoal Noodles", "image": "https://b.zmtcdn.com/data/dish_photos/af7/1fd60c07b414585dd5ad7d365503daf7.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270257", "desc": "(400 gms) Stir-fried noodles with vegetables in a light soy based sauce. (Contains soy, gluten) [Protein: 9.9 gms per Portion]", "name": "Veg Hakka Noodles", "image": "https://b.zmtcdn.com/data/dish_photos/d73/f351ab25640c5d57540167012e02ed73.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270258", "desc": "Flat rice noodles Stir-fried with tofu and vegetables. [Contains soy, gluten] [Vegan]", "name": "Veg Hoofan Noodles Tofu", "image": "https://b.zmtcdn.com/data/dish_photos/417/8c9b05f62a6aed533603c0515cd77417.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270259", "desc": "(400 gms) Thai style rice noodles with vegetables in a tangy tamarind sauce. (Contains nuts) [GF] (Vegan) [Protein: 9.7 gms per Portion]", "name": "Veg Phad Thai Noodles", "image": "https://b.zmtcdn.com/data/dish_photos/a81/7421e7de6ef79cfeb2f101e6491e0a81.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270260", "desc": "(450 gms) (Spicy) Korean style ramen noodles in a spicy broth. (Contains soy, gluten, sesame) (Vegan) [Protein: 28 gms per Portion]", "name": "Veg Spicy Korean Ramyun Noodles", "image": "https://b.zmtcdn.com/data/dish_photos/41f/c5203437a2c16936a5fd9e0fe6e3e41f.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270261", "desc": "(400 gms) Udon noodles tossed with vegetables and a hint of truffle. (Contains soy, gluten, sesame, mushroom) [Protein: 4.8 gms per Portion]", "name": "Veg Truffle Udon Noodles", "image": "https://b.zmtcdn.com/data/dish_photos/fe0/b2a6ef9ac8287c696261e4f91f3cdfe0.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270262", "desc": "(400 gms) Thick udon noodles Stir-fried with vegetables in a savoury sauce. (Contains soy, gluten, sesame) [Protein: 4.8 gms per Portion]", "name": "Veg Yaki Udon Noodles", "image": "https://b.zmtcdn.com/data/dish_photos/0b3/740099087b8cc437cbd3244f5970e0b3.jpeg", "dietarySlugs": [ "veg" ] } ] }, { "name": "Non-veg Noodles", "items": [ { "id": "ctl_792270265", "desc": "Flat rice noodles Stir-fried with tofu and vegetables with choice of meat. [Contains soy, gluten]", "name": "Non-veg Hoofan Noodles Tofu", "image": "https://b.zmtcdn.com/data/dish_photos/417/8c9b05f62a6aed533603c0515cd77417.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270266", "desc": "(400 gms) Thai style rice noodles with vegetables in a tangy tamarind sauce with choice of meat. (Contains nuts, sesame, egg) [GF] [Protein: Chicken 49 gms / Prawns 45 gms per Portion]", "name": "Non-veg Phad Thai Noodles", "image": "https://b.zmtcdn.com/data/dish_photos/6c6/dd4aa60d95309ea391b4e381d4fc86c6.jpeg", "dietarySlugs": [ "non-veg" ] } ] }, { "name": "Veg Rice", "items": [ { "id": "ctl_792270270", "desc": "(300 gms) Fragrant Steamed Jasmine Rice [GF] [Protein: 7.2 gms per Portion]", "name": "Steamed Jasmine Rice", "image": "https://b.zmtcdn.com/data/dish_photos/411/397cd941379d1f43989625d920241411.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270271", "desc": "(450 gms) Wok tossed rice with crispy burnt garlic. (Contains soy, gluten, dairy) [Protein: 10 gms per Portion]", "name": "Veg Burnt Garlic Fried Rice", "image": "https://b.zmtcdn.com/data/dish_photos/61e/f3f43096d12668994ab2d8828271a61e.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270272", "desc": "(450 gms) Japanese style sticky rice with wild mushrooms and your choice of protein. (Contains soy, gluten, mushroom) [Protein: 7 gms per Portion]", "name": "Veg Hibachi Fried Rice", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270273", "desc": "(450 gms) Thai style fried rice with basil and chilli. (Contains soy) [Protein: 19 gms per Portion]", "name": "Veg Khao Pad Bai Kaprow Rice", "image": "https://b.zmtcdn.com/data/dish_photos/8e0/c4ae3283ed1c0644114f6d6390c808e0.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270274", "desc": "(450 gms) Fragrant rice with edamame and a hint of truffle. (Contains soy, mushroom, dairy) [Protein: 19.7 gms per Portion]", "name": "Veg Signature Truffle Edamame Rice", "image": "https://b.zmtcdn.com/data/dish_photos/8f7/1b8985c9c7b139de3b0549572e3878f7.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270275", "desc": "(450 gms) Spicy fried rice tossed with fermented kimchi and aromatic seasonings. (Contains soy, shellfish, dairy) [Protein: 19 gms per Portion]", "name": "Veg Spicy Kimchi Fried Rice", "image": "https://b.zmtcdn.com/data/dish_photos/c9b/48ce28d1990f60c9b147da3463d13c9b.jpeg", "dietarySlugs": [ "non-veg" ] } ] }, { "name": "Non-veg Rice", "items": [ { "id": "ctl_792270281", "desc": "(450 gms) Wok tossed fried rice with crispy pork belly and savoury seasonings. (Contains soy, gluten) [Protein: 23.25 gms per Portion]", "name": "Signature Pork Belly Fried Rice", "image": "https://b.zmtcdn.com/data/dish_photos/009/cf3184000f05aaf6fafef994630bd009.jpeg", "dietarySlugs": [ "non-veg" ] } ] } ] }, { "name": "Asian Mains", "subCategories": [ { "name": "Veg Asian Mains", "items": [ { "id": "ctl_792270282", "desc": "(450 gms) (Spicy) Assorted greens tossed in a light garlic sauce. [GF] (Vegan) [Protein: 5.2 gms per Portion]", "name": "Cantonese Stir-fried Greens", "image": "https://b.zmtcdn.com/data/dish_photos/18e/d9221449d8801ec4cd98f0d31380718e.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270283", "desc": "(350 gms) Paneer cooked in a rich chilli bean sauce. (Contains soy, dairy) [Protein: 33.5 gms per Portion]", "name": "Chilli Bean Paneer Clay Pot", "image": "https://b.zmtcdn.com/data/dish_photos/7d7/7424c7fb642c72262a87cd732d20a7d7.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270284", "desc": "(350 gms) (Spicy) Exotic vegetables tossed in a bold mountain chilli sauce. [GF] (Vegan) [Protein: 3.4 gms per Portion]", "name": "Exotic Veg In Mountain Chilli Sauce", "image": "https://b.zmtcdn.com/data/dish_photos/2d1/e9008568b56268e2b745be8b8755c2d1.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270285", "desc": "(450 gms) Exotic vegetables in a creamy pumpkin sauce. (Contains dairy) [GF] [Protein: 5.2 gms per Portion]", "name": "Exotic Vegetables In Pumpkin Sauce", "image": "https://b.zmtcdn.com/data/dish_photos/b82/eed0acf5285d588adf90b3ac7b8fcb82.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270286", "desc": "[Spicy] Korean stew with kimchi and tofu in a spicy, tangy broth. [Contains soy, shellfish] [Vegan]", "name": "Korean Spicy Stew - Kimchi Jjigae", "image": "https://b.zmtcdn.com/data/dish_photos/10e/c8266572ca4d9397eedd5e864e39c10e.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270287", "desc": "[Spicy] Crispy fried turnip Spheres with mild spicy Malay sauce. [Contains dairy, gluten]", "name": "Malay Spiced Turnip Spheres", "image": "https://b.zmtcdn.com/data/dish_photos/ad4/f87ba3638f9702260a44ac604ba36ad4.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270288", "desc": "(450 gms) (Spicy) Silken tofu and vegetables in a spicy Sichuan chilli bean sauce. (Contains soy) (Vegan) [Protein: 9.3 gms per Portion]", "name": "Mapo Tofu", "image": "https://b.zmtcdn.com/data/dish_photos/e13/43bfab34bd0694f5cf8cc658cf1f0e13.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270289", "desc": "(350 gms) (Spicy) Mock duck (Plant-based wheat protein) and tofu in a chilli soy sauce with basil. (Contains soy) (Vegan) [Protein: 3.7 gms per Portion]", "name": "Mock Duck & Tofu Clay Pot", "image": "https://b.zmtcdn.com/data/dish_photos/087/735508e122b82d338da03828ef1e6087.jpeg", "dietarySlugs": [ "veg" ] } ] }, { "name": "Non-veg Asian Mains", "items": [ { "id": "ctl_792270293", "desc": "(350 gms) Chicken and mushrooms tossed in a bold Lao Gan Ma black bean sauce. (Contains soy, gluten) [Protein: 5 gms per Portion]", "name": "Chicken Lao Gan Ma", "image": "https://b.zmtcdn.com/data/dish_photos/20a/46bc38ddcfb80c703a843ddd0ccd420a.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270294", "desc": "(350 gms) Slow cooked chicken in a bold chilli bean sauce. (Contains soy, gluten) [Protein: 5 gms per Portion]", "name": "Chilli Bean Chicken Clay Pot", "image": "https://b.zmtcdn.com/data/dish_photos/7d7/7424c7fb642c72262a87cd732d20a7d7.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270295", "desc": "[Spicy] Silken tofu and minced pork in a spicy Sichuan chilli bean sauce. [Contains soy]", "name": "Classic Pork Mapo Tofu", "image": "https://b.zmtcdn.com/data/dish_photos/409/784178787c857e6a890319e7b8df3409.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270296", "desc": "[Spicy] Wok tossed salmon in a spicy Thai basil sauce. [Contains soy, fish, shellfish]", "name": "Fish In Chilli Basil Sauce", "image": "https://b.zmtcdn.com/data/dish_photos/68a/a34f537bf2cc36a38e4650b0edbd368a.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270297", "desc": "(350 gms) (Spicy) Minced chicken tossed with spicy Thai basil. (Contains soy, gluten, shellfish) [Protein: 31.3 gms per Portion]", "name": "Gai Pad Krapow", "image": "https://b.zmtcdn.com/data/dish_photos/645/26e735413e5015e9673a81b295957645.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270299", "desc": "[Spicy] Slow cooked lamb and veggies dressed in our home-made black pepper sauce. [Contains soy, gluten]", "name": "Lamb In Black Pepper Sauce", "image": "https://b.zmtcdn.com/data/dish_photos/e9a/4e72cae2c99bfec8379d3417d15bce9a.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270290", "desc": "[Spicy] Sauteed exotic vegetables and choice of protein in a pungent, fiery Mountain chilli sauce. [GF] [Vegan]", "name": "Mountain Chilli Sauce With Choice Of Protein", "image": "https://b.zmtcdn.com/data/dish_photos/2d1/e9008568b56268e2b745be8b8755c2d1.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270300", "desc": "Wok-fried prawns and mushrooms tossed in a rich fermented shellfish sauce for a bold umami flavour. [Contains soy, fish, shellfish]", "name": "Prawns In Spicy Xo Sauce", "image": "https://b.zmtcdn.com/data/dish_photos/096/d9f9748c2e4174256c30b4cedcca6096.jpeg", "dietarySlugs": [ "non-veg" ] } ] } ] }, { "name": "Asian Curries", "subCategories": [ { "name": "Veg Asian Curries", "items": [ { "id": "ctl_792270301", "desc": "(350 gms) Rich umami curry served with Japanese sticky rice. (Contains soy, sesame, gluten, dairy) [Protein: 10 gms per Portion]", "name": "Veg Japanese Katsu Curry", "image": "https://b.zmtcdn.com/data/dish_photos/675/e658a816884556cbd89ec137cef04675.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270302", "desc": "Bold Singaporean curry with aromatic spices. [Vegan]", "name": "Veg Singaporean Style Curry", "image": "https://b.zmtcdn.com/data/dish_photos/9bc/7d48b01602287885bb1a706bfb05d9bc.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270303", "desc": "(350 gms) Traditional Thai Style curry made with aromatic Thai herbs and spices. [GF] (Vegan) [Protein: 10 gms per Portion]", "name": "Veg Thai Green Curry", "image": "https://b.zmtcdn.com/data/dish_photos/a6a/b1ff75564ac5c304324d373820703a6a.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270304", "desc": "(350 gms) Traditional Thai Style curry made with aromatic Thai herbs and spices. [GF] (Vegan) [Protein: 10 gms per Portion]", "name": "Veg Thai Red Curry", "image": "https://b.zmtcdn.com/data/dish_photos/693/bbbfd8392ff5606a62328515fb745693.jpeg", "dietarySlugs": [ "veg" ] } ] }, { "name": "Non-veg Asian Curries", "items": [ { "id": "ctl_792270305", "desc": "(350 gms) Rich umami curry served with japanese sticky rice with choice of meat. (Contains soy, sesame, gluten, egg) [Protein: Chicken 65 / Prawns 80 gms / Pork 46 gms per Portion]", "name": "Non-veg Japanese Katsu Curry", "image": "https://b.zmtcdn.com/data/dish_photos/675/e658a816884556cbd89ec137cef04675.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270306", "desc": "Bold Singaporean curry with aromatic spices with choice of meat. [Contains egg]", "name": "Non-veg Singaporean Style Curry", "image": "https://b.zmtcdn.com/data/dish_photos/9bc/7d48b01602287885bb1a706bfb05d9bc.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270307", "desc": "(350 gms) Traditional Thai Style curry made with aromatic Thai herbs and spices with choice of meat. [GF] [Protein: Chicken 32 / Prawns 32 gms per Portion]", "name": "Non-veg Thai Green Curry", "image": "https://b.zmtcdn.com/data/dish_photos/a6a/b1ff75564ac5c304324d373820703a6a.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270308", "desc": "(350 gms) Traditional Thai Style curry made with aromatic Thai herbs and spices with choice of meat. [GF] [Protein: Chicken 32 / Prawns 32 gms per Portion]", "name": "Non-veg Thai Red Curry", "image": "https://b.zmtcdn.com/data/dish_photos/693/bbbfd8392ff5606a62328515fb745693.jpeg", "dietarySlugs": [ "non-veg" ] } ] } ] }, { "name": "Poke Bowls", "subCategories": [ { "items": [ { "id": "ctl_792270309", "desc": "Sushi rice bowl with avocado, edamame, and crispy toppings drizzled with sesame oil and teriyaki sauce. (Contains soy, gluten, sesame) [Protein: 12.89 gms per Portion]", "name": "Avocado Poke Bowl", "image": "https://b.zmtcdn.com/data/dish_photos/234/5f4f5ffc1d2274111d38648139628234.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270310", "desc": "Sushi rice bowl with salmon, edamame, and spicy togarashi. [Contains gluten, sesame, fish, soy] [Served with wasabi, gari and soy sauce]", "name": "Spicy Salmon Poke Bowl", "image": "https://b.zmtcdn.com/data/dish_photos/8fd/c851cd60ea396f3276e17d737267d8fd.jpeg", "dietarySlugs": [ "non-veg" ] } ] } ] }, { "name": "Soups", "subCategories": [ { "name": "Veg Soups", "items": [ { "id": "ctl_792270311", "desc": "A spicy and tangy Asian broth with bold comforting flavours. (Contains soy, wine)", "name": "Veg Hot And Sour Soup", "image": "https://b.zmtcdn.com/data/dish_photos/3a5/ce9d0819e7f3d2b8d6565dde31d173a5.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270312", "desc": "A deep aromatic, dark amber reduction infused with pungent ginger, garlic and fierce chilli heat. [Contains soy] [Served with golden fried noodles]", "name": "Veg Manchow Soup", "image": "https://b.zmtcdn.com/data/dish_photos/5a7/441f472dc21a793f8a446288c682b5a7.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270313", "desc": "Light Korean broth with daikon radish, vegetables and Japanese Kabayaki sauce. [Contains soy, gluten]", "name": "Veg Shin Mu-guk (korean Radish Soup)", "image": "https://b.zmtcdn.com/data/dish_photos/ba3/b418053cc3cd2aae59e81a836c7c9ba3.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270314", "desc": "(300 gms) Traditional Tibetan soup with noodle shaped wonton sheets. (Contains gluten) [Protein: 6.9 gms per Portion]", "name": "Veg Thentuk (tibetan Noodle Soup)", "image": "https://b.zmtcdn.com/data/dish_photos/ee0/8ea0e082161a51c9480a6c1a34391ee0.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270315", "desc": "(300 gms) Creamy Thai coconut soup with aromatic spices and vegetables. [GF] [Protein: 6.9 gms per Portion]", "name": "Veg Tom Kha Soup", "image": "https://b.zmtcdn.com/data/dish_photos/b1a/0010f07cf463b6646417f1a683b1fb1a.jpeg", "dietarySlugs": [ "veg" ] }, { "id": "ctl_792270316", "desc": "(300 gms) (Spicy) Thai broth with fresh herbs and vegetables. [GF] [Protein: 2.7 gms per Portion]", "name": "Veg Tom Yum Soup", "image": "https://b.zmtcdn.com/data/dish_photos/272/8c17a193cfbfb6cbb82d93fc808f4272.jpeg", "dietarySlugs": [ "veg" ] } ] }, { "name": "Non-veg Soups", "items": [ { "id": "ctl_792270317", "desc": "A spicy and tangy Asian broth with bold comforting flavours with choice of protein. [Contains soy, wine]", "name": "Non-veg Hot And Sour Soup", "image": "https://b.zmtcdn.com/data/dish_photos/3a5/ce9d0819e7f3d2b8d6565dde31d173a5.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270318", "desc": "A deep aromatic, dark amber reduction infused with pungent ginger, garlic and fierce chilli heat. [Contains soy] [Served with golden fried noodles]", "name": "Non-veg Manchow Soup", "image": "https://b.zmtcdn.com/data/dish_photos/5a7/441f472dc21a793f8a446288c682b5a7.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270319", "desc": "Light Korean broth with daikon radish, vegetables and Japanese Kabayaki sauce. [Contains soy, gluten]", "name": "Non-veg Shin Mu-guk (korean Radish Soup)", "image": "https://b.zmtcdn.com/data/dish_photos/aab/51321a3cf1520c7de19a4bd773d5aaab.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270320", "desc": "A silky reduction of sweet sun-ripened corn cream and tender corn kernels simmered in an aromatically infused veg broth with choice of protein.", "name": "Non-veg Sweet Corn Soup", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270321", "desc": "(300 gms) Traditional Tibetan soup with noodle shaped wonton sheets with choice of meat. (Contains gluten) [Protein: Chicken 4.7 gms / Prawns 3.6 gms per Portion]", "name": "Non-veg Thentuk (tibetan Noodle Soup)", "image": "https://b.zmtcdn.com/data/dish_photos/ee0/8ea0e082161a51c9480a6c1a34391ee0.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270322", "desc": "(300 gms) Creamy Thai coconut soup with aromatic spices and vegetables with choice of meat. (Contains shellfish) [GF] [Protein: Chicken 4.7 gms / Prawns 3.6 gms per Portion]", "name": "Non-veg Tom Kha Soup", "image": "https://b.zmtcdn.com/data/dish_photos/b1a/0010f07cf463b6646417f1a683b1fb1a.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270323", "desc": "(300 gms) (Spicy) Spicy Thai broth with fresh herbs and vegetables with choice of meat. (Conatins shellfish) [GF] [Protein: Chicken 4.7 gms / Prawns 3.6 gms per Portion]", "name": "Non-veg Tom Yum Soup", "image": "https://b.zmtcdn.com/data/dish_photos/272/8c17a193cfbfb6cbb82d93fc808f4272.jpeg", "dietarySlugs": [ "non-veg" ] }, { "id": "ctl_792270324", "desc": "(300 gms) (Spicy) Spicy seafood broth with assorted seafood. (Contains shellfish, fish) [GF] [Protein: 13.3 gms per Portion]", "name": "Seafood Treasure (spicy Seafood Soup)", "image": "https://b.zmtcdn.com/data/dish_photos/db1/072c1e0d3fd500a02fbf32e52cb90db1.jpeg", "dietarySlugs": [ "non-veg" ] } ] } ] } ], "categoryCount": 11 } ``` --- ### Ulasan Ulasan/review restoran Zomato (paginated) dari path hasil pencarian. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/food:zomato/reviews` - **Cache TTL:** 300s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `path` | string | query | yes | Restaurant path or full URL from a search result (the `url` field) | | `page` | number | query | no | Page (default 1, max 100) | **cURL:** ```bash curl "https://api.zpi.web.id/v1/food:zomato/reviews?path=%2Fbangalore%2Fyazu-pan-asian-supper-club-ashok-nagar-bangalore%2Freviews&page=1" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/food:zomato/reviews?path=%2Fbangalore%2Fyazu-pan-asian-supper-club-ashok-nagar-bangalore%2Freviews&page=1", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/food:zomato/reviews?path=%2Fbangalore%2Fyazu-pan-asian-supper-club-ashok-nagar-bangalore%2Freviews&page=1", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "page": 1, "path": "/bangalore/yazu-pan-asian-supper-club-ashok-nagar-bangalore/reviews", "count": 5, "items": [ { "rating": 1, "reviewId": 467654297, "userName": "Rajasekhar", "likeCount": 0, "reviewUrl": "https://www.zoma.to/vymqQKR", "timestamp": "5 days ago", "experience": "dining_order", "photoCount": 0, "ratingText": "Horrible", "ratingType": "DINING", "reviewText": "Taste is average, no Zomato discounts.", "commentCount": 2, "userProfileUrl": "https://www.zomato.com/users/rajasekhar-30335767", "userReviewsCount": 0, "userFollowersCount": 0 }, { "rating": 5, "reviewId": 467023300, "userName": "Shashank Raikar", "likeCount": 0, "reviewUrl": "https://www.zoma.to/MldvXGP", "timestamp": "6 days ago", "experience": "dining_order", "photoCount": 0, "ratingText": "Excellent", "ratingType": "DINING", "reviewText": "food was amazing,", "commentCount": 2, "userProfileUrl": "https://www.zomato.com/users/shashank-raikar-37338722", "userReviewsCount": 0, "userFollowersCount": 1 }, { "rating": 5, "reviewId": 460753601, "userName": "Shibani Muzumdar", "likeCount": 0, "reviewUrl": "https://www.zoma.to/rzRxBxa", "timestamp": "20 days ago", "experience": "dining_order", "photoCount": 0, "ratingText": "Excellent", "ratingType": "DINING", "reviewText": "The ambience, food, drinks, service was awesome. You should define try it.", "commentCount": 1, "userProfileUrl": "https://www.zomato.com/users/shibani-muzumdar-52983938", "userReviewsCount": 0, "userFollowersCount": 4 }, { "rating": 5, "reviewId": 460650103, "userName": "Anvesh Vagiri", "likeCount": 0, "reviewUrl": "https://www.zoma.to/owoBNGa", "timestamp": "20 days ago", "experience": "dining_order", "photoCount": 0, "ratingText": "Excellent", "ratingType": "DINING", "commentCount": 1, "userProfileUrl": "https://www.zomato.com/users/anvesh-vagiri-12509261", "userReviewsCount": 0, "userFollowersCount": 0 }, { "rating": 5, "reviewId": 457748085, "userName": "Varshitha", "likeCount": 0, "reviewUrl": "https://www.zoma.to/ADKXvGP", "timestamp": "27 days ago", "experience": "dining", "photoCount": 0, "ratingText": "Excellent", "ratingType": "DINING", "reviewText": "Loved the food! Everything we got tasted great and the service was top notch by Mr Adam :)", "commentCount": 1, "userProfileUrl": "https://www.zomato.com/users/varshitha-33011897", "userReviewsCount": 0, "userFollowersCount": 24 } ], "source": "zomato.com", "hasMore": true, "nextPage": 2, "totalPages": 11, "totalReviews": 51 } ``` --- ### Cari Restoran Cari restoran Zomato berdasarkan kota dan cuisine/locality. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/food:zomato/search` - **Cache TTL:** 300s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `city` | string | query | yes | City slug (e.g. bangalore, mumbai, dubai, new-delhi) | | `cuisine` | string | query | no | Optional cuisine or locality slug to filter (e.g. chinese, pizza, indiranagar-restaurants) | | `page` | number | query | no | Page (default 1, max 50) | **cURL:** ```bash curl "https://api.zpi.web.id/v1/food:zomato/search?city=bangalore&cuisine=chinese&page=1" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/food:zomato/search?city=bangalore&cuisine=chinese&page=1", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/food:zomato/search?city=bangalore&cuisine=chinese&page=1", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "city": "bangalore", "page": 1, "count": 9, "items": [ { "url": "https://www.zomato.com/bangalore/yazu-pan-asian-supper-club-ashok-nagar-bangalore/info?contextual_menu_params=eyJkaXNoX3NlYXJjaCI6eyJ0aXRsZSI6IkJlc3QgaW4gQ2hpbmVzZSIsImRpc2hfaWRzIjpbXSwiY3Vpc2luZV9pZHMiOlsiMjUiXX19", "name": "Yazu Pan Asian Supper Club", "image": "https://b.zmtcdn.com/data/pictures/6/22311906/133b5347086186c39a26a8840a93b109_o2_featured_v2.jpg", "resId": 22311906, "votes": 266, "rating": 4.4, "timing": "Opens at 7pm", "address": "Marks Square, Shanthala Nagar, St. Marks Road Ashok Nagar, Bangalore", "costText": "₹2,500 for two", "cuisines": [ "Asian", "Chinese", "Sushi", "Thai", "Korean", "Desserts", "Beverages" ], "distance": "738 m", "locality": "Ashok Nagar, Bangalore", "costForTwo": "₹2,500 for two", "isPromoted": true, "ratingText": "Very Good" }, { "url": "https://www.zomato.com/bangalore/cbd-central-bar-district-mg-road-bangalore/info?contextual_menu_params=eyJkaXNoX3NlYXJjaCI6eyJ0aXRsZSI6IkJlc3QgaW4gQ2hpbmVzZSIsImRpc2hfaWRzIjpbXSwiY3Vpc2luZV9pZHMiOlsiMjUiXX19", "name": "CBD- Central Bar District", "image": "https://b.zmtcdn.com/data/pictures/6/21913226/f56b229c33a1b8219a780520f54f04e4_o2_featured_v2.jpg", "resId": 21913226, "votes": 3018, "rating": 4.4, "address": "3, Church St, Shanthala Nagar, MSR, MG Road, Bangalore", "costText": "₹1,200 for two", "cuisines": [ "North Indian", "Chinese", "South Indian", "Fast Food", "Bakery", "Beverages", "Continental", "Desserts" ], "distance": "1.4 km", "locality": "MG Road, Bangalore", "costForTwo": "₹1,200 for two", "isPromoted": true, "ratingText": "Very Good" }, { "url": "https://www.zomato.com/bangalore/cha-hong-kong-eating-house-church-street-bangalore/info?contextual_menu_params=eyJkaXNoX3NlYXJjaCI6eyJ0aXRsZSI6IkJlc3QgaW4gQ2hpbmVzZSIsImRpc2hfaWRzIjpbXSwiY3Vpc2luZV9pZHMiOlsiMjUiXX19", "name": "Cha Hong Kong Eating House", "image": "https://b.zmtcdn.com/data/pictures/3/22243603/35f52ffd753dec3daf66e06b5f815f7c_o2_featured_v2.jpg", "resId": 22243603, "votes": 992, "rating": 4.4, "address": "76-20-50, First Floor, Unit Number F3, F4, F5 and F6, Sobha, Church Street, Bangalore", "costText": "₹2,700 for two", "cuisines": [ "Chinese", "Sushi", "Asian", "Japanese", "Salad", "Desserts" ], "distance": "963 m", "locality": "Church Street, Bangalore", "costForTwo": "₹2,700 for two", "isPromoted": true, "ratingText": "Very Good" }, { "url": "https://www.zomato.com/bangalore/kling-brewery-church-street-bangalore/info?contextual_menu_params=eyJkaXNoX3NlYXJjaCI6eyJ0aXRsZSI6IkJlc3QgaW4gQ2hpbmVzZSIsImRpc2hfaWRzIjpbXSwiY3Vpc2luZV9pZHMiOlsiMjUiXX19", "name": "Kling Brewery", "image": "https://b.zmtcdn.com/data/pictures/9/20996449/6d6142eea331af0e3234936b6bbe5c29_o2_featured_v2.jpg", "resId": 20996449, "votes": 2134, "rating": 4, "address": "27, Ground Floor, Sattva Auro, Shanthala Nagar, Ashok Nagar, Church Street, Bangalore", "costText": "₹2,800 for two", "cuisines": [ "Continental", "European", "Asian", "Chinese", "North Indian", "South Indian", "Seafood" ], "distance": "1.1 km", "locality": "Church Street, Bangalore", "costForTwo": "₹2,800 for two", "isPromoted": true, "ratingText": "Very Good" }, { "url": "https://www.zomato.com/bangalore/just-blr-1-brigade-road-bangalore/info?contextual_menu_params=eyJkaXNoX3NlYXJjaCI6eyJ0aXRsZSI6IkJlc3QgaW4gQ2hpbmVzZSIsImRpc2hfaWRzIjpbXSwiY3Vpc2luZV9pZHMiOlsiMjUiXX19", "name": "Just BLR", "image": "https://b.zmtcdn.com/data/pictures/0/19012590/c814969bec60542b8f634552cd96a53b_o2_featured_v2.jpg", "resId": 19012590, "votes": 11.8, "rating": 4, "address": "185, 1st Floor, Deena Complex, Brigade Road, Bangalore", "costText": "₹2,500 for two", "cuisines": [ "North Indian", "Chinese", "Biryani", "Beverages" ], "distance": "1.4 km", "locality": "Brigade Road, Bangalore", "costForTwo": "₹2,500 for two", "isPromoted": true, "ratingText": "Very Good" }, { "url": "https://www.zomato.com/bangalore/cahoots-brigade-road-bangalore/info?contextual_menu_params=eyJkaXNoX3NlYXJjaCI6eyJ0aXRsZSI6IkJlc3QgaW4gQ2hpbmVzZSIsImRpc2hfaWRzIjpbXSwiY3Vpc2luZV9pZHMiOlsiMjUiXX19", "name": "Cahoots", "image": "https://b.zmtcdn.com/data/pictures/2/21959252/29cea2fef0a43211ce3f7ba0986eb723_o2_featured_v2.jpg", "resId": 21959252, "votes": 1358, "rating": 3.5, "address": "48/2, 48/3, Brigade Garden, Shanthinagara, Brigade Road, Bangalore", "costText": "₹2,000 for two", "cuisines": [ "North Indian", "South Indian", "Chinese", "Pizza", "Biryani", "Tibetan", "Asian", "Desserts" ], "distance": "1.4 km", "locality": "Brigade Road, Bangalore", "costForTwo": "₹2,000 for two", "isPromoted": true, "ratingText": "Good" }, { "url": "https://www.zomato.com/bangalore/mamagoto-indiranagar/info?contextual_menu_params=eyJkaXNoX3NlYXJjaCI6eyJ0aXRsZSI6IkJlc3QgaW4gQ2hpbmVzZSIsImRpc2hfaWRzIjpbXSwiY3Vpc2luZV9pZHMiOlsiMjUiXX19", "name": "Mamagoto", "image": "https://b.zmtcdn.com/data/pictures/8/58698/0f65cae4b6dd3b1778302e5e15395d2c_o2_featured_v2.jpg", "resId": 58698, "votes": 6290, "rating": 4.2, "address": "618, 2nd Floor, HAL 2nd Stage, 12th Main Road, Indiranagar, Bangalore", "costText": "₹3,000 for two", "cuisines": [ "Asian", "Chinese", "Thai", "Japanese" ], "distance": "5.6 km", "locality": "Indiranagar, Bangalore", "costForTwo": "₹3,000 for two", "isPromoted": true, "ratingText": "Very Good" }, { "url": "https://www.zomato.com/bangalore/mikusu-conrad-bengaluru-ulsoor/info?contextual_menu_params=eyJkaXNoX3NlYXJjaCI6eyJ0aXRsZSI6IkJlc3QgaW4gQ2hpbmVzZSIsImRpc2hfaWRzIjpbXSwiY3Vpc2luZV9pZHMiOlsiMjUiXX19", "name": "Mikusu - Conrad Bengaluru", "image": "https://b.zmtcdn.com/data/pictures/7/18630447/3a9a50d6120a1cc6a9ce1e651059252d_o2_featured_v2.jpg", "resId": 18630447, "votes": 421, "rating": 4.5, "timing": "Opens at 7pm", "address": "Kensington Road, Conrad Hotel, Ulsoor, Bangalore", "costText": "₹3,500 for two", "cuisines": [ "Japanese", "Chinese", "Thai" ], "distance": "2.8 km", "locality": "Ulsoor, Bangalore", "costForTwo": "₹3,500 for two", "isPromoted": true, "ratingText": "Excellent" } ], "source": "zomato.com", "cuisine": "chinese", "hasMore": false, "heading": "Chinese Restaurants in Bengaluru", "totalResults": 6854 } ``` --- ### Detail Restoran Detail restoran Zomato (rating, alamat, koordinat, jam buka, highlights) dari path hasil pencarian. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/food:zomato/detail` - **Cache TTL:** 600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `path` | string | query | yes | Restaurant path or full URL from a search result (the `url` field) | **cURL:** ```bash curl "https://api.zpi.web.id/v1/food:zomato/detail?path=%2Fbangalore%2Fyazu-pan-asian-supper-club-ashok-nagar-bangalore%2Finfo" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/food:zomato/detail?path=%2Fbangalore%2Fyazu-pan-asian-supper-club-ashok-nagar-bangalore%2Finfo", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/food:zomato/detail?path=%2Fbangalore%2Fyazu-pan-asian-supper-club-ashok-nagar-bangalore%2Finfo", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "url": "https://www.zomato.com/bangalore/yazu-pan-asian-supper-club-ashok-nagar-bangalore", "city": "Bangalore", "name": "Yazu Pan Asian Supper Club", "resId": 22311906, "votes": 266, "mapUrl": "https://maps.zomato.com/php/staticmap?center=12.9723110000,77.6011510000&maptype=zomato&markers=12.9723110000,77.6011510000,pin_res32&sensor=false&scale=2&zoom=16&language=en&size=240x150&size=400x240", "phones": [ "+917411994448", "+917411199404", "+917411994143" ], "rating": 4.4, "source": "zomato.com", "timing": "Opens at 7pm", "address": "Marks Square, Shanthala Nagar, St. Marks Road Ashok Nagar, Bangalore", "country": "India", "zipcode": "560001", "cuisines": [ "Asian", "Chinese", "Sushi", "Thai", "Korean", "Desserts", "Beverages" ], "latitude": 12.972311, "locality": "Ashok Nagar, Bangalore", "longitude": 77.601151, "thumbnail": "https://b.zmtcdn.com/images/res_avatar_476_320_1x_new.png", "highlights": [ "Lunch", "Dinner", "Delivery", "Takeout Available", "Full bar available", "Stags allowed", "Offers candlelit setting", "Parking available" ], "ratingText": "Very Good", "statusText": "Closed for dining", "isPermClosed": false, "isTempClosed": false, "openingHours": [ { "days": "Mon-Sun", "hours": "12noon – 4pm, 7pm – 1am" } ], "ratingsByType": { "dining": { "label": "DINING", "rating": 4.4, "reviewCount": 266 } }, "isDeliveryOnly": false } ``` ---