SuperAPI AI Directory

swiggy-dineout-booking

Office & productivity

View repository

Updated 10-15 22:13

About this skill

swiggy-dineout-booking
locations → search → details → slots → (cart, paid only) → book → status

Dineout tools take latitude/longitude. Saved locations do not expose coordinates, so the CLI captures them from the search/details response and reuses them for slots, cart and book. Keep the steps in this order and the coordinates take care of themselves.

1. Location, then search

swiggy dineout locations --json --no-interactive                  # "near me / home / office" → pick an id
swiggy dineout search -q italian --address-id <id> --json --no-interactive
swiggy dineout search -q rooftop --lat 12.9352 --lng 77.6245 --json --no-interactive   # named area

One term only (name, cuisine, area, "pub", "rooftop", "buffet"). A dish becomes its cuisine ("dosa" → "South Indian"). Empty results mean nothing matched: say so and offer another term; never present unrelated restaurants as matches.

2. Details (optional) and slots

swiggy dineout details <restaurantId> --json --no-interactive
swiggy dineout slots --restaurant-id <id> --date 2026-09-06 --json --no-interactive   # 7 days from the date

data.slots[] has dateStr, displayTime, reservationTime, slotId, and deals[] with itemId, isFree, bookingPrice. Match the user's date+time against dateStr + displayTime for THAT date; every 15-minute time inside a returned window is bookable. Trust the data — do not tell the user a listed time is unavailable.

3. Confirm, then book

Ask: "Book for guests on at , <free / ₹price deal>?" Wait for yes.

# Free deal (isFree=true): one step
swiggy dineout book --restaurant-id <id> --slot-id <slotId> --item-id <itemId> --reservation-time <reservationTime> --guests <n> --yes --json --no-interactive

# Paid prebook deal (isFree=false): cart first, then book with UPI
swiggy dineout cart --restaurant-id <id> --type DEAL_TICKET_PURCHASE --slot-id <slotId> --item-id <itemId> --reservation-time <reservationTime> --guests <n> --json --no-interactive
swiggy dineout book --restaurant-id <id> --slot-id <slotId> --item-id <itemId> --reservation-time <reservationTime> --guests <n> --cart-key <cartKey> --pay upi --wait --yes --json --no-interactive

Copy slotId, itemId (format restaurantId-ticketId) and reservationTime from the chosen slot exactly; never derive them from the display time. Guests must be 1–20. A paid booking returns PENDING_PAYMENT — that is not a booking yet; follow swiggy-pay (Dineout confirms with orderId + paasId).

4. Status and cancel

swiggy dineout status <orderId> --json --no-interactive          # data.status, data.canCancel
swiggy dineout cancel <orderId> --reason "plan changed" --yes --json --no-interactive

Cancel only when the user clearly asked, and only with an orderId you have (from a booking in this conversation or from the user). cancel_booking is still rolling out; if it returns MCP_ERROR, direct the user to the Swiggy app or 080-67466729.

Never

  • Auto-call details or slots right after a search; let the user pick a restaurant first.
  • Book without the explicit question in step 3.
  • Retry book after an error; run status first — book_table is not idempotent.