{
  "components": {
    "schemas": {
      "FlipkartSearchListingsInput": {
        "additionalProperties": false,
        "properties": {
          "filters": {
            "description": "Filter params from flipkart.search.categories, e.g. facets.brand[]=boAt; forwarded to Flipkart, not a strict guarantee for each returned row (including ads).",
            "items": {
              "maxLength": 200,
              "pattern": "^facets\\..+=.+",
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          },
          "max_pages": {
            "maximum": 12,
            "minimum": 1,
            "type": "integer"
          },
          "max_price": {
            "description": "Highest price in INR; forwarded to Flipkart, not a strict guarantee for each returned row (including ads).",
            "minimum": 0,
            "type": "integer"
          },
          "min_price": {
            "description": "Lowest price in INR; forwarded to Flipkart, not a strict guarantee for each returned row (including ads).",
            "minimum": 0,
            "type": "integer"
          },
          "page": {
            "maximum": 1000,
            "minimum": 1,
            "type": "integer"
          },
          "query": {
            "maxLength": 200,
            "pattern": ".*\\S.*",
            "type": "string"
          },
          "sort": {
            "description": "Result order (default relevance)",
            "enum": [
              "relevance",
              "popularity",
              "price_asc",
              "price_desc",
              "newest",
              "discount"
            ],
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "FlipkartCategoryProductsCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "flipkart.category.products"
            ],
            "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": [
              "flipkart"
            ],
            "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": {
                    "breadcrumbs": [
                      {
                        "name": "Home",
                        "url": "https://www.flipkart.com/"
                      },
                      {
                        "name": "Audio & Video",
                        "url": "https://www.flipkart.com/audio-video/pr?sid=0pm&marketplace=FLIPKART"
                      },
                      {
                        "name": "Headset",
                        "url": "https://www.flipkart.com/audio-video/headset/pr?sid=0pm,fcn&marketplace=FLIPKART"
                      }
                    ],
                    "category_id": "0pm/fcn/821",
                    "end_page": 1,
                    "filters_applied": [
                      "facets.price_range.from=Min,facets.price_range.to=2000"
                    ],
                    "has_more": true,
                    "listings": [
                      {
                        "assured": true,
                        "brand": "vivo",
                        "currency": "INR",
                        "discount_percent": 33,
                        "image_url": "https://rukmini1.flixcart.com/image/800/800/xif0q/headphone/2/v/s/-original-imahpqfwsfhtsz4h.jpeg?q=80",
                        "is_sponsored": true,
                        "listing_id": "LSTACCHPQ3MYSAGHJXANFDZ9J",
                        "mrp": 2999,
                        "page": 1,
                        "position": 1,
                        "price": 1999,
                        "product_id": "ACCHPQ3MYSAGHJXA",
                        "rating": 4.4,
                        "rating_count": 481,
                        "review_count": 221,
                        "title": "vivo Buds, 50Hrs Playback, Spatial Audio, Dual-Mic AI ENC, Dual-Device Pairing Bluetooth",
                        "url": "https://www.flipkart.com/[redacted:token]/p/itmd8347620a3cca?pid=ACCHPQ3MYSAGHJXA"
                      },
                      {
                        "assured": true,
                        "brand": "vivo",
                        "currency": "INR",
                        "discount_percent": 33,
                        "image_url": "https://rukmini1.flixcart.com/image/800/800/xif0q/headphone/q/3/y/-original-imahpqfxfekthwtn.jpeg?q=80",
                        "is_sponsored": true,
                        "listing_id": "LSTACCHPQ3MGSDXRGVZLPK9CA",
                        "mrp": 2999,
                        "page": 1,
                        "position": 2,
                        "price": 1999,
                        "product_id": "ACCHPQ3MGSDXRGVZ",
                        "rating": 4.4,
                        "rating_count": 481,
                        "review_count": 221,
                        "title": "vivo Buds, 50Hrs Playback, Spatial Audio, Dual-Mic AI ENC, Dual-Device Pairing Bluetooth",
                        "url": "https://www.flipkart.com/[redacted:token]/p/itm743e4f00add37?pid=ACCHPQ3MGSDXRGVZ"
                      },
                      {
                        "assured": false,
                        "brand": "boAt",
                        "currency": "INR",
                        "discount_percent": 75,
                        "image_url": "https://rukmini1.flixcart.com/image/800/800/xif0q/headphone/t/q/0/-original-imagzuzzrfgytsfz.jpeg?q=80",
                        "is_sponsored": true,
                        "listing_id": "LSTACCFZ95MY8SGZQRTXDKJLC",
                        "mrp": 3990,
                        "page": 1,
                        "position": 3,
                        "price": 999,
                        "product_id": "ACCFZ95MY8SGZQRT",
                        "rating": 4.2,
                        "rating_count": 688477,
                        "review_count": 48119,
                        "title": "boAt Rockerz 255 Pro+, 60H Battery, ASAP Charge, App Support Bluetooth",
                        "url": "https://www.flipkart.com/[redacted:token]/p/itm4174f29ad0389?pid=ACCFZ95MY8SGZQRT"
                      }
                    ],
                    "name": "Earphones",
                    "pages_fetched": 1,
                    "start_page": 1,
                    "total_products": 82620
                  }
                },
                "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"
      },
      "FlipkartSearchCategoriesCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "flipkart.search.categories"
            ],
            "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": [
              "flipkart"
            ],
            "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": {
                    "breadcrumbs": [
                      {
                        "name": "Home",
                        "url": "https://www.flipkart.com/"
                      },
                      {
                        "name": "Mobiles & Accessories",
                        "url": "https://www.flipkart.com/mobiles-accessories/pr?sid=tyy&marketplace=FLIPKART"
                      },
                      {
                        "name": "Mobiles",
                        "url": "https://www.flipkart.com/mobiles/pr?sid=tyy,4io&marketplace=FLIPKART"
                      }
                    ],
                    "categories": [
                      {
                        "category_id": "tyy",
                        "children": [
                          {
                            "category_id": "tyy/4io",
                            "has_children": false,
                            "matched_source": "facets",
                            "name": "Mobiles",
                            "path": "mobiles/pr?sid=tyy,4io",
                            "url": "https://www.flipkart.com/mobiles/pr?sid=tyy,4io&q=mobiles"
                          }
                        ],
                        "has_children": true,
                        "matched_source": "facets",
                        "name": "Mobiles & Accessories",
                        "path": "mobiles-accessories/pr?sid=tyy",
                        "url": "https://www.flipkart.com/mobiles-accessories/pr?sid=tyy&q=mobiles"
                      }
                    ],
                    "filters": [
                      {
                        "id": "brand",
                        "multi_select": true,
                        "name": "Brand",
                        "type": "options",
                        "value_count": 134,
                        "values": [
                          {
                            "count": 457,
                            "name": "Apple",
                            "param": "facets.brand[]=Apple",
                            "selected": false
                          },
                          {
                            "count": 36,
                            "name": "Google",
                            "param": "facets.brand[]=Google",
                            "selected": false
                          },
                          {
                            "count": 262,
                            "name": "MOTOROLA",
                            "param": "facets.brand[]=MOTOROLA",
                            "selected": false
                          }
                        ]
                      },
                      {
                        "id": "ram",
                        "multi_select": false,
                        "name": "Ram",
                        "type": "options",
                        "value_count": 7,
                        "values": [
                          {
                            "count": 549,
                            "name": "1 GB and Below",
                            "param": "facets.ram[]=1 GB and Below",
                            "selected": false
                          },
                          {
                            "count": 2217,
                            "name": "1GB and Below",
                            "param": "facets.ram[]=1GB and Below",
                            "selected": false
                          },
                          {
                            "count": 255,
                            "name": "2 GB",
                            "param": "facets.ram[]=2 GB",
                            "selected": false
                          }
                        ]
                      },
                      {
                        "id": "network_type",
                        "multi_select": false,
                        "name": "Network Type",
                        "type": "options",
                        "value_count": 6,
                        "values": [
                          {
                            "count": 5699,
                            "name": "2G",
                            "param": "facets.network_type[]=2G",
                            "selected": false
                          },
                          {
                            "count": 4519,
                            "name": "3G",
                            "param": "facets.network_type[]=3G",
                            "selected": false
                          },
                          {
                            "count": 4321,
                            "name": "4G",
                            "param": "facets.network_type[]=4G",
                            "selected": false
                          }
                        ]
                      }
                    ],
                    "query": "mobiles",
                    "source": "search.page",
                    "total_products": 7886
                  }
                },
                "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"
      },
      "FlipkartSearchSuggestionsCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "flipkart.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": [
              "flipkart"
            ],
            "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": {
                    "query": "iphone",
                    "suggestions": [
                      {
                        "rank": 1,
                        "store": "Mobiles",
                        "text": "iphone 18 pro",
                        "type": "QUERY_STORE",
                        "url": "https://www.flipkart.com/search?q=iphone+18+pro&sid=tyy,4io"
                      },
                      {
                        "rank": 2,
                        "store": "Mobiles",
                        "text": "iphone 17",
                        "type": "QUERY_STORE",
                        "url": "https://www.flipkart.com/search?q=iphone+17&sid=tyy,4io"
                      },
                      {
                        "rank": 3,
                        "text": "iphone 15",
                        "type": "QUERY",
                        "url": "https://www.flipkart.com/search?q=iphone+15"
                      }
                    ]
                  }
                },
                "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"
      },
      "JobPendingResponse": {
        "additionalProperties": false,
        "properties": {
          "capability": {
            "enum": [
              "flipkart.category.products",
              "flipkart.product.get",
              "flipkart.product.offers",
              "flipkart.product.reviews",
              "flipkart.product.sellers",
              "flipkart.search.categories",
              "flipkart.search.listings",
              "flipkart.search.suggestions"
            ],
            "type": "string"
          },
          "job_id": {
            "format": "uuid",
            "type": "string"
          },
          "platform": {
            "enum": [
              "flipkart"
            ],
            "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"
      },
      "FlipkartCategoryProductsInput": {
        "additionalProperties": false,
        "anyOf": [
          {
            "required": [
              "category_id"
            ]
          },
          {
            "required": [
              "url"
            ]
          }
        ],
        "properties": {
          "category_id": {
            "description": "Category id from flipkart.search.categories, e.g. 0pm/fcn/821",
            "pattern": "^[A-Za-z0-9]{2,6}(/[A-Za-z0-9]{2,6}){0,7}$",
            "type": "string"
          },
          "filters": {
            "description": "Filter params from flipkart.search.categories, e.g. facets.brand[]=boAt; forwarded to Flipkart, not a strict guarantee for each returned row (including ads).",
            "items": {
              "maxLength": 200,
              "pattern": "^facets\\..+=.+",
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          },
          "max_pages": {
            "maximum": 6,
            "minimum": 1,
            "type": "integer"
          },
          "max_price": {
            "description": "Highest price in INR; forwarded to Flipkart, not a strict guarantee for each returned row (including ads).",
            "minimum": 0,
            "type": "integer"
          },
          "min_price": {
            "description": "Lowest price in INR; forwarded to Flipkart, not a strict guarantee for each returned row (including ads).",
            "minimum": 0,
            "type": "integer"
          },
          "page": {
            "maximum": 1000,
            "minimum": 1,
            "type": "integer"
          },
          "sort": {
            "description": "Result order (default relevance)",
            "enum": [
              "relevance",
              "popularity",
              "price_asc",
              "price_desc",
              "newest",
              "discount"
            ],
            "type": "string"
          },
          "url": {
            "description": "Flipkart category URL (…/pr?sid=…)",
            "maxLength": 2048,
            "pattern": "^https://([A-Za-z0-9-]+\\.)?flipkart\\.com/.+/pr\\?.*sid=.+",
            "type": "string"
          }
        },
        "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"
      },
      "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"
      },
      "FlipkartSearchSuggestionsInput": {
        "additionalProperties": false,
        "properties": {
          "max_results": {
            "maximum": 50,
            "minimum": 1,
            "type": "integer"
          },
          "query": {
            "maxLength": 200,
            "pattern": ".*\\S.*",
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "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"
      },
      "FlipkartCategoryProductsExecuteRequest": {
        "additionalProperties": false,
        "description": "Browse products by Flipkart category ID or URL, with prices, ratings, upstream filters and bounded pagination.",
        "example": {
          "capability": "flipkart.category.products",
          "input": {
            "category_id": "0pm/fcn/821",
            "max_price": 2000,
            "sort": "popularity"
          }
        },
        "properties": {
          "capability": {
            "enum": [
              "flipkart.category.products"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/FlipkartCategoryProductsInput"
          },
          "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": 45000,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "capability",
          "input"
        ],
        "type": "object"
      },
      "FlipkartSearchSuggestionsExecuteRequest": {
        "additionalProperties": false,
        "description": "Return typed autocomplete records or current query-matched product suggestions when dedicated autocomplete is unavailable.",
        "example": {
          "capability": "flipkart.search.suggestions",
          "input": {
            "max_results": 10,
            "query": "iphone"
          }
        },
        "properties": {
          "capability": {
            "enum": [
              "flipkart.search.suggestions"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/FlipkartSearchSuggestionsInput"
          },
          "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": 30000,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "capability",
          "input"
        ],
        "type": "object"
      },
      "FlipkartSearchCategoriesInput": {
        "additionalProperties": false,
        "properties": {
          "include_filters": {
            "description": "Return result filters (brand, price, rating ...) alongside categories (default true)",
            "type": "boolean"
          },
          "max_filter_values": {
            "description": "Most values returned per filter (default 10); value_count gives the full number",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "max_results": {
            "description": "Most child categories returned at each level of the tree (default 20)",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "query": {
            "maxLength": 200,
            "pattern": ".*\\S.*",
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "FlipkartSearchListingsExecuteRequest": {
        "additionalProperties": false,
        "description": "Search Flipkart listings with prices, ratings, sponsored labels, upstream filters and bounded pagination.",
        "example": {
          "capability": "flipkart.search.listings",
          "input": {
            "max_pages": 1,
            "page": 1,
            "query": "iphone"
          }
        },
        "properties": {
          "capability": {
            "enum": [
              "flipkart.search.listings"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/FlipkartSearchListingsInput"
          },
          "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": 45000,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "capability",
          "input"
        ],
        "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"
      },
      "FlipkartProductGetExecuteRequest": {
        "additionalProperties": false,
        "description": "Return current Flipkart product detail, price, availability, ratings, policies, and attributes.",
        "example": {
          "capability": "flipkart.product.get",
          "input": {
            "url": "https://www.flipkart.com/boat-type-c-3-1-5-m-type-c-a320/p/itma010289de41cb?pid=ACCFUGAC4WYMSHYE"
          }
        },
        "properties": {
          "capability": {
            "enum": [
              "flipkart.product.get"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/FlipkartProductGetInput"
          },
          "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": 45000,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "capability",
          "input"
        ],
        "type": "object"
      },
      "FlipkartProductReviewsCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "flipkart.product.reviews"
            ],
            "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": [
              "flipkart"
            ],
            "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": {
                    "aspects": [
                      {
                        "id": "overall",
                        "name": "Overall"
                      },
                      {
                        "id": "b785c1c8-07c1-4322-a8ea-967fa41b4207",
                        "name": "Quality"
                      },
                      {
                        "id": "9dd0f8dd-6013-4105-a073-960b7e0358d4",
                        "name": "Fast Charging"
                      }
                    ],
                    "end_page": 1,
                    "has_more": true,
                    "pages_fetched": 1,
                    "product_id": "ACCFUGAC4WYMSHYE",
                    "reviews": [
                      {
                        "comment": "This cable is good for it's price range. It gives fast charging to my phone as well as data syncing is also fast. Build quality is awesome, cable length is good. 2yr of warranty makes it a deal breaker.",
                        "created_at": "2020-12",
                        "created_text": "Dec, 2020",
                        "helpful_votes": 154,
                        "rating": 4,
                        "review_id": "11510210-ee5b-4846-a6ac-535af98695dc",
                        "title": "Worth the money",
                        "verified_purchase": true
                      },
                      {
                        "comment": "Good!!",
                        "created_at": "2020-10",
                        "created_text": "Oct, 2020",
                        "helpful_votes": 14,
                        "rating": 4,
                        "review_id": "675b7135-6706-4e5b-a842-06b10aa234cc",
                        "title": "Worth the money",
                        "verified_purchase": true
                      },
                      {
                        "comment": "Excellent build quality. I have used boat cables for more than 3 years (Micro Usb one) without any issue so it's a no brainer that I have decided to buy this one. Mi fast charging ( Turbo charging) working well with my Redmi note 10. Excellent product.",
                        "created_at": "2021-05",
                        "created_text": "May, 2021",
                        "helpful_votes": 127,
                        "rating": 5,
                        "review_id": "dd836ca5-5c2c-4021-91f4-b2a392d92bf7",
                        "title": "Great product",
                        "verified_purchase": true
                      }
                    ],
                    "sort": "most_helpful",
                    "start_page": 1,
                    "verified_only": false
                  }
                },
                "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"
      },
      "FlipkartProductReviewsExecuteRequest": {
        "additionalProperties": false,
        "description": "Return public product reviews with ratings and stable review identity over bounded pagination.",
        "example": {
          "capability": "flipkart.product.reviews",
          "input": {
            "url": "https://www.flipkart.com/boat-type-c-3-1-5-m-type-c-a320/p/itma010289de41cb?pid=ACCFUGAC4WYMSHYE"
          }
        },
        "properties": {
          "capability": {
            "enum": [
              "flipkart.product.reviews"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/FlipkartProductReviewsInput"
          },
          "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": 45000,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "capability",
          "input"
        ],
        "type": "object"
      },
      "FlipkartSearchListingsCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "flipkart.search.listings"
            ],
            "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": [
              "flipkart"
            ],
            "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": {
                    "end_page": 1,
                    "has_more": true,
                    "listings": [
                      {
                        "assured": true,
                        "brand": "Apple",
                        "currency": "INR",
                        "discount_percent": 3,
                        "image_url": "https://rukminim1.flixcart.com/image/800/800/xif0q/mobile/h/d/9/-original-imagtc2qzgnnuhxh.jpeg?q=80&crop=false",
                        "is_sponsored": false,
                        "listing_id": "LSTMOBGTAGPTB3VS24WCTBCFM",
                        "mrp": 59900,
                        "page": 1,
                        "position": 1,
                        "price": 57749,
                        "product_id": "MOBGTAGPTB3VS24W",
                        "rating": 4.6,
                        "rating_count": 247095,
                        "review_count": 9623,
                        "title": "Apple iPhone 15 (Black, 128 GB)",
                        "url": "https://www.flipkart.com/apple-iphone-15-black-128-gb/p/itm6ac6485515ae4?pid=MOBGTAGPTB3VS24W"
                      },
                      {
                        "assured": true,
                        "brand": "Apple",
                        "currency": "INR",
                        "discount_percent": 1,
                        "image_url": "https://rukminim1.flixcart.com/image/800/800/xif0q/mobile/n/v/e/-original-imahft5gfchxyewy.jpeg?q=80&crop=false",
                        "is_sponsored": false,
                        "listing_id": "LSTMOBHFN6YNAG4ZTHSWUQQUI",
                        "mrp": 82900,
                        "page": 1,
                        "position": 2,
                        "price": 81900,
                        "product_id": "MOBHFN6YNAG4ZTHS",
                        "rating": 4.6,
                        "rating_count": 22617,
                        "review_count": 1660,
                        "title": "Apple iPhone 17 (Sage, 256 GB)",
                        "url": "https://www.flipkart.com/apple-iphone-17-sage-256-gb/p/itmcfa57eff7729c?pid=MOBHFN6YNAG4ZTHS"
                      },
                      {
                        "assured": true,
                        "brand": "Apple",
                        "currency": "INR",
                        "discount_percent": 5,
                        "image_url": "https://rukminim1.flixcart.com/image/800/800/xif0q/mobile/h/u/i/-original-imahgfmyczqxhtm2.jpeg?q=80&crop=false",
                        "is_sponsored": false,
                        "listing_id": "LSTMOBH4DQF849HCG6GXHBPXY",
                        "mrp": 69900,
                        "page": 1,
                        "position": 3,
                        "price": 65900,
                        "product_id": "MOBH4DQF849HCG6G",
                        "rating": 4.6,
                        "rating_count": 196318,
                        "review_count": 8459,
                        "title": "Apple iPhone 16 (White, 128 GB)",
                        "url": "https://www.flipkart.com/apple-iphone-16-white-128-gb/p/itm7c0281cd247be?pid=MOBH4DQF849HCG6G"
                      }
                    ],
                    "pages_fetched": 1,
                    "query": "iphone",
                    "start_page": 1
                  }
                },
                "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"
      },
      "FlipkartProductSellersExecuteRequest": {
        "additionalProperties": false,
        "description": "Return sellers associated with a product, including available public seller information.",
        "example": {
          "capability": "flipkart.product.sellers",
          "input": {
            "pincode": "560001",
            "url": "https://www.flipkart.com/boat-type-c-3-1-5-m-type-c-a320/p/itma010289de41cb?pid=ACCFUGAC4WYMSHYE"
          }
        },
        "properties": {
          "capability": {
            "enum": [
              "flipkart.product.sellers"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/FlipkartProductSellersInput"
          },
          "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": 45000,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "capability",
          "input"
        ],
        "type": "object"
      },
      "FlipkartProductReviewsInput": {
        "additionalProperties": false,
        "anyOf": [
          {
            "required": [
              "url"
            ]
          },
          {
            "required": [
              "product_id"
            ]
          }
        ],
        "properties": {
          "aspect": {
            "description": "Only reviews about one aspect of the product, e.g. Camera; the output lists the product's aspects",
            "maxLength": 100,
            "type": "string"
          },
          "max_pages": {
            "maximum": 5,
            "minimum": 1,
            "type": "integer"
          },
          "page": {
            "maximum": 1000,
            "minimum": 1,
            "type": "integer"
          },
          "product_id": {
            "description": "Flipkart product id (pid), e.g. MOBGTAGPYYWZRUJX; used when url is not given",
            "pattern": "^[A-Za-z0-9]{8,24}$",
            "type": "string"
          },
          "sort": {
            "description": "Review order (default most_helpful)",
            "enum": [
              "most_helpful",
              "most_recent",
              "positive_first",
              "negative_first"
            ],
            "type": "string"
          },
          "url": {
            "maxLength": 2048,
            "pattern": "^https://([A-Za-z0-9-]+\\.)?flipkart\\.com/.+/p/.+",
            "type": "string"
          },
          "verified_only": {
            "description": "Only reviews from certified buyers",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "FlipkartSearchCategoriesExecuteRequest": {
        "additionalProperties": false,
        "description": "Return hierarchical category and subcategory candidates discovered from listing pages.",
        "example": {
          "capability": "flipkart.search.categories",
          "input": {
            "max_results": 20,
            "query": "mobiles"
          }
        },
        "properties": {
          "capability": {
            "enum": [
              "flipkart.search.categories"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/FlipkartSearchCategoriesInput"
          },
          "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": 30000,
            "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"
      },
      "FlipkartProductOffersCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "flipkart.product.offers"
            ],
            "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": [
              "flipkart"
            ],
            "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": {
                    "end_page": 1,
                    "has_more": false,
                    "offers": [
                      {
                        "benefit": "₹5 off",
                        "cashback": true,
                        "currency": "INR",
                        "description": "Flipkart SBI. Credit Card. ₹5 off. Cashback offer. Cashback will be credited to your card/bank account after the return period ends.. Valid till Dec 30, 2026, 11:59 PM and until stock lasts.",
                        "discount_amount": 5,
                        "is_sponsored": false,
                        "offer_id": "nb:mp:08zg8xlg30",
                        "offer_type": "bank_offer",
                        "payment_method": "Credit Card",
                        "provider": "Flipkart SBI",
                        "valid_until": "2026-12-30"
                      },
                      {
                        "benefit": "15% off",
                        "currency": "INR",
                        "description": "Unlock Boat coupon • 15% off. 15% off on next Boat Projector purchase. Coupon will be valid till 30 November 2026.. Applicable for 1 purchase per user.",
                        "discount_percent": 15,
                        "is_sponsored": false,
                        "offer_id": "nb:mp:08ty3i0l24",
                        "offer_type": "purchase_benefit",
                        "valid_until": "2026-11-30"
                      }
                    ],
                    "pages_fetched": 1,
                    "product_id": "ACCFUGAC4WYMSHYE",
                    "start_page": 1
                  }
                },
                "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"
      },
      "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"
          }
        ]
      },
      "FlipkartProductGetCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "flipkart.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": [
              "flipkart"
            ],
            "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": {
                    "aspect_ratings": [
                      {
                        "name": "Quality",
                        "rating": 4
                      },
                      {
                        "name": "Fast Charging",
                        "rating": 3.8
                      },
                      {
                        "name": "Cable Length",
                        "rating": 4.4
                      }
                    ],
                    "assured": true,
                    "attributes": {
                      "cable_length": "1.5 m",
                      "color": "Black"
                    },
                    "availability": "instock",
                    "brand": "boAt",
                    "category_path": [
                      "Mobiles & Accessories",
                      "Mobile Accessories",
                      "Mobile Cables"
                    ],
                    "cod_available": false,
                    "currency": "INR",
                    "delivery": [
                      {
                        "fee": 40,
                        "max_days": 3,
                        "min_days": 3,
                        "type": "regular"
                      }
                    ],
                    "description": "Buy boAt Type C 3 A 1.5 m Type-c A320 only for Rs. 499.0 from Flipkart.com. Only Genuine Products. 30 Day Replacement Guarantee. Free Shipping. Cash On Delivery!",
                    "discount_percent": 80,
                    "fulfilled_by_flipkart": true,
                    "gst_invoice": true,
                    "image_count": 5,
                    "image_urls": [
                      "https://rukmini1.flixcart.com/image/1500/1500/xif0q/data-cable/usb-type-c-cable/h/y/e/[redacted:token].png?q=70",
                      "https://rukmini1.flixcart.com/image/1500/1500/kekadu80/data-cable/usb-type-c-cable/h/y/e/[redacted:token].jpeg?q=70",
                      "https://rukmini1.flixcart.com/image/1500/1500/kekadu80/data-cable/usb-type-c-cable/h/y/e/[redacted:token].jpeg?q=70"
                    ],
                    "listing_id": "LSTACCFUGAC4WYMSHYEF6FLSE",
                    "listing_state": "current",
                    "mrp": 499,
                    "no_cost_emi": false,
                    "price": 99,
                    "price_with_best_offer": 94,
                    "product_id": "ACCFUGAC4WYMSHYE",
                    "rating": 4.2,
                    "rating_breakdown": {
                      "1": 5802,
                      "2": 2867,
                      "3": 7329,
                      "4": 20079,
                      "5": 44284
                    },
                    "rating_count": 80361,
                    "return_policy": "7_day_return_elec_eq",
                    "review_count": 6488,
                    "seller_id": "92fa2eec41634a72",
                    "specifications": [
                      {
                        "name": "In The Box",
                        "specs": [
                          {
                            "name": "Sales Package",
                            "value": "1 Type-C Cable, Warranty Card"
                          },
                          {
                            "name": "Number of Contents in Sales Package",
                            "value": "1"
                          }
                        ]
                      },
                      {
                        "name": "Supported Video Features",
                        "specs": [
                          {
                            "name": "3D Support",
                            "value": "No"
                          }
                        ]
                      },
                      {
                        "name": "General",
                        "specs": [
                          {
                            "name": "Brand",
                            "value": "boAt"
                          },
                          {
                            "name": "Type",
                            "value": "Type C"
                          },
                          {
                            "name": "Cable Type",
                            "value": "USB Type-C 480 Mbps Speed"
                          }
                        ]
                      }
                    ],
                    "title": "boAt Type C 3 A 1.5 m Type-c A320",
                    "url": "https://www.flipkart.com/boat-type-c-3-1-5-m-type-c-a320/p/itma010289de41cb?pid=ACCFUGAC4WYMSHYE",
                    "variants": [
                      {
                        "name": "Color",
                        "options": [
                          {
                            "availability": "in_stock",
                            "name": "Black",
                            "product_id": "ACCFUGAC4WYMSHYE",
                            "selected": true,
                            "url": "https://www.flipkart.com/boat-type-c-3-1-5-m-type-c-a320/p/itma010289de41cb?pid=ACCFUGAC4WYMSHYE"
                          },
                          {
                            "availability": "in_stock",
                            "name": "Carbon Black, Grey",
                            "product_id": "ACCHDG35XRYXD8GT",
                            "selected": false,
                            "url": "https://www.flipkart.com/boat-type-c-1-2-m-65w/p/itmcdeadf2f8c089?pid=ACCHDG35XRYXD8GT"
                          },
                          {
                            "availability": "in_stock",
                            "name": "Martian Red",
                            "product_id": "ACCHDG35HPXZAHTJ",
                            "selected": false,
                            "url": "https://www.flipkart.com/boat-type-c-1-2-m-65w/p/itmcdeadf2f8c089?pid=ACCHDG35HPXZAHTJ"
                          }
                        ],
                        "selected": "Black"
                      },
                      {
                        "name": "Cable Length",
                        "options": [
                          {
                            "availability": "in_stock",
                            "name": "1.5 m",
                            "product_id": "ACCFUGAC4WYMSHYE",
                            "selected": true,
                            "url": "https://www.flipkart.com/boat-type-c-3-1-5-m-type-c-a320/p/itma010289de41cb?pid=ACCFUGAC4WYMSHYE"
                          }
                        ],
                        "selected": "1.5 m"
                      }
                    ]
                  }
                },
                "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"
      },
      "JobFailedResponse": {
        "additionalProperties": false,
        "properties": {
          "capability": {
            "enum": [
              "flipkart.category.products",
              "flipkart.product.get",
              "flipkart.product.offers",
              "flipkart.product.reviews",
              "flipkart.product.sellers",
              "flipkart.search.categories",
              "flipkart.search.listings",
              "flipkart.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": [
              "flipkart"
            ],
            "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"
      },
      "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"
      },
      "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"
      },
      "FlipkartProductSellersCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "flipkart.product.sellers"
            ],
            "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": [
              "flipkart"
            ],
            "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": {
                    "end_page": 1,
                    "has_more": false,
                    "location": {
                      "city": "Bangalore",
                      "message": "Currently out of stock for",
                      "pincode": "560001",
                      "reason": "NO_SERVICEABLE_SELLER",
                      "serviceable": false
                    },
                    "pages_fetched": 1,
                    "product_id": "ACCFUGAC4WYMSHYE",
                    "sellers": [
                      {
                        "currency": "INR",
                        "listing_id": "LSTACCFUGAC4WYMSHYEF6FLSE",
                        "name": "MPDSLERetail",
                        "price": 129,
                        "product_quality_score": 4.5,
                        "rating": "4.4",
                        "seller_id": "92fa2eec41634a72",
                        "speed_reliability_score": 4,
                        "trust_status": "unknown",
                        "trusted": false
                      },
                      {
                        "currency": "INR",
                        "listing_id": "LSTACCFUGAC4WYMSHYEOXI6YN",
                        "name": "RetailNet",
                        "price": 129,
                        "product_quality_score": 4.4,
                        "rating": "4.3",
                        "seller_id": "d591418b408940a0",
                        "speed_reliability_score": 4,
                        "trust_status": "unknown",
                        "trusted": false
                      }
                    ],
                    "start_page": 1
                  }
                },
                "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"
      },
      "FlipkartProductOffersInput": {
        "additionalProperties": false,
        "anyOf": [
          {
            "required": [
              "url"
            ]
          },
          {
            "required": [
              "product_id"
            ]
          }
        ],
        "properties": {
          "include_promoted": {
            "type": "boolean"
          },
          "max_pages": {
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "page": {
            "maximum": 1000,
            "minimum": 1,
            "type": "integer"
          },
          "product_id": {
            "description": "Flipkart product id (pid), e.g. MOBGTAGPYYWZRUJX; used when url is not given",
            "pattern": "^[A-Za-z0-9]{8,24}$",
            "type": "string"
          },
          "url": {
            "maxLength": 2048,
            "pattern": "^https://([A-Za-z0-9-]+\\.)?flipkart\\.com/.+/p/.+",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ExecuteAcceptedResponse": {
        "additionalProperties": false,
        "properties": {
          "capability": {
            "enum": [
              "flipkart.category.products",
              "flipkart.product.get",
              "flipkart.product.offers",
              "flipkart.product.reviews",
              "flipkart.product.sellers",
              "flipkart.search.categories",
              "flipkart.search.listings",
              "flipkart.search.suggestions"
            ],
            "type": "string"
          },
          "coalesced": {
            "type": "boolean"
          },
          "job_id": {
            "format": "uuid",
            "type": "string"
          },
          "platform": {
            "enum": [
              "flipkart"
            ],
            "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"
      },
      "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": [
              "flipkart.category.products",
              "flipkart.product.get",
              "flipkart.product.offers",
              "flipkart.product.reviews",
              "flipkart.product.sellers",
              "flipkart.search.categories",
              "flipkart.search.listings",
              "flipkart.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": [
              "flipkart"
            ],
            "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"
      },
      "FlipkartProductOffersExecuteRequest": {
        "additionalProperties": false,
        "description": "Return product offers and purchase benefits with their stated conditions.",
        "example": {
          "capability": "flipkart.product.offers",
          "input": {
            "include_promoted": true,
            "url": "https://www.flipkart.com/boat-type-c-3-1-5-m-type-c-a320/p/itma010289de41cb?pid=ACCFUGAC4WYMSHYE"
          }
        },
        "properties": {
          "capability": {
            "enum": [
              "flipkart.product.offers"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/FlipkartProductOffersInput"
          },
          "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": 45000,
            "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"
      },
      "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"
      },
      "FlipkartProductSellersInput": {
        "additionalProperties": false,
        "anyOf": [
          {
            "required": [
              "url"
            ]
          },
          {
            "required": [
              "product_id"
            ]
          }
        ],
        "properties": {
          "area": {
            "type": "string"
          },
          "country_code": {
            "type": "string"
          },
          "location_query": {
            "type": "string"
          },
          "pincode": {
            "description": "6-digit Indian PIN code; changes which sellers deliver and the delivery date",
            "pattern": "^[1-9][0-9]{5}$",
            "type": "string"
          },
          "product_id": {
            "description": "Flipkart product id (pid), e.g. MOBGTAGPYYWZRUJX; used when url is not given",
            "pattern": "^[A-Za-z0-9]{8,24}$",
            "type": "string"
          },
          "url": {
            "maxLength": 2048,
            "pattern": "^https://([A-Za-z0-9-]+\\.)?flipkart\\.com/.+/p/.+",
            "type": "string"
          }
        },
        "type": "object"
      },
      "FlipkartProductGetInput": {
        "additionalProperties": false,
        "anyOf": [
          {
            "required": [
              "url"
            ]
          },
          {
            "required": [
              "product_id"
            ]
          }
        ],
        "properties": {
          "pincode": {
            "description": "6-digit Indian PIN code; adds location: serviceability, seller count and this listing's delivery date",
            "pattern": "^[1-9][0-9]{5}$",
            "type": "string"
          },
          "product_id": {
            "description": "Flipkart product id (pid), e.g. MOBGTAGPYYWZRUJX; used when url is not given",
            "pattern": "^[A-Za-z0-9]{8,24}$",
            "type": "string"
          },
          "url": {
            "maxLength": 2048,
            "pattern": "^https://([A-Za-z0-9-]+\\.)?flipkart\\.com/.+/p/.+",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "securitySchemes": {
      "BearerAuth": {
        "bearerFormat": "API Key",
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "description": "Get Flipkart search results, product prices, ratings, reviews, sellers and bank offers as clean JSON. Search by keyword or category, or read one product by its URL. No Flipkart account needed.\nThis spec includes only the live `Flipkart Commerce` capabilities exposed by Upscrape.\nExecution uses the generic `POST /execute` endpoint and job polling uses `GET /jobs/{id}`.\nSupported capabilities: `flipkart.category.products`, `flipkart.product.get`, `flipkart.product.offers`, `flipkart.product.reviews`, `flipkart.product.sellers`, `flipkart.search.categories`, `flipkart.search.listings`, `flipkart.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": "Flipkart Commerce 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": "flipkart_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": "flipkart.category.products",
                "input": {
                  "category_id": "0pm/fcn/821",
                  "max_price": 2000,
                  "sort": "popularity"
                }
              },
              "schema": {
                "discriminator": {
                  "mapping": {
                    "flipkart.category.products": "#/components/schemas/FlipkartCategoryProductsExecuteRequest",
                    "flipkart.product.get": "#/components/schemas/FlipkartProductGetExecuteRequest",
                    "flipkart.product.offers": "#/components/schemas/FlipkartProductOffersExecuteRequest",
                    "flipkart.product.reviews": "#/components/schemas/FlipkartProductReviewsExecuteRequest",
                    "flipkart.product.sellers": "#/components/schemas/FlipkartProductSellersExecuteRequest",
                    "flipkart.search.categories": "#/components/schemas/FlipkartSearchCategoriesExecuteRequest",
                    "flipkart.search.listings": "#/components/schemas/FlipkartSearchListingsExecuteRequest",
                    "flipkart.search.suggestions": "#/components/schemas/FlipkartSearchSuggestionsExecuteRequest"
                  },
                  "propertyName": "capability"
                },
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/FlipkartCategoryProductsExecuteRequest"
                  },
                  {
                    "$ref": "#/components/schemas/FlipkartProductGetExecuteRequest"
                  },
                  {
                    "$ref": "#/components/schemas/FlipkartProductOffersExecuteRequest"
                  },
                  {
                    "$ref": "#/components/schemas/FlipkartProductReviewsExecuteRequest"
                  },
                  {
                    "$ref": "#/components/schemas/FlipkartProductSellersExecuteRequest"
                  },
                  {
                    "$ref": "#/components/schemas/FlipkartSearchCategoriesExecuteRequest"
                  },
                  {
                    "$ref": "#/components/schemas/FlipkartSearchListingsExecuteRequest"
                  },
                  {
                    "$ref": "#/components/schemas/FlipkartSearchSuggestionsExecuteRequest"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/FlipkartCategoryProductsCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/FlipkartProductGetCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/FlipkartProductOffersCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/FlipkartProductReviewsCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/FlipkartProductSellersCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/FlipkartSearchCategoriesCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/FlipkartSearchListingsCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/FlipkartSearchSuggestionsCompletedJob"
                    },
                    {
                      "$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": "flipkart.category.products",
                  "job_id": "00000000-0000-0000-0000-000000000001",
                  "platform": "flipkart",
                  "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 Flipkart Commerce capability run",
        "tags": [
          "Execution"
        ]
      }
    },
    "/jobs/{id}": {
      "get": {
        "description": "Get job status and result",
        "operationId": "flipkart_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/FlipkartCategoryProductsCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/FlipkartProductGetCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/FlipkartProductOffersCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/FlipkartProductReviewsCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/FlipkartProductSellersCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/FlipkartSearchCategoriesCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/FlipkartSearchListingsCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/FlipkartSearchSuggestionsCompletedJob"
                    },
                    {
                      "$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": "flipkart.category.products",
                  "job_id": "00000000-0000-0000-0000-000000000001",
                  "platform": "flipkart",
                  "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 Flipkart Commerce job",
        "tags": [
          "Jobs"
        ]
      }
    },
    "/jobs/{id}/result": {
      "get": {
        "description": "Backward-compatible alias for `/jobs/{id}`.",
        "operationId": "flipkart_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/FlipkartCategoryProductsCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/FlipkartProductGetCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/FlipkartProductOffersCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/FlipkartProductReviewsCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/FlipkartProductSellersCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/FlipkartSearchCategoriesCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/FlipkartSearchListingsCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/FlipkartSearchSuggestionsCompletedJob"
                    },
                    {
                      "$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": "flipkart.category.products",
                  "job_id": "00000000-0000-0000-0000-000000000001",
                  "platform": "flipkart",
                  "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 Flipkart Commerce 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"
    }
  ]
}