get_delivery_status

Swiggy Instamart: Live delivery ETA poller for the order-success widget. Returns absolute ETA epoch, poll cadence, and terminal state flags. Widget-only — use track_order for conversational use.

Swiggy Instamart: Live delivery ETA poller, designed for the Instamart order-success widget. Called by the widget on a fixed cadence with orderId + addressId. Returns an absolute ETA epoch (deliveryBy), server timestamp (serverNow), and terminal state flags (delivered, cancelled) so the widget knows when to stop polling.

Widget-only tool. This tool is intended for widget/UI polling loops. For conversational delivery tracking, use track_order instead.

Eligibility gate: Gated by the IM_LIVE_ETA feature flag and the MCP UPI whitelist. For ineligible users the tool returns success: true with data.disabled: true — the widget should stop polling.

See get_delivery_status in actionComing soon

Example

const result = await client.callTool({
  name: "get_delivery_status",
  arguments: {
    orderId: "ord_01HXYZ",
    addressId: "addr_01HXYZ",
  },
});

Parameters

ParameterTypeRequiredDescription
orderIdstringyesOrder ID to track (from checkout response).
addressIdstringyesAddress ID — used internally to resolve delivery coordinates.

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

{
  "success": true,
  "data": {
    "orderId": "string",
    "deliveryBy": 1234567890000,
    "serverNow": 1234567890000,
    "pollIntervalSec": 45,
    "etaText": "35-40 mins",
    "cancelled": false,
    "delivered": false,
    "statusText": "Arrived at location",
    "disabled": true
  }
}
  • deliveryBy — absolute epoch ms of the max ETA. null if not parseable from the tracking API.
  • serverNow — server timestamp at call time. Widget uses this to compute a live countdown.
  • pollIntervalSec — cadence (seconds) to use for the next poll call.
  • etaText — raw ETA string from the tracking API (e.g. "35-40 mins").
  • cancelled / delivered — terminal state flags. Widget must stop polling when either is true.
  • statusText — human-readable tracking title (e.g. "On the way", "Almost there…"). Present only during active delivery when no numeric ETA is available.
  • disabled: true — user not eligible (flag off or not whitelisted). Widget should stop polling immediately.

On failure:

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

See Error codes for the full catalogue.

Details

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