get_orders

Swiggy Instamart order history - Use this to fetch ORDER HISTORY, past orders, or order preferences. Use this FIRST when user asks: "show my orders", "get my orders", "my last order", "order history", "past orders", "recent orders", "list my orders", "what did I order before", "my previous orders", "check my past orders", "my order preferences", "get preferences from past orders", "what do I usually order", "my frequent items", "reorder", "order again", "buy the same thing", "what groceries did I buy", "my purchase history", "items I bought before". Returns a list of orders from the last 15 days with basic details including items, status, and delivery address coordinates. Set activeOnly=true when user asks for active/current/ongoing orders: "active orders", "current orders", "ongoing orders", "pending orders", "in-progress orders", "orders on the way", "orders being delivered", "my current deliveries". For REAL-TIME TRACKING of a specific order (where is my order, track my order, ETA, delivery partner location), use the track_order tool instead - it requires orderId and coordinates which can be obtained from this tool. Authentication is handled automatically. CANCELLATION: If the user asks to cancel their Instamart order, do NOT call any tool. Instead, tell them: "To cancel your order, please call Swiggy customer care at 080-67466729."

See get_orders in actionComing soon

Example

const result = await client.callTool({
  name: "get_orders",
  arguments: {
    count: 0,
    orderType: "...",
  },
});

Parameters

ParameterTypeRequiredDescription
countnumbernoNumber of orders to fetch (default: 10, max recommended: 20)
orderTypestringnoOrder type filter (e.g., "DASH", "INSTAMART"). Default: "DASH"
activeOnlybooleannoSet to true to filter only active/ongoing orders. Default: false (returns all orders)

Session credentials (user identity, access token) are supplied automatically by the authenticated MCP session - you do not pass them in the tool call. See Authenticate.

Response

All Swiggy MCP tools return:

{
  "success": true,
  "data": { /* tool-specific payload */ },
  "message": "optional human-readable message"
}

On failure:

{
  "success": false,
  "error": { "message": "description of what went wrong" }
}

See Error codes for the full catalogue.

Output schema

data: {
  orders: Array<{
    orderId: string;
    status: string;
    createdAt: string;
    updatedAt: string;
    estimatedDeliveryTime?: string;
    itemCount: number;
    totalAmount: number;
    deliveryAddress?: { id: string; addressLine: string; phoneNumber: string };
    paymentMethod?: string;
    orderType: string;
    isActive: boolean;
    currentStatus: string;
    statusMessage?: string;
    historyStatus: string;
    storeName?: string;
    items: Array<{ name: string; quantity: number; itemId?: string }>;
    billDetails?: { itemTotal: number; deliveryFee: number; packagingFee: number; grandTotal: number };
    paymentStatus?: string;
    refundStatus?: string;
  }>;
  hasMore: boolean;
}

This schema documents the structured payload returned by get_orders. Optional fields can vary by user state, cart state, and live Swiggy availability.

Schema notes

  • id: stable identifier for a saved Swiggy delivery address. Use the returned ID in cart, checkout, and payment calls instead of reusing the human-readable address text.
  • hasMore: pagination fields. Use them only to fetch or display more results from the same query/list; do not treat page numbers as item IDs.
  • totalAmount / grandTotal: payable/order total fields. Show these as live values and refresh the cart or order state before final placement if anything changes.
  • deliveryFee / packagingFee: component charge fields. Use the final payable total for checkout decisions rather than summing components yourself.
  • status / statusMessage / currentStatus / historyStatus: service state fields. Prefer accompanying messages/terminal flags and refresh status before taking irreversible actions.
  • orderId: order identifier for tracking, support, payment confirmation, and cancellation flows. Preserve formatting exactly as returned.
  • paymentMethod: payment-flow fields for UPI/Cash flows. Payment IDs are used for polling/confirmation; isQrFlow=true means the user is expected to complete payment through a scan-QR path.
  • estimatedDeliveryTime: ETA/tracking fields. Use formatted ETA text when present; timestamp fields can be used to compute countdowns.
  • itemId: Dineout slot/deal fields. Copy identifiers from the exact selected slot/deal; do not derive them from display time or restaurant name.
  • Fields marked optional may be omitted depending on user state, cart/order state, and live Swiggy availability.
  • Use returned identifiers and enum values exactly as provided; do not invent fallback IDs, status values, payment methods, or timestamps.

Details

FieldValue
Nameget_orders
MCP ServerInstamart
EndpointPOST mcp.swiggy.com/im
StageTrack
Behaviourread-only

Next in this journey →

Continue with get_order_details.