{
  "components": {
    "schemas": {
      "SwiggyInstamartCategoryProductsListCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "swiggy-instamart.category.products.list"
            ],
            "type": "string"
          },
          "completed_at": {
            "anyOf": [
              {
                "description": "When the source data was read and the job completed (ISO 8601 UTC). This is the observation time for the returned data, to the job's precision, not a per-item upstream timestamp. Null unless the job completed.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "job_id": {
            "format": "uuid",
            "type": "string"
          },
          "outcome": {
            "description": "Truthful module completion detail; status is complete unless the module reports partial or incomplete output.",
            "type": "object"
          },
          "platform": {
            "enum": [
              "swiggy-instamart"
            ],
            "type": "string"
          },
          "request_id": {
            "format": "uuid",
            "type": "string"
          },
          "results": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "data": {
                  "description": "Raw capability output. Its shape may evolve with the upstream source; the example is illustrative, not a compatibility guarantee.",
                  "example": {
                    "available_filters": {
                      "facets": {
                        "brand": [
                          "Aashirvaad",
                          "10on10foods",
                          "Everyday Protein"
                        ],
                        "rating": [
                          "3+",
                          "4+",
                          "4.5+"
                        ],
                        "type": [
                          "Wheat Atta",
                          "Multigrain Atta",
                          "Healthy Atta"
                        ]
                      },
                      "sorts": [
                        {
                          "key": "relevance",
                          "label": "Relevance"
                        },
                        {
                          "key": "price_low_to_high",
                          "label": "Price (Low To High)"
                        },
                        {
                          "key": "price_high_to_low",
                          "label": "Price (High To Low)"
                        }
                      ]
                    },
                    "next_offset": "ic1.[redacted:token]",
                    "pagination_status": "continuation_available",
                    "products": [
                      {
                        "brand": "Right Shift",
                        "category": "Atta",
                        "discount": "58",
                        "discount_label": "30% OFF",
                        "discount_paise": 5800,
                        "id": "K9Y43VDN2M",
                        "image": "NI_CATALOG/IMAGES/CIW/2026/8/31/[redacted:token].png",
                        "image_url": "https://instamart-media-assets.swiggy.com/swiggy/image/upload/fl_lossy,f_auto,q_auto/NI_CATALOG/IMAGES/CIW/2026/8/31/[redacted:token].png",
                        "in_stock": true,
                        "max_per_order": 3,
                        "mrp": "190",
                        "mrp_paise": 19000,
                        "name": "ITC Right Shift Multigrain+ Atta 1kg | 30% MORE Protein | High Fibre | Soft Rotis",
                        "offer_price": "132",
                        "offer_price_paise": 13200,
                        "product_url": "https://www.swiggy.com/instamart/item/K9Y43VDN2M",
                        "quantity": "1 kg x 2",
                        "rating": "4.5",
                        "rating_count": "1.7k",
                        "rating_value": 4.5,
                        "sku": "L6DCWK1TA2",
                        "source_widget_type": "type.googleapis.com/swiggy.im.v1.ItemCollectionCard",
                        "sponsored": true,
                        "store_id": "1396284"
                      },
                      {
                        "brand": "Right Shift",
                        "category": "Atta",
                        "discount": "29",
                        "discount_label": "30% OFF",
                        "discount_paise": 2900,
                        "id": "K9Y43VDN2M",
                        "image": "NI_CATALOG/IMAGES/CIW/2026/8/31/[redacted:token].png",
                        "image_url": "https://instamart-media-assets.swiggy.com/swiggy/image/upload/fl_lossy,f_auto,q_auto/NI_CATALOG/IMAGES/CIW/2026/8/31/[redacted:token].png",
                        "in_stock": true,
                        "max_per_order": 6,
                        "mrp": "95",
                        "mrp_paise": 9500,
                        "name": "ITC Right Shift Multigrain+ Atta 1kg | 30% MORE Protein | High Fibre | Soft Rotis",
                        "offer_price": "66",
                        "offer_price_paise": 6600,
                        "product_url": "https://www.swiggy.com/instamart/item/K9Y43VDN2M",
                        "quantity": "1 kg",
                        "rating": "4.5",
                        "rating_count": "1.7k",
                        "rating_value": 4.5,
                        "sku": "NBX7UBK6G5",
                        "source_widget_type": "type.googleapis.com/swiggy.im.v1.ItemCollectionCard",
                        "sponsored": true,
                        "store_id": "1396284"
                      },
                      {
                        "brand": "Right Shift",
                        "category": "Atta",
                        "discount": "165",
                        "discount_label": "36% OFF",
                        "discount_paise": 16500,
                        "id": "E9SNUDGSH0",
                        "image": "NI_CATALOG/IMAGES/CIW/2026/8/31/[redacted:token].png",
                        "image_url": "https://instamart-media-assets.swiggy.com/swiggy/image/upload/fl_lossy,f_auto,q_auto/NI_CATALOG/IMAGES/CIW/2026/8/31/[redacted:token].png",
                        "in_stock": true,
                        "max_per_order": 5,
                        "mrp": "449",
                        "mrp_paise": 44900,
                        "name": "ITC Right Shift Multigrain+ Atta, 5Kg | 0% Maida| High Protein Flour | High Fibre Atta | Low GI Atta | 30% More Protein | Multigrain Atta | Oats Atta | Chana Atta",
                        "offer_price": "284",
                        "offer_price_paise": 28400,
                        "product_url": "https://www.swiggy.com/instamart/item/E9SNUDGSH0",
                        "quantity": "5 kg",
                        "rating": "4.4",
                        "rating_count": "2.7k",
                        "rating_value": 4.4,
                        "sku": "YN39OKNS0B",
                        "source_widget_type": "type.googleapis.com/swiggy.im.v1.ItemCollectionCard",
                        "sponsored": true,
                        "store_id": "1396284"
                      }
                    ],
                    "store": {
                      "delivery_eta": "13 MINS",
                      "latitude": 12.9261382,
                      "longitude": 77.62210910000002,
                      "pincode": "560034",
                      "place": "Bengaluru, Karnataka 560034, India",
                      "primary_store_id": "1396284",
                      "serviceability_status": "SERVICEABLE",
                      "serviceability_type": "FAST_SERVICEABLE",
                      "serviceable": true,
                      "store_id": "1396284"
                    }
                  }
                },
                "error": {
                  "type": "null"
                },
                "index": {
                  "const": 0,
                  "type": "integer"
                },
                "url": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "index",
                "url",
                "data",
                "error"
              ],
              "type": "object"
            },
            "maxItems": 1,
            "minItems": 1,
            "type": "array"
          },
          "started_at": {
            "anyOf": [
              {
                "description": "When the job began executing (ISO 8601 UTC), or null if it never ran.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "state": {
            "const": "completed",
            "type": "string"
          },
          "stats": {
            "$ref": "#/components/schemas/JobStats"
          },
          "success": {
            "const": true,
            "type": "boolean"
          }
        },
        "required": [
          "job_id",
          "request_id",
          "platform",
          "capability",
          "state",
          "success",
          "started_at",
          "completed_at",
          "results",
          "billing",
          "stats",
          "outcome"
        ],
        "type": "object"
      },
      "SwiggyInstamartCategoriesListExecuteRequest": {
        "additionalProperties": false,
        "description": "List the category tree for a delivery location and return the IDs, names, sections and taxonomy used for category browsing.",
        "example": {
          "capability": "swiggy-instamart.categories.list",
          "input": {
            "layout_id": "4987",
            "pincode": "560034"
          }
        },
        "properties": {
          "capability": {
            "enum": [
              "swiggy-instamart.categories.list"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/SwiggyInstamartCategoriesListInput"
          },
          "max_credits": {
            "description": "Optional credit ceiling. The job is refused with `credit_limit_exceeded` before acceptance when its published price is higher. Takes precedence over the `X-Max-Credits` header.",
            "minimum": 1,
            "type": "integer"
          },
          "network": {
            "$ref": "#/components/schemas/ExecuteNetwork"
          },
          "timeout_ms": {
            "description": "Optional request timeout in milliseconds. Values above the capability timeout are rejected.",
            "maximum": 120000,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "capability",
          "input"
        ],
        "type": "object"
      },
      "JobPendingResponse": {
        "additionalProperties": false,
        "properties": {
          "capability": {
            "enum": [
              "swiggy-instamart.categories.list",
              "swiggy-instamart.category.products.list",
              "swiggy-instamart.collection.products.list",
              "swiggy-instamart.eta",
              "swiggy-instamart.home.list",
              "swiggy-instamart.location.resolve",
              "swiggy-instamart.location.serviceability",
              "swiggy-instamart.location.suggest",
              "swiggy-instamart.product.get",
              "swiggy-instamart.products.search",
              "swiggy-instamart.search.suggestions"
            ],
            "type": "string"
          },
          "job_id": {
            "format": "uuid",
            "type": "string"
          },
          "platform": {
            "enum": [
              "swiggy-instamart"
            ],
            "type": "string"
          },
          "poll_after_ms": {
            "description": "Wait at least this long before polling.",
            "minimum": 0,
            "type": "integer"
          },
          "poll_url": {
            "description": "GET this URL with the same API key to read the job.",
            "format": "uri",
            "type": "string"
          },
          "request_id": {
            "format": "uuid",
            "type": "string"
          },
          "state": {
            "enum": [
              "queued",
              "running",
              "retrying"
            ],
            "type": "string"
          }
        },
        "required": [
          "job_id",
          "request_id",
          "platform",
          "capability",
          "state"
        ],
        "type": "object"
      },
      "SwiggyInstamartHomeListInput": {
        "additionalProperties": false,
        "anyOf": [
          {
            "required": [
              "lat",
              "lng"
            ]
          },
          {
            "required": [
              "pincode"
            ]
          }
        ],
        "properties": {
          "lat": {
            "description": "Delivery latitude in decimal degrees",
            "maximum": 90,
            "minimum": -90,
            "type": "number"
          },
          "layout_id": {
            "pattern": "\\S+",
            "type": "string"
          },
          "lng": {
            "description": "Delivery longitude in decimal degrees",
            "maximum": 180,
            "minimum": -180,
            "type": "number"
          },
          "offset": {
            "description": "Opaque next_offset returned by the preceding page; legacy non-negative numeric offsets remain accepted",
            "oneOf": [
              {
                "minimum": 0,
                "type": "integer"
              },
              {
                "pattern": "\\S+",
                "type": "string"
              }
            ]
          },
          "pincode": {
            "pattern": "^[1-9][0-9]{5}$",
            "type": "string"
          },
          "primary_store_id": {
            "description": "Optional primary store ID from the location-specific Instamart session",
            "maxLength": 12,
            "pattern": "^[0-9]{3,12}$",
            "type": "string"
          },
          "secondary_store_id": {
            "description": "Optional secondary store ID observed for the location-specific Instamart session",
            "maxLength": 12,
            "pattern": "^[0-9]{3,12}$",
            "type": "string"
          },
          "store_id": {
            "description": "Optional store override; home pages are read from this store. Every page is checked against it",
            "maxLength": 12,
            "pattern": "^[0-9]{3,12}$",
            "type": "string"
          }
        },
        "type": "object"
      },
      "SwiggyInstamartLocationSuggestExecuteRequest": {
        "additionalProperties": false,
        "description": "Find candidate delivery places from an area name, city or six-digit Indian pincode and return place IDs for resolution.",
        "example": {
          "capability": "swiggy-instamart.location.suggest",
          "input": {
            "query": "Koramangala Bangalore"
          }
        },
        "properties": {
          "capability": {
            "enum": [
              "swiggy-instamart.location.suggest"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/SwiggyInstamartLocationSuggestInput"
          },
          "max_credits": {
            "description": "Optional credit ceiling. The job is refused with `credit_limit_exceeded` before acceptance when its published price is higher. Takes precedence over the `X-Max-Credits` header.",
            "minimum": 1,
            "type": "integer"
          },
          "network": {
            "$ref": "#/components/schemas/ExecuteNetwork"
          },
          "timeout_ms": {
            "description": "Optional request timeout in milliseconds. Values above the capability timeout are rejected.",
            "maximum": 120000,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "capability",
          "input"
        ],
        "type": "object"
      },
      "SwiggyInstamartLocationSuggestCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "swiggy-instamart.location.suggest"
            ],
            "type": "string"
          },
          "completed_at": {
            "anyOf": [
              {
                "description": "When the source data was read and the job completed (ISO 8601 UTC). This is the observation time for the returned data, to the job's precision, not a per-item upstream timestamp. Null unless the job completed.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "job_id": {
            "format": "uuid",
            "type": "string"
          },
          "outcome": {
            "description": "Truthful module completion detail; status is complete unless the module reports partial or incomplete output.",
            "type": "object"
          },
          "platform": {
            "enum": [
              "swiggy-instamart"
            ],
            "type": "string"
          },
          "request_id": {
            "format": "uuid",
            "type": "string"
          },
          "results": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "data": {
                  "description": "Raw capability output. Its shape may evolve with the upstream source; the example is illustrative, not a compatibility guarantee.",
                  "example": {
                    "places": [
                      {
                        "description": "Koramangala, Bangalore, Karnataka, India",
                        "place_id": "ChIJLfyY2E4UrjsRVq4AjI7zgRY"
                      },
                      {
                        "description": "Koramangala, KHB Colony, 4th Block, Koramangala, Bangalore, Karnataka, India",
                        "place_id": "ChIJq98yNwAVrjsRIF1kXMqa7wM"
                      },
                      {
                        "description": "Bangalore One, KHB Games Village, Koramangala, Bengaluru, Karnataka, India",
                        "place_id": "ChIJE_FVGEkUrjsRuPJ0YbKcuFw"
                      }
                    ]
                  }
                },
                "error": {
                  "type": "null"
                },
                "index": {
                  "const": 0,
                  "type": "integer"
                },
                "url": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "index",
                "url",
                "data",
                "error"
              ],
              "type": "object"
            },
            "maxItems": 1,
            "minItems": 1,
            "type": "array"
          },
          "started_at": {
            "anyOf": [
              {
                "description": "When the job began executing (ISO 8601 UTC), or null if it never ran.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "state": {
            "const": "completed",
            "type": "string"
          },
          "stats": {
            "$ref": "#/components/schemas/JobStats"
          },
          "success": {
            "const": true,
            "type": "boolean"
          }
        },
        "required": [
          "job_id",
          "request_id",
          "platform",
          "capability",
          "state",
          "success",
          "started_at",
          "completed_at",
          "results",
          "billing",
          "stats",
          "outcome"
        ],
        "type": "object"
      },
      "JobBilling": {
        "additionalProperties": false,
        "properties": {
          "credits_charged": {
            "anyOf": [
              {
                "description": "Actual credits charged, which may be a part of a credit such as 0.25. Null only when retained historical facts cannot establish the amount.",
                "minimum": 0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "credits_per_unit": {
            "anyOf": [
              {
                "description": "Snapshotted price for one billed unit, which may be a part of a credit such as 0.25. Zero only for historical free work; null when unknown.",
                "minimum": 0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "model": {
            "enum": [
              "per_request",
              "per_record",
              "free",
              "unknown"
            ],
            "type": "string"
          },
          "pricing": {
            "additionalProperties": false,
            "properties": {
              "rule_id": {
                "anyOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "scope": {
                "anyOf": [
                  {
                    "enum": [
                      "module",
                      "platform",
                      "capability"
                    ],
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "source": {
                "enum": [
                  "manifest",
                  "price_book"
                ],
                "type": "string"
              },
              "version": {
                "anyOf": [
                  {
                    "minimum": 1,
                    "type": "integer"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "source",
              "scope",
              "version",
              "rule_id"
            ],
            "type": "object"
          },
          "settlement": {
            "description": "Why this job did or did not produce a credit debit. `cache_hit` means the same request was answered again from a recent result, and `credits_charged` is 0. A zero charge is not implicitly described as free.",
            "enum": [
              "prepaid_credits",
              "included_subscription",
              "out_of_band_contract",
              "free",
              "cache_hit",
              "not_billable",
              "zero_charge_requires_review",
              "unknown"
            ],
            "type": "string"
          },
          "units": {
            "anyOf": [
              {
                "description": "Billed units under the stated model. Null when units do not apply or cannot be established.",
                "minimum": 0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "model",
          "units",
          "credits_per_unit",
          "credits_charged",
          "settlement",
          "pricing"
        ],
        "type": "object"
      },
      "SwiggyInstamartSearchSuggestionsInput": {
        "additionalProperties": false,
        "properties": {
          "pincode": {
            "description": "6-digit Indian PIN code of the delivery location; Instamart suggests from the store serving it",
            "pattern": "^[1-9][0-9]{5}$",
            "type": "string"
          },
          "primary_store_id": {
            "description": "Optional check: must equal the primary store serving the delivery location",
            "maxLength": 12,
            "pattern": "^[0-9]{3,12}$",
            "type": "string"
          },
          "query": {
            "maxLength": 200,
            "pattern": "\\S+",
            "type": "string"
          },
          "store_id": {
            "description": "Optional check: the Instamart store you expect. Instamart picks the store from the delivery location (pincode); a different store is rejected, never substituted",
            "maxLength": 12,
            "pattern": "^[0-9]{3,12}$",
            "type": "string"
          },
          "tracking_id": {
            "pattern": "\\S+",
            "type": "string"
          }
        },
        "required": [
          "query",
          "pincode"
        ],
        "type": "object"
      },
      "UnauthorizedError": {
        "additionalProperties": false,
        "properties": {
          "error": {
            "additionalProperties": false,
            "properties": {
              "code": {
                "const": "unauthorized",
                "type": "string"
              },
              "message": {
                "enum": [
                  "authentication required",
                  "invalid or revoked API key; check it under API keys in the console, sent as Authorization: Bearer <your key>",
                  "missing API key; send it as the header Authorization: Bearer <your key>"
                ],
                "type": "string"
              }
            },
            "required": [
              "code",
              "message"
            ],
            "type": "object"
          },
          "request_id": {
            "description": "Safe Upscrape HTTP request identifier, also returned in the x-request-id header. For accepted jobs, job_id is the durable execution identifier.",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "error",
          "request_id"
        ],
        "type": "object"
      },
      "SwiggyInstamartLocationResolveCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "swiggy-instamart.location.resolve"
            ],
            "type": "string"
          },
          "completed_at": {
            "anyOf": [
              {
                "description": "When the source data was read and the job completed (ISO 8601 UTC). This is the observation time for the returned data, to the job's precision, not a per-item upstream timestamp. Null unless the job completed.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "job_id": {
            "format": "uuid",
            "type": "string"
          },
          "outcome": {
            "description": "Truthful module completion detail; status is complete unless the module reports partial or incomplete output.",
            "type": "object"
          },
          "platform": {
            "enum": [
              "swiggy-instamart"
            ],
            "type": "string"
          },
          "request_id": {
            "format": "uuid",
            "type": "string"
          },
          "results": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "data": {
                  "description": "Raw capability output. Its shape may evolve with the upstream source; the example is illustrative, not a compatibility guarantee.",
                  "example": {
                    "latitude": 12.9352403,
                    "longitude": 77.624532,
                    "place_id": "ChIJLfyY2E4UrjsRVq4AjI7zgRY",
                    "subtitle": "Koramangala, Bengaluru, Karnataka, India",
                    "title": "Koramangala"
                  }
                },
                "error": {
                  "type": "null"
                },
                "index": {
                  "const": 0,
                  "type": "integer"
                },
                "url": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "index",
                "url",
                "data",
                "error"
              ],
              "type": "object"
            },
            "maxItems": 1,
            "minItems": 1,
            "type": "array"
          },
          "started_at": {
            "anyOf": [
              {
                "description": "When the job began executing (ISO 8601 UTC), or null if it never ran.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "state": {
            "const": "completed",
            "type": "string"
          },
          "stats": {
            "$ref": "#/components/schemas/JobStats"
          },
          "success": {
            "const": true,
            "type": "boolean"
          }
        },
        "required": [
          "job_id",
          "request_id",
          "platform",
          "capability",
          "state",
          "success",
          "started_at",
          "completed_at",
          "results",
          "billing",
          "stats",
          "outcome"
        ],
        "type": "object"
      },
      "SwiggyInstamartEtaInput": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false,
        "anyOf": [
          {
            "required": [
              "latitude",
              "longitude"
            ]
          },
          {
            "required": [
              "pincode"
            ]
          }
        ],
        "properties": {
          "address": {
            "maxLength": 500,
            "pattern": "\\S+",
            "type": "string"
          },
          "address_id": {
            "maxLength": 500,
            "type": "string"
          },
          "annotation": {
            "maxLength": 500,
            "type": "string"
          },
          "latitude": {
            "maximum": 90,
            "minimum": -90,
            "type": "number"
          },
          "longitude": {
            "maximum": 180,
            "minimum": -180,
            "type": "number"
          },
          "pincode": {
            "pattern": "^[1-9][0-9]{5}$",
            "type": "string"
          }
        },
        "title": "InstamartETAInput",
        "type": "object"
      },
      "JobStats": {
        "additionalProperties": false,
        "properties": {
          "attempts": {
            "description": "Number of execution attempts made for the job.",
            "minimum": 0,
            "type": "integer"
          },
          "duration_ms": {
            "anyOf": [
              {
                "description": "Duration of the final execution attempt.",
                "minimum": 0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "failed": {
            "const": 0,
            "type": "integer"
          },
          "passed": {
            "const": 1,
            "type": "integer"
          },
          "processing_duration_ms": {
            "anyOf": [
              {
                "description": "Total job processing time, including retries and retry backoff.",
                "minimum": 0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "queue_duration_ms": {
            "anyOf": [
              {
                "description": "Time between job acceptance and the first execution attempt.",
                "minimum": 0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "run_duration_ms": {
            "anyOf": [
              {
                "description": "Canonical run time from job acceptance to completion. Use this for customer-facing timing.",
                "minimum": 0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "total": {
            "const": 1,
            "type": "integer"
          }
        },
        "required": [
          "total",
          "passed",
          "failed",
          "run_duration_ms",
          "duration_ms",
          "processing_duration_ms",
          "queue_duration_ms",
          "attempts"
        ],
        "type": "object"
      },
      "SwiggyInstamartProductsSearchExecuteRequest": {
        "additionalProperties": false,
        "description": "Search the Instamart catalogue at a delivery location, with pack prices, stock, match positions, row kinds and filters, page by page.",
        "example": {
          "capability": "swiggy-instamart.products.search",
          "input": {
            "pincode": "560034",
            "query": "milk"
          }
        },
        "properties": {
          "capability": {
            "enum": [
              "swiggy-instamart.products.search"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/SwiggyInstamartProductsSearchInput"
          },
          "max_credits": {
            "description": "Optional credit ceiling. The job is refused with `credit_limit_exceeded` before acceptance when its published price is higher. Takes precedence over the `X-Max-Credits` header.",
            "minimum": 1,
            "type": "integer"
          },
          "network": {
            "$ref": "#/components/schemas/ExecuteNetwork"
          },
          "timeout_ms": {
            "description": "Optional request timeout in milliseconds. Values above the capability timeout are rejected.",
            "maximum": 120000,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "capability",
          "input"
        ],
        "type": "object"
      },
      "SwiggyInstamartSearchSuggestionsCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "swiggy-instamart.search.suggestions"
            ],
            "type": "string"
          },
          "completed_at": {
            "anyOf": [
              {
                "description": "When the source data was read and the job completed (ISO 8601 UTC). This is the observation time for the returned data, to the job's precision, not a per-item upstream timestamp. Null unless the job completed.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "job_id": {
            "format": "uuid",
            "type": "string"
          },
          "outcome": {
            "description": "Truthful module completion detail; status is complete unless the module reports partial or incomplete output.",
            "type": "object"
          },
          "platform": {
            "enum": [
              "swiggy-instamart"
            ],
            "type": "string"
          },
          "request_id": {
            "format": "uuid",
            "type": "string"
          },
          "results": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "data": {
                  "description": "Raw capability output. Its shape may evolve with the upstream source; the example is illustrative, not a compatibility guarantee.",
                  "example": {
                    "suggestions": [
                      {
                        "highlighted_text": "{{Milk}}",
                        "text": "Milk",
                        "type": "SUGGESTION_TYPE_INSTAMART_CATEGORY"
                      },
                      {
                        "highlighted_text": "Nandini {{milk}}",
                        "text": "Nandini milk",
                        "type": "SUGGESTION_TYPE_INSTAMART_HYBRID"
                      },
                      {
                        "highlighted_text": "Organic {{Milk}}",
                        "text": "Organic Milk",
                        "type": "SUGGESTION_TYPE_INSTAMART_HYBRID"
                      }
                    ]
                  }
                },
                "error": {
                  "type": "null"
                },
                "index": {
                  "const": 0,
                  "type": "integer"
                },
                "url": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "index",
                "url",
                "data",
                "error"
              ],
              "type": "object"
            },
            "maxItems": 1,
            "minItems": 1,
            "type": "array"
          },
          "started_at": {
            "anyOf": [
              {
                "description": "When the job began executing (ISO 8601 UTC), or null if it never ran.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "state": {
            "const": "completed",
            "type": "string"
          },
          "stats": {
            "$ref": "#/components/schemas/JobStats"
          },
          "success": {
            "const": true,
            "type": "boolean"
          }
        },
        "required": [
          "job_id",
          "request_id",
          "platform",
          "capability",
          "state",
          "success",
          "started_at",
          "completed_at",
          "results",
          "billing",
          "stats",
          "outcome"
        ],
        "type": "object"
      },
      "UnavailableError": {
        "additionalProperties": false,
        "properties": {
          "error": {
            "additionalProperties": false,
            "properties": {
              "code": {
                "const": "temporarily_unavailable",
                "type": "string"
              },
              "message": {
                "const": "this capability is temporarily unavailable; try again later or use another capability",
                "type": "string"
              }
            },
            "required": [
              "code",
              "message"
            ],
            "type": "object"
          },
          "request_id": {
            "description": "Safe Upscrape HTTP request identifier, also returned in the x-request-id header. For accepted jobs, job_id is the durable execution identifier.",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "error",
          "request_id"
        ],
        "type": "object"
      },
      "InternalError": {
        "additionalProperties": false,
        "properties": {
          "error": {
            "additionalProperties": false,
            "properties": {
              "code": {
                "const": "internal_error",
                "type": "string"
              },
              "message": {
                "type": "string"
              }
            },
            "required": [
              "code",
              "message"
            ],
            "type": "object"
          },
          "request_id": {
            "description": "Safe Upscrape HTTP request identifier, also returned in the x-request-id header. For accepted jobs, job_id is the durable execution identifier.",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "error",
          "request_id"
        ],
        "type": "object"
      },
      "CredentialsRequiredError": {
        "additionalProperties": false,
        "properties": {
          "error": {
            "additionalProperties": false,
            "properties": {
              "code": {
                "const": "credentials_required",
                "type": "string"
              },
              "message": {
                "const": "this capability requires authentication credentials; save them via POST /credentials",
                "type": "string"
              }
            },
            "required": [
              "code",
              "message"
            ],
            "type": "object"
          },
          "request_id": {
            "description": "Safe Upscrape HTTP request identifier, also returned in the x-request-id header. For accepted jobs, job_id is the durable execution identifier.",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "error",
          "request_id"
        ],
        "type": "object"
      },
      "SwiggyInstamartHomeListCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "swiggy-instamart.home.list"
            ],
            "type": "string"
          },
          "completed_at": {
            "anyOf": [
              {
                "description": "When the source data was read and the job completed (ISO 8601 UTC). This is the observation time for the returned data, to the job's precision, not a per-item upstream timestamp. Null unless the job completed.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "job_id": {
            "format": "uuid",
            "type": "string"
          },
          "outcome": {
            "description": "Truthful module completion detail; status is complete unless the module reports partial or incomplete output.",
            "type": "object"
          },
          "platform": {
            "enum": [
              "swiggy-instamart"
            ],
            "type": "string"
          },
          "request_id": {
            "format": "uuid",
            "type": "string"
          },
          "results": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "data": {
                  "description": "Raw capability output. Its shape may evolve with the upstream source; the example is illustrative, not a compatibility guarantee.",
                  "example": {
                    "next_offset": "imh1.[redacted:token]",
                    "products": [
                      {
                        "brand": "Go Zero",
                        "category": "Ice Creams",
                        "discount": "179",
                        "discount_label": "47% OFF",
                        "discount_paise": 17900,
                        "id": "1L3QNYR63I",
                        "image": "NI_CATALOG/IMAGES/CIW/2025/11/28/[redacted:token].png",
                        "image_url": "https://instamart-media-assets.swiggy.com/swiggy/image/upload/fl_lossy,f_auto,q_auto/NI_CATALOG/IMAGES/CIW/2025/11/28/[redacted:token].png",
                        "in_stock": true,
                        "max_per_order": 1,
                        "mrp": "380",
                        "mrp_paise": 38000,
                        "name": "Go Zero Mad Over Mango Guilt Free Ice Cream Tub",
                        "offer_price": "201",
                        "offer_price_paise": 20100,
                        "product_url": "https://www.swiggy.com/instamart/item/1L3QNYR63I",
                        "quantity": "500 ml",
                        "rating": "4.1",
                        "rating_count": "3.1k",
                        "rating_value": 4.1,
                        "sku": "82BFA0I6IJ",
                        "store_id": "1396284"
                      },
                      {
                        "brand": "The Brooklyn Creamery",
                        "category": "Ice Creams",
                        "discount": "14",
                        "discount_label": "4% OFF",
                        "discount_paise": 1400,
                        "id": "25JSNA1XIV",
                        "image": "NI_CATALOG/IMAGES/ciw/2026/5/22/[redacted:token].png",
                        "image_url": "https://instamart-media-assets.swiggy.com/swiggy/image/upload/fl_lossy,f_auto,q_auto/NI_CATALOG/IMAGES/ciw/2026/5/22/[redacted:token].png",
                        "in_stock": true,
                        "max_per_order": 1,
                        "mrp": "349",
                        "mrp_paise": 34900,
                        "name": "The Brooklyn Creamery Chocolate Fudge Brownie Ice Cream Tub",
                        "offer_price": "335",
                        "offer_price_paise": 33500,
                        "product_url": "https://www.swiggy.com/instamart/item/25JSNA1XIV",
                        "quantity": "450 ml",
                        "rating": "3.7",
                        "rating_count": "325",
                        "rating_value": 3.7,
                        "sku": "VKY9QGGD7R",
                        "store_id": "1396284"
                      },
                      {
                        "brand": "Go Zero",
                        "category": "Ice Creams",
                        "discount": "30",
                        "discount_label": "12% OFF",
                        "discount_paise": 3000,
                        "id": "0SHNTMYXFM",
                        "image": "NI_CATALOG/IMAGES/ciw/2026/5/26/[redacted:token] Vanilla Swiggy [redacted:token].png",
                        "image_url": "https://instamart-media-assets.swiggy.com/swiggy/image/upload/fl_lossy,f_auto,q_auto/NI_CATALOG/IMAGES/ciw/2026/5/26/[redacted:token]%20Vanilla%20Swiggy%[redacted:token].png",
                        "in_stock": true,
                        "max_per_order": 1,
                        "mrp": "249",
                        "mrp_paise": 24900,
                        "name": "Go Zero Only Vanilla Guilt Free Ice Cream Tub",
                        "offer_price": "219",
                        "offer_price_paise": 21900,
                        "product_url": "https://www.swiggy.com/instamart/item/0SHNTMYXFM",
                        "quantity": "1 ltr",
                        "rating": "4.3",
                        "rating_count": "7.5k",
                        "rating_value": 4.3,
                        "sku": "BFIU1VVBNY",
                        "store_id": "1396284"
                      }
                    ]
                  }
                },
                "error": {
                  "type": "null"
                },
                "index": {
                  "const": 0,
                  "type": "integer"
                },
                "url": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "index",
                "url",
                "data",
                "error"
              ],
              "type": "object"
            },
            "maxItems": 1,
            "minItems": 1,
            "type": "array"
          },
          "started_at": {
            "anyOf": [
              {
                "description": "When the job began executing (ISO 8601 UTC), or null if it never ran.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "state": {
            "const": "completed",
            "type": "string"
          },
          "stats": {
            "$ref": "#/components/schemas/JobStats"
          },
          "success": {
            "const": true,
            "type": "boolean"
          }
        },
        "required": [
          "job_id",
          "request_id",
          "platform",
          "capability",
          "state",
          "success",
          "started_at",
          "completed_at",
          "results",
          "billing",
          "stats",
          "outcome"
        ],
        "type": "object"
      },
      "SwiggyInstamartCollectionProductsListCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "swiggy-instamart.collection.products.list"
            ],
            "type": "string"
          },
          "completed_at": {
            "anyOf": [
              {
                "description": "When the source data was read and the job completed (ISO 8601 UTC). This is the observation time for the returned data, to the job's precision, not a per-item upstream timestamp. Null unless the job completed.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "job_id": {
            "format": "uuid",
            "type": "string"
          },
          "outcome": {
            "description": "Truthful module completion detail; status is complete unless the module reports partial or incomplete output.",
            "type": "object"
          },
          "platform": {
            "enum": [
              "swiggy-instamart"
            ],
            "type": "string"
          },
          "request_id": {
            "format": "uuid",
            "type": "string"
          },
          "results": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "data": {
                  "description": "Raw capability output. Its shape may evolve with the upstream source; the example is illustrative, not a compatibility guarantee.",
                  "example": {
                    "collection_id": "387094",
                    "collection_title": "Furnofy",
                    "next_offset": "imc1.[redacted:token]",
                    "pagination_status": "continuation_available",
                    "products": [
                      {
                        "brand": "Furnofy",
                        "category": "Linen and Furnishing",
                        "discount": "1760",
                        "discount_label": "88% OFF",
                        "discount_paise": 176000,
                        "id": "B2OYXN98BS",
                        "image": "NI_CATALOG/IMAGES/ciw/2026/7/4/[redacted:token].png",
                        "image_url": "https://instamart-media-assets.swiggy.com/swiggy/image/upload/fl_lossy,f_auto,q_auto/NI_CATALOG/IMAGES/ciw/2026/7/4/[redacted:token].png",
                        "in_stock": true,
                        "max_per_order": 3,
                        "mrp": "1999",
                        "mrp_paise": 199900,
                        "name": "Furnofy Cotton Double Flat Bedsheet with 2 Pillow Covers (120GSM, Geometric, Multicolor)",
                        "offer_price": "239",
                        "offer_price_paise": 23900,
                        "position": 1,
                        "product_url": "https://www.swiggy.com/instamart/item/B2OYXN98BS",
                        "quantity": "1 pack",
                        "rating": "4.3",
                        "rating_count": "2.7k",
                        "rating_value": 4.3,
                        "result_type": "match",
                        "sku": "TR26IZU1D1",
                        "source_widget_type": "type.googleapis.com/swiggy.im.v1.ItemCollectionCard",
                        "store_id": "1313712"
                      },
                      {
                        "brand": "Furnofy",
                        "category": "Linen and Furnishing",
                        "discount": "2841",
                        "discount_label": "71% OFF",
                        "discount_paise": 284100,
                        "id": "7X3RNFAM32",
                        "image": "NI_CATALOG/IMAGES/ciw/2026/10/8/[redacted:token].jpg",
                        "image_url": "https://instamart-media-assets.swiggy.com/swiggy/image/upload/fl_lossy,f_auto,q_auto/NI_CATALOG/IMAGES/ciw/2026/10/8/[redacted:token].jpg",
                        "in_stock": true,
                        "max_per_order": 6,
                        "mrp": "3999",
                        "mrp_paise": 399900,
                        "name": "Furnofy King Reversible AC Comforter/Dohar (All Weather, Microfiber, 240 GSM, Abstract, Grey)",
                        "offer_price": "1158",
                        "offer_price_paise": 115800,
                        "position": 2,
                        "product_url": "https://www.swiggy.com/instamart/item/7X3RNFAM32",
                        "quantity": "1 Piece",
                        "rating": "4.3",
                        "rating_count": "238",
                        "rating_value": 4.3,
                        "result_type": "match",
                        "sku": "Q9XU9S92TW",
                        "source_widget_type": "type.googleapis.com/swiggy.im.v1.ItemCollectionCard",
                        "store_id": "1313712"
                      },
                      {
                        "brand": "Furnofy",
                        "category": "Linen and Furnishing",
                        "discount": "884",
                        "discount_label": "58% OFF",
                        "discount_paise": 88400,
                        "id": "DOVTZG8NHS",
                        "image": "NI_CATALOG/IMAGES/ciw/2026/7/4/[redacted:token].png",
                        "image_url": "https://instamart-media-assets.swiggy.com/swiggy/image/upload/fl_lossy,f_auto,q_auto/NI_CATALOG/IMAGES/ciw/2026/7/4/[redacted:token].png",
                        "in_stock": true,
                        "max_per_order": 1,
                        "mrp": "1499",
                        "mrp_paise": 149900,
                        "name": "Furnofy Microfiber Sleeping Pillows (Solid, White)",
                        "offer_price": "615",
                        "offer_price_paise": 61500,
                        "position": 3,
                        "product_url": "https://www.swiggy.com/instamart/item/DOVTZG8NHS",
                        "quantity": "2 pieces",
                        "rating": "3.8",
                        "rating_count": "2.4k",
                        "rating_value": 3.8,
                        "result_type": "match",
                        "sku": "5VPGM4JIW6",
                        "source_widget_type": "type.googleapis.com/swiggy.im.v1.ItemCollectionCard",
                        "store_id": "1313712"
                      }
                    ],
                    "secondary_store_ids": [
                      "1403020"
                    ],
                    "store_id": "1313712"
                  }
                },
                "error": {
                  "type": "null"
                },
                "index": {
                  "const": 0,
                  "type": "integer"
                },
                "url": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "index",
                "url",
                "data",
                "error"
              ],
              "type": "object"
            },
            "maxItems": 1,
            "minItems": 1,
            "type": "array"
          },
          "started_at": {
            "anyOf": [
              {
                "description": "When the job began executing (ISO 8601 UTC), or null if it never ran.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "state": {
            "const": "completed",
            "type": "string"
          },
          "stats": {
            "$ref": "#/components/schemas/JobStats"
          },
          "success": {
            "const": true,
            "type": "boolean"
          }
        },
        "required": [
          "job_id",
          "request_id",
          "platform",
          "capability",
          "state",
          "success",
          "started_at",
          "completed_at",
          "results",
          "billing",
          "stats",
          "outcome"
        ],
        "type": "object"
      },
      "JobErrorObject": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "description": "Machine-readable error code (e.g. forbidden, not_found, invalid_input, upstream_timeout, upstream_error).",
            "type": "string"
          },
          "message": {
            "description": "Human-readable error description.",
            "type": "string"
          },
          "reason": {
            "description": "A stable machine-readable reason when the code alone is not specific enough, for example country_unverified on a forbidden response where the requested country could not be verified. Present only for reviewed reasons; never a raw upstream diagnostic.",
            "type": "string"
          }
        },
        "required": [
          "code",
          "message"
        ],
        "type": "object"
      },
      "SwiggyInstamartLocationResolveExecuteRequest": {
        "additionalProperties": false,
        "description": "Turn a place ID from location suggestions into coordinates and a readable address.",
        "example": {
          "capability": "swiggy-instamart.location.resolve",
          "input": {
            "place_id": "ChIJLfyY2E4UrjsRVq4AjI7zgRY"
          }
        },
        "properties": {
          "capability": {
            "enum": [
              "swiggy-instamart.location.resolve"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/SwiggyInstamartLocationResolveInput"
          },
          "max_credits": {
            "description": "Optional credit ceiling. The job is refused with `credit_limit_exceeded` before acceptance when its published price is higher. Takes precedence over the `X-Max-Credits` header.",
            "minimum": 1,
            "type": "integer"
          },
          "network": {
            "$ref": "#/components/schemas/ExecuteNetwork"
          },
          "timeout_ms": {
            "description": "Optional request timeout in milliseconds. Values above the capability timeout are rejected.",
            "maximum": 120000,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "capability",
          "input"
        ],
        "type": "object"
      },
      "ValidationErrors": {
        "additionalProperties": false,
        "properties": {
          "error": {
            "description": "The standard error envelope, as on every other failure. Branch on `error.code`.",
            "properties": {
              "code": {
                "const": "invalid_input",
                "type": "string"
              },
              "fields": {
                "additionalProperties": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "description": "Failed fields and their messages.",
                "type": "object"
              },
              "message": {
                "description": "One-line summary of the failed fields.",
                "type": "string"
              }
            },
            "required": [
              "code",
              "message",
              "fields"
            ],
            "type": "object"
          },
          "errors": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "description": "Retained for compatibility: the same field map as `error.fields`. New integrations should read `error`.",
            "type": "object"
          },
          "request_id": {
            "description": "Safe Upscrape HTTP request identifier, also returned in the x-request-id header. For accepted jobs, job_id is the durable execution identifier.",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "errors",
          "error",
          "request_id"
        ],
        "type": "object"
      },
      "QuotaError": {
        "oneOf": [
          {
            "additionalProperties": false,
            "properties": {
              "error": {
                "additionalProperties": false,
                "properties": {
                  "code": {
                    "const": "account_inactive",
                    "type": "string"
                  },
                  "message": {
                    "const": "an active paid account is required",
                    "type": "string"
                  }
                },
                "required": [
                  "code",
                  "message"
                ],
                "type": "object"
              },
              "request_id": {
                "description": "Safe Upscrape HTTP request identifier, also returned in the x-request-id header. For accepted jobs, job_id is the durable execution identifier.",
                "minLength": 1,
                "type": "string"
              }
            },
            "required": [
              "error",
              "request_id"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "error": {
                "additionalProperties": false,
                "properties": {
                  "code": {
                    "const": "quota_exhausted",
                    "type": "string"
                  },
                  "message": {
                    "const": "request quota exhausted for current billing period",
                    "type": "string"
                  }
                },
                "required": [
                  "code",
                  "message"
                ],
                "type": "object"
              },
              "request_id": {
                "description": "Safe Upscrape HTTP request identifier, also returned in the x-request-id header. For accepted jobs, job_id is the durable execution identifier.",
                "minLength": 1,
                "type": "string"
              }
            },
            "required": [
              "error",
              "request_id"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "error": {
                "additionalProperties": false,
                "properties": {
                  "code": {
                    "const": "quota_exhausted",
                    "type": "string"
                  },
                  "message": {
                    "const": "not enough credits for this request; buy credits at https://app.upscrape.com/app/billing to continue",
                    "type": "string"
                  }
                },
                "required": [
                  "code",
                  "message"
                ],
                "type": "object"
              },
              "request_id": {
                "description": "Safe Upscrape HTTP request identifier, also returned in the x-request-id header. For accepted jobs, job_id is the durable execution identifier.",
                "minLength": 1,
                "type": "string"
              }
            },
            "required": [
              "error",
              "request_id"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "error": {
                "additionalProperties": false,
                "properties": {
                  "code": {
                    "const": "account_inactive",
                    "type": "string"
                  },
                  "message": {
                    "const": "this account is not active; buy credits at https://app.upscrape.com/app/billing to activate it, or contact support if it was suspended",
                    "type": "string"
                  }
                },
                "required": [
                  "code",
                  "message"
                ],
                "type": "object"
              },
              "request_id": {
                "description": "Safe Upscrape HTTP request identifier, also returned in the x-request-id header. For accepted jobs, job_id is the durable execution identifier.",
                "minLength": 1,
                "type": "string"
              }
            },
            "required": [
              "error",
              "request_id"
            ],
            "type": "object"
          }
        ]
      },
      "SwiggyInstamartCollectionProductsListExecuteRequest": {
        "additionalProperties": false,
        "description": "List the packs in an Instamart collection, such as a brand's shop or a promotion, with local prices and stock, page by page.",
        "example": {
          "capability": "swiggy-instamart.collection.products.list",
          "input": {
            "collection_id": "387094",
            "lat": 12.9716,
            "lng": 77.5946
          }
        },
        "properties": {
          "capability": {
            "enum": [
              "swiggy-instamart.collection.products.list"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/SwiggyInstamartCollectionProductsListInput"
          },
          "max_credits": {
            "description": "Optional credit ceiling. The job is refused with `credit_limit_exceeded` before acceptance when its published price is higher. Takes precedence over the `X-Max-Credits` header.",
            "minimum": 1,
            "type": "integer"
          },
          "network": {
            "$ref": "#/components/schemas/ExecuteNetwork"
          },
          "timeout_ms": {
            "description": "Optional request timeout in milliseconds. Values above the capability timeout are rejected.",
            "maximum": 120000,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "capability",
          "input"
        ],
        "type": "object"
      },
      "SwiggyInstamartLocationSuggestInput": {
        "additionalProperties": false,
        "properties": {
          "query": {
            "maxLength": 200,
            "pattern": "\\S+",
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "JobFailedResponse": {
        "additionalProperties": false,
        "properties": {
          "capability": {
            "enum": [
              "swiggy-instamart.categories.list",
              "swiggy-instamart.category.products.list",
              "swiggy-instamart.collection.products.list",
              "swiggy-instamart.eta",
              "swiggy-instamart.home.list",
              "swiggy-instamart.location.resolve",
              "swiggy-instamart.location.serviceability",
              "swiggy-instamart.location.suggest",
              "swiggy-instamart.product.get",
              "swiggy-instamart.products.search",
              "swiggy-instamart.search.suggestions"
            ],
            "type": "string"
          },
          "completed_at": {
            "anyOf": [
              {
                "description": "When the source data was read and the job completed (ISO 8601 UTC). This is the observation time for the returned data, to the job's precision, not a per-item upstream timestamp. Null unless the job completed.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "error": {
            "$ref": "#/components/schemas/JobErrorObject"
          },
          "job_id": {
            "format": "uuid",
            "type": "string"
          },
          "platform": {
            "enum": [
              "swiggy-instamart"
            ],
            "type": "string"
          },
          "request_id": {
            "format": "uuid",
            "type": "string"
          },
          "results": {
            "type": "null"
          },
          "started_at": {
            "anyOf": [
              {
                "description": "When the job began executing (ISO 8601 UTC), or null if it never ran.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "state": {
            "const": "failed",
            "type": "string"
          },
          "stats": {
            "type": "null"
          },
          "success": {
            "const": false,
            "type": "boolean"
          }
        },
        "required": [
          "job_id",
          "request_id",
          "platform",
          "capability",
          "state",
          "success",
          "error",
          "results",
          "stats",
          "started_at",
          "completed_at"
        ],
        "type": "object"
      },
      "SwiggyInstamartCategoryProductsListInput": {
        "additionalProperties": false,
        "anyOf": [
          {
            "required": [
              "pincode"
            ]
          },
          {
            "required": [
              "lat",
              "lng"
            ]
          }
        ],
        "properties": {
          "brands": {
            "description": "Selected brand values from available_filters",
            "items": {
              "maxLength": 64,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 10,
            "type": "array",
            "uniqueItems": true
          },
          "category_name": {
            "description": "Category name from categories.list; optional when category_url is given",
            "maxLength": 200,
            "pattern": "\\S",
            "type": "string"
          },
          "category_url": {
            "description": "Instamart category page link; categoryName and taxonomyType are read from the link. Its storeId is ignored: the delivery location selects the store",
            "maxLength": 2048,
            "pattern": "^https://(www\\.)?swiggy\\.com/instamart/category-listing\\?",
            "type": "string"
          },
          "filter_id": {
            "description": "Optional sub-category ID paired with filter_name",
            "maxLength": 64,
            "pattern": "^[A-Za-z0-9]+$",
            "type": "string"
          },
          "filter_name": {
            "description": "Optional sub-category name within the category",
            "maxLength": 200,
            "type": "string"
          },
          "lat": {
            "description": "Delivery latitude in decimal degrees, with lng",
            "maximum": 90,
            "minimum": -90,
            "type": "number"
          },
          "lng": {
            "description": "Delivery longitude in decimal degrees, with lat",
            "maximum": 180,
            "minimum": -180,
            "type": "number"
          },
          "min_rating": {
            "description": "Minimum rating facet",
            "enum": [
              3,
              4,
              4.5
            ],
            "type": "number"
          },
          "offset": {
            "description": "Follow the returned opaque next_offset unchanged with the same category, taxonomy, subcategory, location, sort and filters. All new category continuations are context-bound. Legacy page:items remains accepted without sort or facets but cannot detect context changes.",
            "maxLength": 2048,
            "type": "string"
          },
          "pincode": {
            "description": "6-digit Indian PIN code of the delivery location; the store serving it is resolved automatically and takes precedence over lat and lng",
            "pattern": "^[1-9][0-9]{5}$",
            "type": "string"
          },
          "primary_store_id": {
            "description": "Optional check: must equal the primary store serving the delivery location",
            "maxLength": 12,
            "pattern": "^[0-9]{3,12}$",
            "type": "string"
          },
          "secondary_store_id": {
            "description": "Optional check: must be a secondary store serving the delivery location",
            "maxLength": 12,
            "pattern": "^[0-9]{3,12}$",
            "type": "string"
          },
          "sort": {
            "description": "Listing order; relevance is the default",
            "enum": [
              "relevance",
              "price_low_to_high",
              "price_high_to_low",
              "discount_high_to_low"
            ],
            "type": "string"
          },
          "store_id": {
            "description": "Optional check: the Instamart store you expect. Instamart picks the store from the delivery location (pincode or lat and lng); a different store is rejected, never substituted",
            "maxLength": 12,
            "pattern": "^[0-9]{3,12}$",
            "type": "string"
          },
          "taxonomy_type": {
            "description": "Optional taxonomy from categories.list; resolved from category tiles when omitted",
            "maxLength": 100,
            "pattern": "\\S",
            "type": "string"
          },
          "types": {
            "description": "Selected type values from available_filters",
            "items": {
              "maxLength": 64,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 10,
            "type": "array",
            "uniqueItems": true
          }
        },
        "required": [],
        "type": "object"
      },
      "CreditLimitError": {
        "additionalProperties": false,
        "properties": {
          "error": {
            "additionalProperties": false,
            "properties": {
              "code": {
                "const": "credit_limit_exceeded",
                "type": "string"
              },
              "message": {
                "const": "published job price exceeds the requested maximum credits",
                "type": "string"
              }
            },
            "required": [
              "code",
              "message"
            ],
            "type": "object"
          },
          "request_id": {
            "description": "Safe Upscrape HTTP request identifier, also returned in the x-request-id header. For accepted jobs, job_id is the durable execution identifier.",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "error",
          "request_id"
        ],
        "type": "object"
      },
      "SwiggyInstamartLocationServiceabilityCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "swiggy-instamart.location.serviceability"
            ],
            "type": "string"
          },
          "completed_at": {
            "anyOf": [
              {
                "description": "When the source data was read and the job completed (ISO 8601 UTC). This is the observation time for the returned data, to the job's precision, not a per-item upstream timestamp. Null unless the job completed.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "job_id": {
            "format": "uuid",
            "type": "string"
          },
          "outcome": {
            "description": "Truthful module completion detail; status is complete unless the module reports partial or incomplete output.",
            "type": "object"
          },
          "platform": {
            "enum": [
              "swiggy-instamart"
            ],
            "type": "string"
          },
          "request_id": {
            "format": "uuid",
            "type": "string"
          },
          "results": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "data": {
                  "description": "Raw capability output. Its shape may evolve with the upstream source; the example is illustrative, not a compatibility guarantee.",
                  "example": {
                    "address": "Koramangala, Bengaluru, Karnataka, India",
                    "captured_at": "2026-09-28T17:30:46Z",
                    "eta_minutes": 9,
                    "eta_unit": "MINS",
                    "eta_value": "9",
                    "latitude": 12.9352403,
                    "layout_id": "4987",
                    "longitude": 77.624532,
                    "primary_store_id": "1396284",
                    "serviceability_status": "SERVICEABLE",
                    "serviceability_type": "FAST_SERVICEABLE",
                    "serviceable": true,
                    "store_id": "1396284"
                  }
                },
                "error": {
                  "type": "null"
                },
                "index": {
                  "const": 0,
                  "type": "integer"
                },
                "url": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "index",
                "url",
                "data",
                "error"
              ],
              "type": "object"
            },
            "maxItems": 1,
            "minItems": 1,
            "type": "array"
          },
          "started_at": {
            "anyOf": [
              {
                "description": "When the job began executing (ISO 8601 UTC), or null if it never ran.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "state": {
            "const": "completed",
            "type": "string"
          },
          "stats": {
            "$ref": "#/components/schemas/JobStats"
          },
          "success": {
            "const": true,
            "type": "boolean"
          }
        },
        "required": [
          "job_id",
          "request_id",
          "platform",
          "capability",
          "state",
          "success",
          "started_at",
          "completed_at",
          "results",
          "billing",
          "stats",
          "outcome"
        ],
        "type": "object"
      },
      "ExecuteNetwork": {
        "additionalProperties": false,
        "properties": {
          "session_id": {
            "description": "Optional explicit session identifier.",
            "minLength": 1,
            "type": "string"
          },
          "session_key": {
            "description": "Optional stable key used to derive a reusable session.",
            "minLength": 1,
            "type": "string"
          },
          "sticky": {
            "description": "Whether the request should reuse the resolved session.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "SwiggyInstamartEtaCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "swiggy-instamart.eta"
            ],
            "type": "string"
          },
          "completed_at": {
            "anyOf": [
              {
                "description": "When the source data was read and the job completed (ISO 8601 UTC). This is the observation time for the returned data, to the job's precision, not a per-item upstream timestamp. Null unless the job completed.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "job_id": {
            "format": "uuid",
            "type": "string"
          },
          "outcome": {
            "description": "Truthful module completion detail; status is complete unless the module reports partial or incomplete output.",
            "type": "object"
          },
          "platform": {
            "enum": [
              "swiggy-instamart"
            ],
            "type": "string"
          },
          "request_id": {
            "format": "uuid",
            "type": "string"
          },
          "results": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "data": {
                  "description": "Raw capability output. Its shape may evolve with the upstream source; the example is illustrative, not a compatibility guarantee.",
                  "example": {
                    "address": "Koramangala, Bengaluru, Karnataka, India",
                    "captured_at": "2026-09-28T17:31:13Z",
                    "eta_minutes": 9,
                    "eta_unit": "MINS",
                    "eta_value": "9",
                    "latitude": 12.9352403,
                    "layout_id": "4987",
                    "longitude": 77.624532,
                    "primary_store_id": "1396284",
                    "serviceability_status": "SERVICEABLE",
                    "serviceability_type": "FAST_SERVICEABLE",
                    "serviceable": true,
                    "store_id": "1396284"
                  }
                },
                "error": {
                  "type": "null"
                },
                "index": {
                  "const": 0,
                  "type": "integer"
                },
                "url": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "index",
                "url",
                "data",
                "error"
              ],
              "type": "object"
            },
            "maxItems": 1,
            "minItems": 1,
            "type": "array"
          },
          "started_at": {
            "anyOf": [
              {
                "description": "When the job began executing (ISO 8601 UTC), or null if it never ran.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "state": {
            "const": "completed",
            "type": "string"
          },
          "stats": {
            "$ref": "#/components/schemas/JobStats"
          },
          "success": {
            "const": true,
            "type": "boolean"
          }
        },
        "required": [
          "job_id",
          "request_id",
          "platform",
          "capability",
          "state",
          "success",
          "started_at",
          "completed_at",
          "results",
          "billing",
          "stats",
          "outcome"
        ],
        "type": "object"
      },
      "SwiggyInstamartSearchSuggestionsExecuteRequest": {
        "additionalProperties": false,
        "description": "Read Instamart autocomplete suggestions for a query at a pincode.",
        "example": {
          "capability": "swiggy-instamart.search.suggestions",
          "input": {
            "pincode": "560034",
            "query": "milk"
          }
        },
        "properties": {
          "capability": {
            "enum": [
              "swiggy-instamart.search.suggestions"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/SwiggyInstamartSearchSuggestionsInput"
          },
          "max_credits": {
            "description": "Optional credit ceiling. The job is refused with `credit_limit_exceeded` before acceptance when its published price is higher. Takes precedence over the `X-Max-Credits` header.",
            "minimum": 1,
            "type": "integer"
          },
          "network": {
            "$ref": "#/components/schemas/ExecuteNetwork"
          },
          "timeout_ms": {
            "description": "Optional request timeout in milliseconds. Values above the capability timeout are rejected.",
            "maximum": 120000,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "capability",
          "input"
        ],
        "type": "object"
      },
      "SwiggyInstamartLocationServiceabilityInput": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false,
        "anyOf": [
          {
            "required": [
              "latitude",
              "longitude"
            ]
          },
          {
            "required": [
              "pincode"
            ]
          }
        ],
        "properties": {
          "address": {
            "maxLength": 500,
            "pattern": "\\S+",
            "type": "string"
          },
          "address_id": {
            "maxLength": 500,
            "type": "string"
          },
          "annotation": {
            "maxLength": 500,
            "type": "string"
          },
          "latitude": {
            "maximum": 90,
            "minimum": -90,
            "type": "number"
          },
          "longitude": {
            "maximum": 180,
            "minimum": -180,
            "type": "number"
          },
          "pincode": {
            "pattern": "^[1-9][0-9]{5}$",
            "type": "string"
          }
        },
        "title": "InstamartServiceabilityInput",
        "type": "object"
      },
      "SwiggyInstamartLocationResolveInput": {
        "additionalProperties": false,
        "properties": {
          "place_id": {
            "description": "Place ID returned by instamart.location.suggest",
            "maxLength": 512,
            "pattern": "\\S+",
            "type": "string"
          }
        },
        "required": [
          "place_id"
        ],
        "type": "object"
      },
      "SwiggyInstamartCollectionProductsListInput": {
        "additionalProperties": false,
        "anyOf": [
          {
            "required": [
              "collection_id",
              "pincode"
            ]
          },
          {
            "required": [
              "collection_id",
              "lat",
              "lng"
            ]
          },
          {
            "required": [
              "collection_url",
              "pincode"
            ]
          },
          {
            "required": [
              "collection_url",
              "lat",
              "lng"
            ]
          }
        ],
        "properties": {
          "collection_id": {
            "description": "Numeric Instamart collection ID, as in the collectionId of a collection link",
            "pattern": "^[1-9][0-9]{0,11}$",
            "type": "string"
          },
          "collection_url": {
            "description": "Instamart collection link: www.swiggy.com/instamart/collection-listing, instamart.in/collection-listing share link or swiggy://stores/instamart/collection-listing deep link. Its storeId is ignored; the delivery location selects the store",
            "maxLength": 2048,
            "pattern": "collection-listing\\?",
            "type": "string"
          },
          "lat": {
            "description": "Delivery latitude in decimal degrees, with lng",
            "maximum": 90,
            "minimum": -90,
            "type": "number"
          },
          "lng": {
            "description": "Delivery longitude in decimal degrees, with lat",
            "maximum": 180,
            "minimum": -180,
            "type": "number"
          },
          "offset": {
            "description": "Opaque next_offset from the previous page; reuse it unchanged with the same collection, location and store_id",
            "maxLength": 131072,
            "pattern": "^imc1\\.",
            "type": "string"
          },
          "pincode": {
            "description": "6-digit Indian PIN code of the delivery location; takes precedence over lat/lng",
            "pattern": "^[1-9][0-9]{5}$",
            "type": "string"
          },
          "store_id": {
            "description": "Optional expected store ID. Instamart picks the store from the delivery location; a different serving store is rejected rather than silently substituted",
            "maxLength": 12,
            "pattern": "^[0-9]{3,12}$",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ExecuteAcceptedResponse": {
        "additionalProperties": false,
        "properties": {
          "capability": {
            "enum": [
              "swiggy-instamart.categories.list",
              "swiggy-instamart.category.products.list",
              "swiggy-instamart.collection.products.list",
              "swiggy-instamart.eta",
              "swiggy-instamart.home.list",
              "swiggy-instamart.location.resolve",
              "swiggy-instamart.location.serviceability",
              "swiggy-instamart.location.suggest",
              "swiggy-instamart.product.get",
              "swiggy-instamart.products.search",
              "swiggy-instamart.search.suggestions"
            ],
            "type": "string"
          },
          "coalesced": {
            "type": "boolean"
          },
          "job_id": {
            "format": "uuid",
            "type": "string"
          },
          "platform": {
            "enum": [
              "swiggy-instamart"
            ],
            "type": "string"
          },
          "poll_after_ms": {
            "description": "Wait at least this long before polling.",
            "minimum": 0,
            "type": "integer"
          },
          "poll_url": {
            "description": "GET this URL with the same API key to read the job.",
            "format": "uri",
            "type": "string"
          },
          "request_id": {
            "format": "uuid",
            "type": "string"
          },
          "state": {
            "const": "queued",
            "type": "string"
          }
        },
        "required": [
          "job_id",
          "request_id",
          "platform",
          "capability",
          "state"
        ],
        "type": "object"
      },
      "SwiggyInstamartLocationServiceabilityExecuteRequest": {
        "additionalProperties": false,
        "description": "Check whether a pincode or coordinate point is served and return serving-store and ETA fields when available.",
        "example": {
          "capability": "swiggy-instamart.location.serviceability",
          "input": {
            "address": "Koramangala, Bengaluru, Karnataka, India",
            "annotation": "Koramangala, Bengaluru, Karnataka, India",
            "latitude": 12.9352403,
            "longitude": 77.624532
          }
        },
        "properties": {
          "capability": {
            "enum": [
              "swiggy-instamart.location.serviceability"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/SwiggyInstamartLocationServiceabilityInput"
          },
          "max_credits": {
            "description": "Optional credit ceiling. The job is refused with `credit_limit_exceeded` before acceptance when its published price is higher. Takes precedence over the `X-Max-Credits` header.",
            "minimum": 1,
            "type": "integer"
          },
          "network": {
            "$ref": "#/components/schemas/ExecuteNetwork"
          },
          "timeout_ms": {
            "description": "Optional request timeout in milliseconds. Values above the capability timeout are rejected.",
            "maximum": 120000,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "capability",
          "input"
        ],
        "type": "object"
      },
      "SwiggyInstamartCategoriesListInput": {
        "additionalProperties": false,
        "anyOf": [
          {
            "required": [
              "pincode"
            ]
          },
          {
            "required": [
              "lat",
              "lng"
            ]
          }
        ],
        "properties": {
          "lat": {
            "description": "Delivery latitude in decimal degrees, with lng",
            "maximum": 90,
            "minimum": -90,
            "type": "number"
          },
          "layout_id": {
            "description": "Optional homepage layout ID; defaults to 4987 (the web layout)",
            "maxLength": 32,
            "pattern": "^\\S+$",
            "type": "string"
          },
          "lng": {
            "description": "Delivery longitude in decimal degrees, with lat",
            "maximum": 180,
            "minimum": -180,
            "type": "number"
          },
          "pincode": {
            "description": "6-digit Indian PIN code of the delivery location; the store serving it is resolved automatically and takes precedence over lat and lng",
            "pattern": "^[1-9][0-9]{5}$",
            "type": "string"
          },
          "primary_store_id": {
            "description": "Optional check: must equal the primary store serving the delivery location",
            "maxLength": 12,
            "pattern": "^[0-9]{3,12}$",
            "type": "string"
          },
          "secondary_store_id": {
            "description": "Optional check: must be a secondary store serving the delivery location",
            "maxLength": 12,
            "pattern": "^[0-9]{3,12}$",
            "type": "string"
          },
          "store_id": {
            "description": "Optional check: the Instamart store you expect. Instamart picks the store from the delivery location (pincode or lat and lng); a different store is rejected, never substituted",
            "maxLength": 12,
            "pattern": "^[0-9]{3,12}$",
            "type": "string"
          }
        },
        "type": "object"
      },
      "RateLimitError": {
        "additionalProperties": false,
        "properties": {
          "error": {
            "additionalProperties": false,
            "properties": {
              "code": {
                "const": "rate_limited",
                "type": "string"
              },
              "message": {
                "const": "rate limit exceeded",
                "type": "string"
              },
              "retry_after_ms": {
                "description": "Milliseconds until the rolling window resets enough to retry. The `retry-after` response header carries the same value rounded up to seconds.",
                "minimum": 0,
                "type": "integer"
              }
            },
            "required": [
              "code",
              "message",
              "retry_after_ms"
            ],
            "type": "object"
          },
          "request_id": {
            "description": "Safe Upscrape HTTP request identifier, also returned in the x-request-id header. For accepted jobs, job_id is the durable execution identifier.",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "error",
          "request_id"
        ],
        "type": "object"
      },
      "ExecuteReplayResponse": {
        "additionalProperties": false,
        "description": "Replayed response matching the original job's current state (completed, failed, or pending).",
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "swiggy-instamart.categories.list",
              "swiggy-instamart.category.products.list",
              "swiggy-instamart.collection.products.list",
              "swiggy-instamart.eta",
              "swiggy-instamart.home.list",
              "swiggy-instamart.location.resolve",
              "swiggy-instamart.location.serviceability",
              "swiggy-instamart.location.suggest",
              "swiggy-instamart.product.get",
              "swiggy-instamart.products.search",
              "swiggy-instamart.search.suggestions"
            ],
            "type": "string"
          },
          "completed_at": {
            "anyOf": [
              {
                "description": "When the source data was read and the job completed (ISO 8601 UTC). This is the observation time for the returned data, to the job's precision, not a per-item upstream timestamp. Null unless the job completed.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "error": {},
          "idempotent_replay": {
            "const": true,
            "type": "boolean"
          },
          "job_id": {
            "format": "uuid",
            "type": "string"
          },
          "platform": {
            "enum": [
              "swiggy-instamart"
            ],
            "type": "string"
          },
          "poll_after_ms": {
            "minimum": 0,
            "type": "integer"
          },
          "poll_url": {
            "format": "uri",
            "type": "string"
          },
          "request_id": {
            "format": "uuid",
            "type": "string"
          },
          "results": {},
          "started_at": {
            "anyOf": [
              {
                "description": "When the job began executing (ISO 8601 UTC), or null if it never ran.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "state": {
            "enum": [
              "queued",
              "running",
              "retrying",
              "completed",
              "failed"
            ],
            "type": "string"
          },
          "stats": {},
          "success": {
            "type": "boolean"
          }
        },
        "required": [
          "job_id",
          "request_id",
          "platform",
          "capability",
          "state",
          "idempotent_replay"
        ],
        "type": "object"
      },
      "SwiggyInstamartCategoryProductsListExecuteRequest": {
        "additionalProperties": false,
        "description": "List the packs in an Instamart category or category link, with local prices, stock, filters and sorting, page by page.",
        "example": {
          "capability": "swiggy-instamart.category.products.list",
          "input": {
            "category_name": "Atta, Rice and Dal",
            "pincode": "560034",
            "taxonomy_type": "taxonomy 5"
          }
        },
        "properties": {
          "capability": {
            "enum": [
              "swiggy-instamart.category.products.list"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/SwiggyInstamartCategoryProductsListInput"
          },
          "max_credits": {
            "description": "Optional credit ceiling. The job is refused with `credit_limit_exceeded` before acceptance when its published price is higher. Takes precedence over the `X-Max-Credits` header.",
            "minimum": 1,
            "type": "integer"
          },
          "network": {
            "$ref": "#/components/schemas/ExecuteNetwork"
          },
          "timeout_ms": {
            "description": "Optional request timeout in milliseconds. Values above the capability timeout are rejected.",
            "maximum": 120000,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "capability",
          "input"
        ],
        "type": "object"
      },
      "NotFoundError": {
        "additionalProperties": false,
        "properties": {
          "error": {
            "additionalProperties": false,
            "properties": {
              "code": {
                "const": "not_found",
                "type": "string"
              },
              "message": {
                "enum": [
                  "job not found",
                  "monitor not found",
                  "monitors are not available for this account"
                ],
                "type": "string"
              }
            },
            "required": [
              "code",
              "message"
            ],
            "type": "object"
          },
          "request_id": {
            "description": "Safe Upscrape HTTP request identifier, also returned in the x-request-id header. For accepted jobs, job_id is the durable execution identifier.",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "error",
          "request_id"
        ],
        "type": "object"
      },
      "SwiggyInstamartProductsSearchInput": {
        "additionalProperties": false,
        "anyOf": [
          {
            "required": [
              "pincode"
            ]
          },
          {
            "required": [
              "lat",
              "lng"
            ]
          }
        ],
        "properties": {
          "brands": {
            "description": "Selected brand values from available_filters",
            "items": {
              "maxLength": 64,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 10,
            "type": "array",
            "uniqueItems": true
          },
          "lat": {
            "description": "Delivery latitude in decimal degrees, with lng",
            "maximum": 90,
            "minimum": -90,
            "type": "number"
          },
          "lng": {
            "description": "Delivery longitude in decimal degrees, with lat",
            "maximum": 180,
            "minimum": -180,
            "type": "number"
          },
          "min_rating": {
            "description": "Minimum rating facet",
            "enum": [
              3,
              4,
              4.5
            ],
            "type": "number"
          },
          "offset": {
            "description": "Opaque next_offset from the previous search page, scoped to this query and location. Legacy page:items cursors remain accepted.",
            "maxLength": 131072,
            "type": "string"
          },
          "pincode": {
            "description": "6-digit Indian PIN code of the delivery location; the store serving it is resolved automatically and takes precedence over lat and lng",
            "pattern": "^[1-9][0-9]{5}$",
            "type": "string"
          },
          "primary_store_id": {
            "description": "Optional check: must equal the primary store serving the delivery location",
            "maxLength": 12,
            "pattern": "^[0-9]{3,12}$",
            "type": "string"
          },
          "query": {
            "description": "Product search text",
            "maxLength": 200,
            "pattern": "\\S",
            "type": "string"
          },
          "secondary_store_id": {
            "description": "Optional check: must be a secondary store serving the delivery location",
            "maxLength": 12,
            "pattern": "^[0-9]{3,12}$",
            "type": "string"
          },
          "sort": {
            "description": "Listing order; relevance is the default",
            "enum": [
              "relevance",
              "price_low_to_high",
              "price_high_to_low",
              "discount_high_to_low"
            ],
            "type": "string"
          },
          "store_id": {
            "description": "Optional check: the Instamart store you expect. Instamart picks the store from the delivery location (pincode or lat and lng); a different store is rejected, never substituted",
            "maxLength": 12,
            "pattern": "^[0-9]{3,12}$",
            "type": "string"
          },
          "types": {
            "description": "Selected type values from available_filters",
            "items": {
              "maxLength": 64,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 10,
            "type": "array",
            "uniqueItems": true
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "SwiggyInstamartProductsSearchCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "swiggy-instamart.products.search"
            ],
            "type": "string"
          },
          "completed_at": {
            "anyOf": [
              {
                "description": "When the source data was read and the job completed (ISO 8601 UTC). This is the observation time for the returned data, to the job's precision, not a per-item upstream timestamp. Null unless the job completed.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "job_id": {
            "format": "uuid",
            "type": "string"
          },
          "outcome": {
            "description": "Truthful module completion detail; status is complete unless the module reports partial or incomplete output.",
            "type": "object"
          },
          "platform": {
            "enum": [
              "swiggy-instamart"
            ],
            "type": "string"
          },
          "request_id": {
            "format": "uuid",
            "type": "string"
          },
          "results": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "data": {
                  "description": "Raw capability output. Its shape may evolve with the upstream source; the example is illustrative, not a compatibility guarantee.",
                  "example": {
                    "available_filters": {
                      "facets": {
                        "brand": [
                          "Amul",
                          "Akshayakalpa",
                          "Nandini"
                        ],
                        "rating": [
                          "3+",
                          "4+",
                          "4.5+"
                        ],
                        "type": [
                          "Fresh Milk",
                          "Tetra Milk",
                          "Milk Powder"
                        ]
                      },
                      "sorts": [
                        {
                          "key": "relevance",
                          "label": "Relevance"
                        },
                        {
                          "key": "price_low_to_high",
                          "label": "Price (Low To High)"
                        },
                        {
                          "key": "price_high_to_low",
                          "label": "Price (High To Low)"
                        }
                      ]
                    },
                    "next_offset": "im1.[redacted:token]",
                    "pagination_status": "continuation_available",
                    "products": [
                      {
                        "badges": [
                          "Bestseller"
                        ],
                        "brand": "Nandini",
                        "category": "Milk",
                        "id": "CCX1XWR7GN",
                        "image": "NI_CATALOG/IMAGES/ciw/2025/12/17/[redacted:token].png",
                        "image_url": "https://instamart-media-assets.swiggy.com/swiggy/image/upload/fl_lossy,f_auto,q_auto/NI_CATALOG/IMAGES/ciw/2025/12/17/[redacted:token].png",
                        "in_stock": true,
                        "max_per_order": 1,
                        "mrp": "108",
                        "mrp_paise": 10800,
                        "name": "Nandini Shubham Milk",
                        "offer_price": "108",
                        "offer_price_paise": 10800,
                        "position": 1,
                        "product_url": "https://www.swiggy.com/instamart/item/CCX1XWR7GN",
                        "quantity": "500 ml x 4",
                        "rating": "4.4",
                        "rating_count": "118k",
                        "rating_value": 4.4,
                        "result_type": "match",
                        "sku": "SS8P89LI92",
                        "source_widget_type": "type.googleapis.com/swiggy.im.v1.ItemCollectionCard",
                        "store_id": "1396284"
                      },
                      {
                        "badges": [
                          "Bestseller"
                        ],
                        "brand": "Nandini",
                        "category": "Milk",
                        "id": "CCX1XWR7GN",
                        "image": "NI_CATALOG/IMAGES/ciw/2025/12/17/[redacted:token].png",
                        "image_url": "https://instamart-media-assets.swiggy.com/swiggy/image/upload/fl_lossy,f_auto,q_auto/NI_CATALOG/IMAGES/ciw/2025/12/17/[redacted:token].png",
                        "in_stock": true,
                        "max_per_order": 3,
                        "mrp": "54",
                        "mrp_paise": 5400,
                        "name": "Nandini Shubham Milk",
                        "offer_price": "54",
                        "offer_price_paise": 5400,
                        "position": 2,
                        "product_url": "https://www.swiggy.com/instamart/item/CCX1XWR7GN",
                        "quantity": "500 ml x 2",
                        "rating": "4.4",
                        "rating_count": "118k",
                        "rating_value": 4.4,
                        "result_type": "match",
                        "sku": "TK6K7BDQRM",
                        "source_widget_type": "type.googleapis.com/swiggy.im.v1.ItemCollectionCard",
                        "store_id": "1396284"
                      },
                      {
                        "badges": [
                          "Bestseller"
                        ],
                        "brand": "Nandini",
                        "category": "Milk",
                        "id": "CCX1XWR7GN",
                        "image": "NI_CATALOG/IMAGES/ciw/2025/12/17/[redacted:token].png",
                        "image_url": "https://instamart-media-assets.swiggy.com/swiggy/image/upload/fl_lossy,f_auto,q_auto/NI_CATALOG/IMAGES/ciw/2025/12/17/[redacted:token].png",
                        "in_stock": true,
                        "max_per_order": 20,
                        "mrp": "27",
                        "mrp_paise": 2700,
                        "name": "Nandini Shubham Milk",
                        "offer_price": "27",
                        "offer_price_paise": 2700,
                        "position": 3,
                        "product_url": "https://www.swiggy.com/instamart/item/CCX1XWR7GN",
                        "quantity": "500 ml",
                        "rating": "4.4",
                        "rating_count": "118k",
                        "rating_value": 4.4,
                        "result_type": "match",
                        "sku": "793U9Z9S0Q",
                        "source_widget_type": "type.googleapis.com/swiggy.im.v1.ItemCollectionCard",
                        "store_id": "1396284"
                      }
                    ],
                    "store": {
                      "delivery_eta": "13 MINS",
                      "latitude": 12.9261382,
                      "longitude": 77.62210910000002,
                      "pincode": "560034",
                      "place": "Bengaluru, Karnataka 560034, India",
                      "primary_store_id": "1396284",
                      "serviceability_status": "SERVICEABLE",
                      "serviceability_type": "FAST_SERVICEABLE",
                      "serviceable": true,
                      "store_id": "1396284"
                    }
                  }
                },
                "error": {
                  "type": "null"
                },
                "index": {
                  "const": 0,
                  "type": "integer"
                },
                "url": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "index",
                "url",
                "data",
                "error"
              ],
              "type": "object"
            },
            "maxItems": 1,
            "minItems": 1,
            "type": "array"
          },
          "started_at": {
            "anyOf": [
              {
                "description": "When the job began executing (ISO 8601 UTC), or null if it never ran.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "state": {
            "const": "completed",
            "type": "string"
          },
          "stats": {
            "$ref": "#/components/schemas/JobStats"
          },
          "success": {
            "const": true,
            "type": "boolean"
          }
        },
        "required": [
          "job_id",
          "request_id",
          "platform",
          "capability",
          "state",
          "success",
          "started_at",
          "completed_at",
          "results",
          "billing",
          "stats",
          "outcome"
        ],
        "type": "object"
      },
      "SwiggyInstamartProductGetExecuteRequest": {
        "additionalProperties": false,
        "description": "Read one Instamart product by ID or supported item URL, including pack variations, price and availability fields plus published product details where present.",
        "example": {
          "capability": "swiggy-instamart.product.get",
          "input": {
            "pincode": "560034",
            "product_id": "8XUTKS0CZ3"
          }
        },
        "properties": {
          "capability": {
            "enum": [
              "swiggy-instamart.product.get"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/SwiggyInstamartProductGetInput"
          },
          "max_credits": {
            "description": "Optional credit ceiling. The job is refused with `credit_limit_exceeded` before acceptance when its published price is higher. Takes precedence over the `X-Max-Credits` header.",
            "minimum": 1,
            "type": "integer"
          },
          "network": {
            "$ref": "#/components/schemas/ExecuteNetwork"
          },
          "timeout_ms": {
            "description": "Optional request timeout in milliseconds. Values above the capability timeout are rejected.",
            "maximum": 120000,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "capability",
          "input"
        ],
        "type": "object"
      },
      "IdempotencyConflictError": {
        "additionalProperties": false,
        "properties": {
          "error": {
            "additionalProperties": false,
            "properties": {
              "code": {
                "const": "idempotency_conflict",
                "type": "string"
              },
              "message": {
                "const": "idempotency key has already been used for a different request",
                "type": "string"
              }
            },
            "required": [
              "code",
              "message"
            ],
            "type": "object"
          },
          "request_id": {
            "description": "Safe Upscrape HTTP request identifier, also returned in the x-request-id header. For accepted jobs, job_id is the durable execution identifier.",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "error",
          "request_id"
        ],
        "type": "object"
      },
      "SwiggyInstamartEtaExecuteRequest": {
        "additionalProperties": false,
        "description": "Read serviceability and Instamart's delivery estimate for a pincode or a point.",
        "example": {
          "capability": "swiggy-instamart.eta",
          "input": {
            "address": "Koramangala, Bengaluru, Karnataka, India",
            "annotation": "Koramangala, Bengaluru, Karnataka, India",
            "latitude": 12.9352403,
            "longitude": 77.624532
          }
        },
        "properties": {
          "capability": {
            "enum": [
              "swiggy-instamart.eta"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/SwiggyInstamartEtaInput"
          },
          "max_credits": {
            "description": "Optional credit ceiling. The job is refused with `credit_limit_exceeded` before acceptance when its published price is higher. Takes precedence over the `X-Max-Credits` header.",
            "minimum": 1,
            "type": "integer"
          },
          "network": {
            "$ref": "#/components/schemas/ExecuteNetwork"
          },
          "timeout_ms": {
            "description": "Optional request timeout in milliseconds. Values above the capability timeout are rejected.",
            "maximum": 120000,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "capability",
          "input"
        ],
        "type": "object"
      },
      "SwiggyInstamartCategoriesListCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "swiggy-instamart.categories.list"
            ],
            "type": "string"
          },
          "completed_at": {
            "anyOf": [
              {
                "description": "When the source data was read and the job completed (ISO 8601 UTC). This is the observation time for the returned data, to the job's precision, not a per-item upstream timestamp. Null unless the job completed.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "job_id": {
            "format": "uuid",
            "type": "string"
          },
          "outcome": {
            "description": "Truthful module completion detail; status is complete unless the module reports partial or incomplete output.",
            "type": "object"
          },
          "platform": {
            "enum": [
              "swiggy-instamart"
            ],
            "type": "string"
          },
          "request_id": {
            "format": "uuid",
            "type": "string"
          },
          "results": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "data": {
                  "description": "Raw capability output. Its shape may evolve with the upstream source; the example is illustrative, not a compatibility guarantee.",
                  "example": {
                    "categories": [
                      {
                        "id": "6822eeeded32000001e25aa1",
                        "image": "NI_CATALOG/IMAGES/CIW/2025/10/8/[redacted:token]",
                        "name": "Fresh Vegetables",
                        "section": "Fresh items",
                        "taxonomy_type": "Speciality taxonomy 1"
                      },
                      {
                        "id": "6822eeeded32000001e25aae",
                        "image": "NI_CATALOG/IMAGES/CIW/2026/8/1/[redacted:token].png",
                        "name": "Fresh Fruits",
                        "section": "Fresh items",
                        "taxonomy_type": "Speciality taxonomy 1"
                      },
                      {
                        "id": "6822eeeded32000001e25abb",
                        "image": "NI_CATALOG/IMAGES/CIW/2025/12/24/[redacted:token].png",
                        "name": "Dairy, Bread and Eggs",
                        "section": "Fresh items",
                        "taxonomy_type": "Speciality taxonomy 1"
                      }
                    ],
                    "store": {
                      "delivery_eta": "13 MINS",
                      "latitude": 12.9261382,
                      "longitude": 77.62210910000002,
                      "pincode": "560034",
                      "place": "Bengaluru, Karnataka 560034, India",
                      "primary_store_id": "1396284",
                      "serviceability_status": "SERVICEABLE",
                      "serviceability_type": "FAST_SERVICEABLE",
                      "serviceable": true,
                      "store_id": "1396284"
                    }
                  }
                },
                "error": {
                  "type": "null"
                },
                "index": {
                  "const": 0,
                  "type": "integer"
                },
                "url": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "index",
                "url",
                "data",
                "error"
              ],
              "type": "object"
            },
            "maxItems": 1,
            "minItems": 1,
            "type": "array"
          },
          "started_at": {
            "anyOf": [
              {
                "description": "When the job began executing (ISO 8601 UTC), or null if it never ran.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "state": {
            "const": "completed",
            "type": "string"
          },
          "stats": {
            "$ref": "#/components/schemas/JobStats"
          },
          "success": {
            "const": true,
            "type": "boolean"
          }
        },
        "required": [
          "job_id",
          "request_id",
          "platform",
          "capability",
          "state",
          "success",
          "started_at",
          "completed_at",
          "results",
          "billing",
          "stats",
          "outcome"
        ],
        "type": "object"
      },
      "SwiggyInstamartProductGetInput": {
        "additionalProperties": false,
        "anyOf": [
          {
            "required": [
              "pincode"
            ]
          },
          {
            "required": [
              "lat",
              "lng"
            ]
          }
        ],
        "properties": {
          "lat": {
            "description": "Delivery latitude in decimal degrees, with lng",
            "maximum": 90,
            "minimum": -90,
            "type": "number"
          },
          "lng": {
            "description": "Delivery longitude in decimal degrees, with lat",
            "maximum": 180,
            "minimum": -180,
            "type": "number"
          },
          "pincode": {
            "description": "6-digit Indian PIN code of the delivery location; the store serving it is resolved automatically and takes precedence over lat and lng",
            "pattern": "^[1-9][0-9]{5}$",
            "type": "string"
          },
          "primary_store_id": {
            "description": "Optional check: must equal the primary store serving the delivery location",
            "maxLength": 12,
            "pattern": "^[0-9]{3,12}$",
            "type": "string"
          },
          "product_id": {
            "description": "Instamart product ID (the id field of listing results, or the /instamart/item/{id} path)",
            "pattern": "^[A-Z0-9]{6,20}$",
            "type": "string"
          },
          "product_url": {
            "description": "Instamart item link; tracking parameters are ignored",
            "maxLength": 2048,
            "pattern": "^https://(www\\.)?swiggy\\.com/instamart/item/[A-Z0-9]{6,20}(\\?.*)?$",
            "type": "string"
          },
          "secondary_store_id": {
            "description": "Optional check: must be a secondary store serving the delivery location",
            "maxLength": 12,
            "pattern": "^[0-9]{3,12}$",
            "type": "string"
          },
          "store_id": {
            "description": "Optional check: the Instamart store you expect. Instamart picks the store from the delivery location (pincode or lat and lng); a different store is rejected, never substituted",
            "maxLength": 12,
            "pattern": "^[0-9]{3,12}$",
            "type": "string"
          }
        },
        "required": [],
        "type": "object"
      },
      "SwiggyInstamartHomeListExecuteRequest": {
        "additionalProperties": false,
        "description": "Read the Instamart home feed for a pincode or coordinates, with its product packs, page by page.",
        "example": {
          "capability": "swiggy-instamart.home.list",
          "input": {
            "lat": 12.9352403,
            "lng": 77.624532
          }
        },
        "properties": {
          "capability": {
            "enum": [
              "swiggy-instamart.home.list"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/SwiggyInstamartHomeListInput"
          },
          "max_credits": {
            "description": "Optional credit ceiling. The job is refused with `credit_limit_exceeded` before acceptance when its published price is higher. Takes precedence over the `X-Max-Credits` header.",
            "minimum": 1,
            "type": "integer"
          },
          "network": {
            "$ref": "#/components/schemas/ExecuteNetwork"
          },
          "timeout_ms": {
            "description": "Optional request timeout in milliseconds. Values above the capability timeout are rejected.",
            "maximum": 120000,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "capability",
          "input"
        ],
        "type": "object"
      },
      "SwiggyInstamartProductGetCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "swiggy-instamart.product.get"
            ],
            "type": "string"
          },
          "completed_at": {
            "anyOf": [
              {
                "description": "When the source data was read and the job completed (ISO 8601 UTC). This is the observation time for the returned data, to the job's precision, not a per-item upstream timestamp. Null unless the job completed.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "job_id": {
            "format": "uuid",
            "type": "string"
          },
          "outcome": {
            "description": "Truthful module completion detail; status is complete unless the module reports partial or incomplete output.",
            "type": "object"
          },
          "platform": {
            "enum": [
              "swiggy-instamart"
            ],
            "type": "string"
          },
          "request_id": {
            "format": "uuid",
            "type": "string"
          },
          "results": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "data": {
                  "description": "Raw capability output. Its shape may evolve with the upstream source; the example is illustrative, not a compatibility guarantee.",
                  "example": {
                    "brand": "Fruits & Vegetables Category",
                    "description": "Distinctive Flavor: Experience the unique sweetness that sets Ooty Carrot apart from the rest. Grown in the lush valleys of the Ooty region, it offers a delightful taste like no other.",
                    "id": "8XUTKS0CZ3",
                    "in_stock": true,
                    "name": "Ooty Carrot",
                    "other_information": "Country Of Origin is India. EAN code: 4601. Store the product in refrigerated conditions. The image(s) shown are representative of the actual product. While every effort has been made to maintain accurate and up to date product related content, it is recommended to read product labels, batch and manufacturing/packing details along with warnings and directions before using or consuming a packed pro…",
                    "product_url": "https://www.swiggy.com/instamart/item/8XUTKS0CZ3",
                    "seller_details": "Seller Name: Greenmania Modern Retail Pvt Ltd - Carmelaram\nFSSAI Number: 11224333001432\nAddress: SY no- 23/5,GF Doddakannelli village, Varthur Hobli Bangalore, Karnataka -560035\nCustomer Care: [redacted:email]",
                    "similar_products": [
                      {
                        "id": "YEWFLNADBX",
                        "name": "nectr Ooty Carrot With Leaves"
                      },
                      {
                        "id": "JPCLG50ME4",
                        "name": "Healthy Salad Combo"
                      },
                      {
                        "id": "EMX5WPEN6C",
                        "name": "Carrot"
                      }
                    ],
                    "store": {
                      "delivery_eta": "13 MINS",
                      "latitude": 12.9261382,
                      "longitude": 77.62210910000002,
                      "pincode": "560034",
                      "place": "Bengaluru, Karnataka 560034, India",
                      "primary_store_id": "1396284",
                      "serviceability_status": "SERVICEABLE",
                      "serviceability_type": "FAST_SERVICEABLE",
                      "serviceable": true,
                      "store_id": "1396284"
                    },
                    "variations": [
                      {
                        "category": "Vegetables",
                        "discount": "16",
                        "discount_label": "23% OFF",
                        "discount_paise": 1600,
                        "highlights": [
                          {
                            "description": "Supports Eye Health, Boosts Immunity",
                            "title": "Health Benefits"
                          },
                          {
                            "description": "1 x Ooty Carrot ( 250 g )",
                            "title": "Box Contents"
                          },
                          {
                            "description": "2 x 250 g",
                            "title": "Pack Size"
                          }
                        ],
                        "image_urls": [
                          "https://instamart-media-assets.swiggy.com/swiggy/image/upload/fl_lossy,f_auto,q_auto/NI_CATALOG/IMAGES/ciw/2025/12/18/[redacted:token].png",
                          "https://instamart-media-assets.swiggy.com/swiggy/image/upload/fl_lossy,f_auto,q_auto/c9b9f394e9e1d8e64e1a1bd84fd7d90b",
                          "https://instamart-media-assets.swiggy.com/swiggy/image/upload/fl_lossy,f_auto,q_auto/900a402fbc4a570045137509591e1478"
                        ],
                        "images": [
                          "NI_CATALOG/IMAGES/ciw/2025/12/18/[redacted:token].png",
                          "c9b9f394e9e1d8e64e1a1bd84fd7d90b",
                          "900a402fbc4a570045137509591e1478"
                        ],
                        "in_stock": true,
                        "max_per_order": 2,
                        "mrp": "68",
                        "mrp_paise": 6800,
                        "name": "Ooty Carrot",
                        "offer_price": "52",
                        "offer_price_paise": 5200,
                        "quantity": "250 g x 2",
                        "short_description": "Sweet mountain-grown carrot with vibrant color!",
                        "sku": "8RC1S4B1U4",
                        "sub_category": "Carrot",
                        "super_category": "Fruits and Vegetables",
                        "unit_price": "10.4/100 g"
                      },
                      {
                        "category": "Vegetables",
                        "discount": "7",
                        "discount_label": "20% OFF",
                        "discount_paise": 700,
                        "highlights": [
                          {
                            "description": "Supports Eye Health, Boosts Immunity",
                            "title": "Health Benefits"
                          },
                          {
                            "description": "1 x Ooty Carrot ( 250 g )",
                            "title": "Box Contents"
                          },
                          {
                            "description": "250 g",
                            "title": "Pack Size"
                          }
                        ],
                        "image_urls": [
                          "https://instamart-media-assets.swiggy.com/swiggy/image/upload/fl_lossy,f_auto,q_auto/NI_CATALOG/IMAGES/ciw/2025/12/18/[redacted:token].png",
                          "https://instamart-media-assets.swiggy.com/swiggy/image/upload/fl_lossy,f_auto,q_auto/c9b9f394e9e1d8e64e1a1bd84fd7d90b",
                          "https://instamart-media-assets.swiggy.com/swiggy/image/upload/fl_lossy,f_auto,q_auto/900a402fbc4a570045137509591e1478"
                        ],
                        "images": [
                          "NI_CATALOG/IMAGES/ciw/2025/12/18/[redacted:token].png",
                          "c9b9f394e9e1d8e64e1a1bd84fd7d90b",
                          "900a402fbc4a570045137509591e1478"
                        ],
                        "in_stock": true,
                        "max_per_order": 5,
                        "mrp": "34",
                        "mrp_paise": 3400,
                        "name": "Ooty Carrot",
                        "offer_price": "27",
                        "offer_price_paise": 2700,
                        "quantity": "250 g",
                        "short_description": "Sweet mountain-grown carrot with vibrant color!",
                        "sku": "PJ06BD3YD5",
                        "sub_category": "Carrot",
                        "super_category": "Fruits and Vegetables",
                        "unit_price": "10.8/100 g"
                      }
                    ]
                  }
                },
                "error": {
                  "type": "null"
                },
                "index": {
                  "const": 0,
                  "type": "integer"
                },
                "url": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "index",
                "url",
                "data",
                "error"
              ],
              "type": "object"
            },
            "maxItems": 1,
            "minItems": 1,
            "type": "array"
          },
          "started_at": {
            "anyOf": [
              {
                "description": "When the job began executing (ISO 8601 UTC), or null if it never ran.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "state": {
            "const": "completed",
            "type": "string"
          },
          "stats": {
            "$ref": "#/components/schemas/JobStats"
          },
          "success": {
            "const": true,
            "type": "boolean"
          }
        },
        "required": [
          "job_id",
          "request_id",
          "platform",
          "capability",
          "state",
          "success",
          "started_at",
          "completed_at",
          "results",
          "billing",
          "stats",
          "outcome"
        ],
        "type": "object"
      }
    },
    "securitySchemes": {
      "BearerAuth": {
        "bearerFormat": "API Key",
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "description": "Query Instamart products, pack prices, stock, categories, search placement and delivery coverage by pincode or coordinates.\nThis spec includes only the live `Swiggy Instamart` capabilities exposed by Upscrape.\nExecution uses the generic `POST /execute` endpoint and job polling uses `GET /jobs/{id}`.\nSupported capabilities: `swiggy-instamart.categories.list`, `swiggy-instamart.category.products.list`, `swiggy-instamart.collection.products.list`, `swiggy-instamart.eta`, `swiggy-instamart.home.list`, `swiggy-instamart.location.resolve`, `swiggy-instamart.location.serviceability`, `swiggy-instamart.location.suggest`, `swiggy-instamart.product.get`, `swiggy-instamart.products.search`, `swiggy-instamart.search.suggestions`\n## Rate limiting\n\nRequests are rate-limited per API key at **1200 requests per minute** on a rolling window. Every response includes `x-ratelimit-limit`, `x-ratelimit-remaining`, and `x-ratelimit-reset` (Unix ms) headers so clients can self-pace. When the limit is exceeded the API returns `429` with a `rate_limited` error body and a `retry-after` header in seconds plus a `retry_after_ms` field on the body for finer-grained backoff.",
    "title": "Swiggy Instamart API",
    "version": "1.0.0"
  },
  "jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
  "openapi": "3.1.0",
  "paths": {
    "/execute": {
      "post": {
        "description": "All executions are asynchronous. Submit a capability-specific payload to `POST /execute`, then poll the returned `job_id`.",
        "operationId": "swiggy-instamart_execute",
        "parameters": [
          {
            "description": "Optional idempotency key. Reusing the same key with the same request replays the original job.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          },
          {
            "description": "Optional credit ceiling for this job, as a positive integer. The request is refused with `422 credit_limit_exceeded` before acceptance when the published price for the submitted input is higher. The body field `max_credits` takes precedence when both are sent. It never changes the price.",
            "in": "header",
            "name": "X-Max-Credits",
            "required": false,
            "schema": {
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "Request synchronous completion. Use `wait=N` to hold the connection up to N seconds (max 30). If the job completes within the window, the response is `200` with full results (same shape as `GET /jobs/{id}`). If not, the response is the normal `202` with a `job_id` for polling. Omit this header for default asynchronous behavior.",
            "examples": {
              "wait30": {
                "summary": "Wait up to 30 seconds",
                "value": "wait=30"
              },
              "wait5": {
                "summary": "Wait up to 5 seconds",
                "value": "wait=5"
              }
            },
            "in": "header",
            "name": "Prefer",
            "required": false,
            "schema": {
              "example": "wait=30",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "capability": "swiggy-instamart.categories.list",
                "input": {
                  "layout_id": "4987",
                  "pincode": "560034"
                }
              },
              "schema": {
                "discriminator": {
                  "mapping": {
                    "swiggy-instamart.categories.list": "#/components/schemas/SwiggyInstamartCategoriesListExecuteRequest",
                    "swiggy-instamart.category.products.list": "#/components/schemas/SwiggyInstamartCategoryProductsListExecuteRequest",
                    "swiggy-instamart.collection.products.list": "#/components/schemas/SwiggyInstamartCollectionProductsListExecuteRequest",
                    "swiggy-instamart.eta": "#/components/schemas/SwiggyInstamartEtaExecuteRequest",
                    "swiggy-instamart.home.list": "#/components/schemas/SwiggyInstamartHomeListExecuteRequest",
                    "swiggy-instamart.location.resolve": "#/components/schemas/SwiggyInstamartLocationResolveExecuteRequest",
                    "swiggy-instamart.location.serviceability": "#/components/schemas/SwiggyInstamartLocationServiceabilityExecuteRequest",
                    "swiggy-instamart.location.suggest": "#/components/schemas/SwiggyInstamartLocationSuggestExecuteRequest",
                    "swiggy-instamart.product.get": "#/components/schemas/SwiggyInstamartProductGetExecuteRequest",
                    "swiggy-instamart.products.search": "#/components/schemas/SwiggyInstamartProductsSearchExecuteRequest",
                    "swiggy-instamart.search.suggestions": "#/components/schemas/SwiggyInstamartSearchSuggestionsExecuteRequest"
                  },
                  "propertyName": "capability"
                },
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/SwiggyInstamartCategoriesListExecuteRequest"
                  },
                  {
                    "$ref": "#/components/schemas/SwiggyInstamartCategoryProductsListExecuteRequest"
                  },
                  {
                    "$ref": "#/components/schemas/SwiggyInstamartCollectionProductsListExecuteRequest"
                  },
                  {
                    "$ref": "#/components/schemas/SwiggyInstamartEtaExecuteRequest"
                  },
                  {
                    "$ref": "#/components/schemas/SwiggyInstamartHomeListExecuteRequest"
                  },
                  {
                    "$ref": "#/components/schemas/SwiggyInstamartLocationResolveExecuteRequest"
                  },
                  {
                    "$ref": "#/components/schemas/SwiggyInstamartLocationServiceabilityExecuteRequest"
                  },
                  {
                    "$ref": "#/components/schemas/SwiggyInstamartLocationSuggestExecuteRequest"
                  },
                  {
                    "$ref": "#/components/schemas/SwiggyInstamartProductGetExecuteRequest"
                  },
                  {
                    "$ref": "#/components/schemas/SwiggyInstamartProductsSearchExecuteRequest"
                  },
                  {
                    "$ref": "#/components/schemas/SwiggyInstamartSearchSuggestionsExecuteRequest"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartCategoriesListCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartCategoryProductsListCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartCollectionProductsListCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartEtaCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartHomeListCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartLocationResolveCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartLocationServiceabilityCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartLocationSuggestCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartProductGetCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartProductsSearchCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartSearchSuggestionsCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ExecuteReplayResponse"
                    },
                    {
                      "$ref": "#/components/schemas/JobFailedResponse"
                    }
                  ]
                }
              }
            },
            "description": "Job completed within the `Prefer: wait` window, or existing job replayed via idempotency key.",
            "headers": {
              "Preference-Applied": {
                "description": "Present when the server honored the `Prefer: wait` preference.",
                "schema": {
                  "example": "wait=30",
                  "type": "string"
                }
              },
              "x-ratelimit-limit": {
                "description": "Per-API-key request ceiling over the rolling window.",
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "x-ratelimit-remaining": {
                "description": "Requests remaining in the current window before throttling.",
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "x-ratelimit-reset": {
                "description": "Unix epoch milliseconds at which the current window resets.",
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                }
              }
            }
          },
          "202": {
            "content": {
              "application/json": {
                "example": {
                  "capability": "swiggy-instamart.categories.list",
                  "job_id": "00000000-0000-0000-0000-000000000001",
                  "platform": "swiggy-instamart",
                  "poll_after_ms": 2000,
                  "poll_url": "https://data.upscrape.com/jobs/00000000-0000-0000-0000-000000000001",
                  "request_id": "00000000-0000-0000-0000-000000000001",
                  "state": "queued"
                },
                "schema": {
                  "$ref": "#/components/schemas/ExecuteAcceptedResponse"
                }
              }
            },
            "description": "Job accepted and queued, or attached to an identical active keyless request.",
            "headers": {
              "x-ratelimit-limit": {
                "description": "Per-API-key request ceiling over the rolling window.",
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "x-ratelimit-remaining": {
                "description": "Requests remaining in the current window before throttling.",
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "x-ratelimit-reset": {
                "description": "Unix epoch milliseconds at which the current window resets.",
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnauthorizedError"
                }
              }
            },
            "description": "Unauthorized"
          },
          "402": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuotaError"
                }
              }
            },
            "description": "The authenticated account cannot execute the request."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobFailedResponse"
                }
              }
            },
            "description": "The requested public data is unavailable or access is denied. Confirmed account privacy and sign-in requirements include a safe reason."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobFailedResponse"
                }
              }
            },
            "description": "The upstream source confirms that the requested resource was not found. The response retains the job identity."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdempotencyConflictError"
                }
              }
            },
            "description": "Idempotency conflict"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ValidationErrors"
                    },
                    {
                      "$ref": "#/components/schemas/CredentialsRequiredError"
                    },
                    {
                      "$ref": "#/components/schemas/CreditLimitError"
                    }
                  ]
                }
              }
            },
            "description": "The request body failed validation."
          },
          "424": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobFailedResponse"
                }
              }
            },
            "description": "A durable job reached a terminal upstream dependency failure within the Prefer wait window. The body retains job_id and request_id for diagnosis."
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "rate limit exceeded",
                    "retry_after_ms": 4200
                  },
                  "request_id": "safe-http-request-id"
                },
                "schema": {
                  "$ref": "#/components/schemas/RateLimitError"
                }
              }
            },
            "description": "The per-API-key rate limit has been exceeded. Clients should back off until `retry_after_ms` has elapsed (or `retry-after` seconds).",
            "headers": {
              "retry-after": {
                "description": "Seconds until the client may retry (ceiling of `retry_after_ms`).",
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "x-ratelimit-limit": {
                "description": "Per-API-key request ceiling over the rolling window.",
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "x-ratelimit-remaining": {
                "description": "Requests remaining in the current window before throttling.",
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "x-ratelimit-reset": {
                "description": "Unix epoch milliseconds at which the current window resets.",
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalError"
                }
              }
            },
            "description": "Unexpected server error"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnavailableError"
                }
              }
            },
            "description": "The capability cannot be served right now. Do not retry immediately; try again later."
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Queue a Swiggy Instamart capability run",
        "tags": [
          "Execution"
        ]
      }
    },
    "/jobs/{id}": {
      "get": {
        "description": "Get job status and result",
        "operationId": "swiggy-instamart_getJob",
        "parameters": [
          {
            "description": "The job ID returned by `POST /execute`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartCategoriesListCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartCategoryProductsListCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartCollectionProductsListCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartEtaCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartHomeListCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartLocationResolveCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartLocationServiceabilityCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartLocationSuggestCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartProductGetCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartProductsSearchCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartSearchSuggestionsCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/JobFailedResponse"
                    }
                  ]
                }
              }
            },
            "description": "Completed or terminal job state.",
            "headers": {
              "x-ratelimit-limit": {
                "description": "Per-API-key request ceiling over the rolling window.",
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "x-ratelimit-remaining": {
                "description": "Requests remaining in the current window before throttling.",
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "x-ratelimit-reset": {
                "description": "Unix epoch milliseconds at which the current window resets.",
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                }
              }
            }
          },
          "202": {
            "content": {
              "application/json": {
                "example": {
                  "capability": "swiggy-instamart.categories.list",
                  "job_id": "00000000-0000-0000-0000-000000000001",
                  "platform": "swiggy-instamart",
                  "poll_after_ms": 2000,
                  "poll_url": "https://data.upscrape.com/jobs/00000000-0000-0000-0000-000000000001",
                  "request_id": "00000000-0000-0000-0000-000000000001",
                  "state": "running"
                },
                "schema": {
                  "$ref": "#/components/schemas/JobPendingResponse"
                }
              }
            },
            "description": "Job is still queued, running, or retrying.",
            "headers": {
              "x-ratelimit-limit": {
                "description": "Per-API-key request ceiling over the rolling window.",
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "x-ratelimit-remaining": {
                "description": "Requests remaining in the current window before throttling.",
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "x-ratelimit-reset": {
                "description": "Unix epoch milliseconds at which the current window resets.",
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnauthorizedError"
                }
              }
            },
            "description": "Unauthorized"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            },
            "description": "Job not found"
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "rate limit exceeded",
                    "retry_after_ms": 4200
                  },
                  "request_id": "safe-http-request-id"
                },
                "schema": {
                  "$ref": "#/components/schemas/RateLimitError"
                }
              }
            },
            "description": "The per-API-key rate limit has been exceeded. Clients should back off until `retry_after_ms` has elapsed (or `retry-after` seconds).",
            "headers": {
              "retry-after": {
                "description": "Seconds until the client may retry (ceiling of `retry_after_ms`).",
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "x-ratelimit-limit": {
                "description": "Per-API-key request ceiling over the rolling window.",
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "x-ratelimit-remaining": {
                "description": "Requests remaining in the current window before throttling.",
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "x-ratelimit-reset": {
                "description": "Unix epoch milliseconds at which the current window resets.",
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Poll a Swiggy Instamart job",
        "tags": [
          "Jobs"
        ]
      }
    },
    "/jobs/{id}/result": {
      "get": {
        "description": "Backward-compatible alias for `/jobs/{id}`.",
        "operationId": "swiggy-instamart_getJobResult",
        "parameters": [
          {
            "description": "The job ID returned by `POST /execute`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartCategoriesListCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartCategoryProductsListCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartCollectionProductsListCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartEtaCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartHomeListCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartLocationResolveCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartLocationServiceabilityCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartLocationSuggestCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartProductGetCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartProductsSearchCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/SwiggyInstamartSearchSuggestionsCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/JobFailedResponse"
                    }
                  ]
                }
              }
            },
            "description": "Completed or terminal job state.",
            "headers": {
              "x-ratelimit-limit": {
                "description": "Per-API-key request ceiling over the rolling window.",
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "x-ratelimit-remaining": {
                "description": "Requests remaining in the current window before throttling.",
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "x-ratelimit-reset": {
                "description": "Unix epoch milliseconds at which the current window resets.",
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                }
              }
            }
          },
          "202": {
            "content": {
              "application/json": {
                "example": {
                  "capability": "swiggy-instamart.categories.list",
                  "job_id": "00000000-0000-0000-0000-000000000001",
                  "platform": "swiggy-instamart",
                  "poll_after_ms": 2000,
                  "poll_url": "https://data.upscrape.com/jobs/00000000-0000-0000-0000-000000000001",
                  "request_id": "00000000-0000-0000-0000-000000000001",
                  "state": "running"
                },
                "schema": {
                  "$ref": "#/components/schemas/JobPendingResponse"
                }
              }
            },
            "description": "Job is still queued, running, or retrying.",
            "headers": {
              "x-ratelimit-limit": {
                "description": "Per-API-key request ceiling over the rolling window.",
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "x-ratelimit-remaining": {
                "description": "Requests remaining in the current window before throttling.",
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "x-ratelimit-reset": {
                "description": "Unix epoch milliseconds at which the current window resets.",
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnauthorizedError"
                }
              }
            },
            "description": "Unauthorized"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            },
            "description": "Job not found"
          },
          "429": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "rate_limited",
                    "message": "rate limit exceeded",
                    "retry_after_ms": 4200
                  },
                  "request_id": "safe-http-request-id"
                },
                "schema": {
                  "$ref": "#/components/schemas/RateLimitError"
                }
              }
            },
            "description": "The per-API-key rate limit has been exceeded. Clients should back off until `retry_after_ms` has elapsed (or `retry-after` seconds).",
            "headers": {
              "retry-after": {
                "description": "Seconds until the client may retry (ceiling of `retry_after_ms`).",
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "x-ratelimit-limit": {
                "description": "Per-API-key request ceiling over the rolling window.",
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "x-ratelimit-remaining": {
                "description": "Requests remaining in the current window before throttling.",
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "x-ratelimit-reset": {
                "description": "Unix epoch milliseconds at which the current window resets.",
                "schema": {
                  "minimum": 0,
                  "type": "integer"
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Poll a Swiggy Instamart job",
        "tags": [
          "Jobs"
        ]
      }
    }
  },
  "servers": [
    {
      "url": "https://data.upscrape.com"
    }
  ],
  "tags": [
    {
      "description": "Submit asynchronous capability runs.",
      "name": "Execution"
    },
    {
      "description": "Poll queued jobs for status and results.",
      "name": "Jobs"
    }
  ]
}