{
  "components": {
    "schemas": {
      "ApolloPharmacyProductSubstitutesCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "apollo-pharmacy.product.substitutes"
            ],
            "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": [
              "apollo-pharmacy"
            ],
            "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": {
                    "item_count": 3,
                    "pincode": "110001",
                    "products": [
                      {
                        "availability": "in_stock",
                        "currency": "INR",
                        "delivery_eta": "3 hr",
                        "discount_percent": 35,
                        "image_url": "https://images.apollo247.in/pub/media/catalog/product/s/k/sku__mal0026.jpg",
                        "manufacturer": "Abbott India Ltd",
                        "mrp": 21,
                        "name": "Malidens 650 mg Tablet 10's",
                        "pack_form": "Strip",
                        "pack_size": "10",
                        "prescription_required": false,
                        "price": 13.65,
                        "product_form": "Tablet",
                        "product_id": "33215",
                        "sku": "MAL0026",
                        "subcategory": "C.N.S Drugs",
                        "unit_price": "₹1.36/unit",
                        "url": "https://www.apollopharmacy.in/otc/malidens-650-mg-tablet-10-s"
                      },
                      {
                        "availability": "in_stock",
                        "currency": "INR",
                        "delivery_eta": "3 hr",
                        "image_url": "https://images.apollo247.in/pub/media/catalog/product/L/A/LAN0003_1_1.jpg",
                        "manufacturer": "Hetero Drugs Ltd",
                        "mrp": 21,
                        "name": "Lanol ER Tablet 10's",
                        "pack_form": "Strip",
                        "pack_size": "10",
                        "prescription_required": true,
                        "price": 21,
                        "product_form": "Tablet",
                        "product_id": "24593",
                        "sku": "LAN0003",
                        "subcategory": "C.N.S Drugs",
                        "unit_price": "₹2.10/unit",
                        "url": "https://www.apollopharmacy.in/otc/lanol-er-tablet"
                      },
                      {
                        "availability": "in_stock",
                        "currency": "INR",
                        "delivery_eta": "3 hr",
                        "image_url": "https://images.apollo247.in/pub/media/catalog/product/D/O/DOL0026_1_1.jpg",
                        "manufacturer": "Micro Labs Ltd",
                        "mrp": 32,
                        "name": "Dolo-650 Tablet 15's",
                        "pack_form": "Strip",
                        "pack_size": "15",
                        "prescription_required": false,
                        "price": 32,
                        "product_form": "Tablet",
                        "product_id": "54252",
                        "sku": "DOL0026",
                        "subcategory": "C.N.S Drugs",
                        "unit_price": "₹2.13/unit",
                        "url": "https://www.apollopharmacy.in/otc/dolo-650mg-tablet-15-s"
                      }
                    ],
                    "sku": "PAC0003"
                  }
                },
                "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"
      },
      "ApolloPharmacyBrandProductsExecuteRequest": {
        "additionalProperties": false,
        "description": "Walk a public Apollo Pharmacy brand listing with its total item count and each product's price and MRP.",
        "example": {
          "capability": "apollo-pharmacy.brand.products",
          "input": {
            "page": 1,
            "slug": "himalaya"
          }
        },
        "properties": {
          "capability": {
            "enum": [
              "apollo-pharmacy.brand.products"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/ApolloPharmacyBrandProductsInput"
          },
          "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": 60000,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "capability",
          "input"
        ],
        "type": "object"
      },
      "ApolloPharmacyCategoriesListCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "apollo-pharmacy.categories.list"
            ],
            "type": "string"
          },
          "completed_at": {
            "anyOf": [
              {
                "description": "When the source data was read and the job completed (ISO 8601 UTC). This is the observation time for the returned data, to the job's precision, not a per-item upstream timestamp. Null unless the job completed.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "job_id": {
            "format": "uuid",
            "type": "string"
          },
          "outcome": {
            "description": "Truthful module completion detail; status is complete unless the module reports partial or incomplete output.",
            "type": "object"
          },
          "platform": {
            "enum": [
              "apollo-pharmacy"
            ],
            "type": "string"
          },
          "request_id": {
            "format": "uuid",
            "type": "string"
          },
          "results": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "data": {
                  "description": "Raw capability output. Its shape may evolve with the upstream source; the example is illustrative, not a compatibility guarantee.",
                  "example": {
                    "categories": [
                      {
                        "children": [
                          {
                            "id": "681",
                            "name": "Personal Care",
                            "slug": "apollo-personal-care",
                            "url": "https://www.apollopharmacy.in/shop-by-category/apollo-personal-care"
                          },
                          {
                            "id": "1154",
                            "name": "Baby Care",
                            "slug": "apollo-baby-care",
                            "url": "https://www.apollopharmacy.in/shop-by-category/apollo-baby-care"
                          }
                        ],
                        "id": "680",
                        "image_url": "https://images.apollo247.in/pub/media/catalog/category/apollo_products_1.jpg",
                        "name": "Apollo Products",
                        "slug": "apollo-products",
                        "url": "https://www.apollopharmacy.in/shop-by-category/apollo-products"
                      },
                      {
                        "children": [
                          {
                            "id": "25",
                            "image_url": "https://images.apollo247.in/pub/media/catalog/category/baby_diapering.jpg",
                            "name": "Diapering",
                            "slug": "diapering",
                            "url": "https://www.apollopharmacy.in/shop-by-category/diapering"
                          },
                          {
                            "id": "6286",
                            "name": "Diaper By Weight",
                            "slug": "diaper-by-weight",
                            "url": "https://www.apollopharmacy.in/shop-by-category/diaper-by-weight"
                          }
                        ],
                        "id": "24",
                        "image_url": "https://images.apollo247.in/pub/media/catalog/category/baby_care_1.jpg",
                        "name": "Baby Care",
                        "slug": "baby-care",
                        "url": "https://www.apollopharmacy.in/shop-by-category/baby-care"
                      }
                    ],
                    "total": 267
                  }
                },
                "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"
      },
      "ApolloPharmacyProductOffersExecuteRequest": {
        "additionalProperties": false,
        "description": "Read the coupons, bank offers and best payable price Apollo Pharmacy shows for a product quantity.",
        "example": {
          "capability": "apollo-pharmacy.product.offers",
          "input": {
            "quantity": 1,
            "sku": "PAC0003"
          }
        },
        "properties": {
          "capability": {
            "enum": [
              "apollo-pharmacy.product.offers"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/ApolloPharmacyProductOffersInput"
          },
          "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"
      },
      "ApolloPharmacyProductGetInput": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false,
        "oneOf": [
          {
            "required": [
              "sku"
            ]
          },
          {
            "required": [
              "url"
            ]
          }
        ],
        "properties": {
          "sku": {
            "description": "Apollo SKU, for example PAC0003.",
            "pattern": "^[A-Za-z0-9]{4,12}$",
            "type": "string"
          },
          "url": {
            "description": "Public product page URL on www.apollopharmacy.in.",
            "format": "uri",
            "type": "string"
          }
        },
        "title": "Apollo Pharmacy product get input",
        "type": "object"
      },
      "ApolloPharmacyProductReviewsCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "apollo-pharmacy.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": [
              "apollo-pharmacy"
            ],
            "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": {
                    "rating": 3.9,
                    "review_count": 3,
                    "reviews": [
                      {
                        "body": "Coustomer happy",
                        "likes": 1,
                        "pack": "15 Tablet",
                        "posted_at": "2026-01-16T15:43:31.047Z",
                        "rating": 5
                      },
                      {
                        "body": "best",
                        "pack": "15 Tablet",
                        "posted_at": "2026-09-01T05:43:20.056Z",
                        "rating": 5
                      },
                      {
                        "body": "Good",
                        "pack": "15 Tablet",
                        "posted_at": "2026-08-06T13:20:14.425Z",
                        "rating": 4
                      }
                    ],
                    "sku": "PAC0003",
                    "total_ratings": 44
                  }
                },
                "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": [
              "apollo-pharmacy.brand.products",
              "apollo-pharmacy.categories.list",
              "apollo-pharmacy.category.products",
              "apollo-pharmacy.pincode.check",
              "apollo-pharmacy.product.get",
              "apollo-pharmacy.product.offers",
              "apollo-pharmacy.product.reviews",
              "apollo-pharmacy.product.substitutes",
              "apollo-pharmacy.search.products",
              "apollo-pharmacy.search.suggest",
              "apollo-pharmacy.stores.near",
              "apollo-pharmacy.trending.searches"
            ],
            "type": "string"
          },
          "job_id": {
            "format": "uuid",
            "type": "string"
          },
          "platform": {
            "enum": [
              "apollo-pharmacy"
            ],
            "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"
      },
      "ApolloPharmacyProductOffersInput": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false,
        "oneOf": [
          {
            "required": [
              "sku"
            ]
          },
          {
            "required": [
              "url"
            ]
          }
        ],
        "properties": {
          "pincode": {
            "description": "Indian PIN code used to localise prices, substitutes, offers and availability.",
            "pattern": "^[1-9][0-9]{5}$",
            "type": "string"
          },
          "quantity": {
            "default": 1,
            "description": "Quantity the offer is priced for.",
            "maximum": 10,
            "minimum": 1,
            "type": "integer"
          },
          "sku": {
            "description": "Apollo SKU, for example PAC0003.",
            "pattern": "^[A-Za-z0-9]{4,12}$",
            "type": "string"
          },
          "url": {
            "description": "Public product page URL on www.apollopharmacy.in.",
            "format": "uri",
            "type": "string"
          }
        },
        "title": "Apollo Pharmacy product offers input",
        "type": "object"
      },
      "ApolloPharmacyCategoriesListInput": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false,
        "properties": {},
        "title": "Apollo Pharmacy categories list input",
        "type": "object"
      },
      "ApolloPharmacyTrendingSearchesCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "apollo-pharmacy.trending.searches"
            ],
            "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": [
              "apollo-pharmacy"
            ],
            "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": {
                    "terms": [
                      {
                        "name": "Fixderma",
                        "rank": 1
                      },
                      {
                        "name": "CeraVe",
                        "rank": 2
                      },
                      {
                        "name": "La Roche-Posay",
                        "rank": 3
                      }
                    ]
                  }
                },
                "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"
      },
      "ApolloPharmacyTrendingSearchesInput": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false,
        "properties": {},
        "title": "Apollo Pharmacy trending searches input",
        "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. A zero charge is not implicitly described as free.",
            "enum": [
              "prepaid_credits",
              "included_subscription",
              "out_of_band_contract",
              "free",
              "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"
      },
      "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"
      },
      "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"
      },
      "ApolloPharmacyCategoriesListExecuteRequest": {
        "additionalProperties": false,
        "description": "List the Apollo Pharmacy category tree with category ids, slugs, names and parent-child structure.",
        "example": {
          "capability": "apollo-pharmacy.categories.list",
          "input": {}
        },
        "properties": {
          "capability": {
            "enum": [
              "apollo-pharmacy.categories.list"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/ApolloPharmacyCategoriesListInput"
          },
          "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"
      },
      "ApolloPharmacySearchProductsInput": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false,
        "properties": {
          "filters": {
            "description": "Filters to apply, using the ids and values returned in facets.",
            "items": {
              "additionalProperties": false,
              "properties": {
                "id": {
                  "description": "Facet id, for example brand, category, price or discount.",
                  "maxLength": 60,
                  "minLength": 1,
                  "type": "string"
                },
                "max": {
                  "description": "Upper bound for a range or slider facet.",
                  "minimum": 0,
                  "type": "number"
                },
                "min": {
                  "description": "Lower bound for a range or slider facet.",
                  "minimum": 0,
                  "type": "number"
                },
                "values": {
                  "description": "Selected values for a checkbox facet.",
                  "items": {
                    "maxLength": 80,
                    "minLength": 1,
                    "type": "string"
                  },
                  "maxItems": 20,
                  "type": "array"
                }
              },
              "required": [
                "id"
              ],
              "type": "object"
            },
            "maxItems": 10,
            "type": "array"
          },
          "include_facets": {
            "default": false,
            "description": "Return the filter options the route offers for this query.",
            "type": "boolean"
          },
          "max_pages": {
            "default": 1,
            "description": "How many pages to read forward from page, de-duplicated by SKU.",
            "maximum": 5,
            "minimum": 1,
            "type": "integer"
          },
          "page": {
            "default": 1,
            "description": "First result page. The route stops at 200 results, ten pages of twenty.",
            "maximum": 10,
            "minimum": 1,
            "type": "integer"
          },
          "per_page": {
            "default": 20,
            "description": "Results per page. The route returns at most 20.",
            "maximum": 20,
            "minimum": 1,
            "type": "integer"
          },
          "pincode": {
            "description": "Indian PIN code used to localise prices, substitutes, offers and availability.",
            "pattern": "^[1-9][0-9]{5}$",
            "type": "string"
          },
          "query": {
            "description": "Medicine, brand or health product to search for.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "sort": {
            "default": "relevance",
            "description": "Result order offered by the search route.",
            "enum": [
              "relevance",
              "price_low",
              "price_high"
            ],
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "title": "Apollo Pharmacy search products input",
        "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"
      },
      "ApolloPharmacyProductOffersCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "apollo-pharmacy.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": [
              "apollo-pharmacy"
            ],
            "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": {
                    "bank_offer": "J&K Bank Debit/Credit Cards",
                    "best_price": 17,
                    "coupon": "AP15",
                    "offers": [
                      {
                        "category": "Coupons",
                        "type": "COUPONS"
                      },
                      {
                        "category": "Bank Offers",
                        "type": "PAYMENTS"
                      }
                    ],
                    "quantity": 1,
                    "sku": "PAC0003"
                  }
                },
                "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"
      },
      "ApolloPharmacyCategoryProductsExecuteRequest": {
        "additionalProperties": false,
        "description": "Walk a public Apollo Pharmacy category with its total item count and each product's price and MRP.",
        "example": {
          "capability": "apollo-pharmacy.category.products",
          "input": {
            "max_pages": 1,
            "page": 1,
            "slug": "pain-relief"
          }
        },
        "properties": {
          "capability": {
            "enum": [
              "apollo-pharmacy.category.products"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/ApolloPharmacyCategoryProductsInput"
          },
          "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": 60000,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "capability",
          "input"
        ],
        "type": "object"
      },
      "ApolloPharmacySearchProductsCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "apollo-pharmacy.search.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": [
              "apollo-pharmacy"
            ],
            "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,
                    "facets": [
                      {
                        "id": "Age Group",
                        "name": "Age Group",
                        "type": "checkbox",
                        "values": [
                          {
                            "id": "adult",
                            "name": "Adult"
                          },
                          {
                            "id": "pediatric",
                            "name": "Pediatric"
                          }
                        ]
                      },
                      {
                        "id": "Country Of Origin",
                        "name": "Country Of Origin",
                        "type": "checkbox",
                        "values": [
                          {
                            "id": "india",
                            "name": "India"
                          }
                        ]
                      },
                      {
                        "id": "Health Condition",
                        "name": "Health Condition",
                        "type": "checkbox",
                        "values": [
                          {
                            "id": "allergic-rhinitis",
                            "name": "Allergic Rhinitis"
                          },
                          {
                            "id": "allergy",
                            "name": "Allergy"
                          },
                          {
                            "id": "body-pain",
                            "name": "Body Pain"
                          }
                        ]
                      }
                    ],
                    "has_more": true,
                    "pages_fetched": 1,
                    "per_page": 5,
                    "products": [
                      {
                        "availability": "in_stock",
                        "currency": "INR",
                        "delivery_eta": "3 hr",
                        "discount_percent": 26,
                        "image_url": "https://images.apollo247.in/pub/media/catalog/product/P/A/PAC0003_1_1.jpg",
                        "mrp": 32,
                        "name": "Pacimol 650 Tablet 15's",
                        "prescription_required": false,
                        "price": 23.68,
                        "product_id": "26263",
                        "rating": 3.9,
                        "review_count": 44,
                        "sku": "PAC0003",
                        "subcategory": "C.N.S Drugs",
                        "tags": [
                          "Fever",
                          "Pain",
                          "Headache"
                        ],
                        "unit_price": "₹1.57/unit",
                        "url": "https://www.apollopharmacy.in/otc/pacimol-650mg-tablet"
                      },
                      {
                        "availability": "in_stock",
                        "brand": "CROCIN",
                        "currency": "INR",
                        "delivery_eta": "3 hr",
                        "image_url": "https://images.apollo247.in/pub/media/catalog/product/C/R/CRO0091_1.jpg",
                        "mrp": 19,
                        "name": "Crocin Advance Tablet 20's",
                        "prescription_required": false,
                        "price": 19,
                        "product_id": "48741",
                        "sku": "CRO0091",
                        "subcategory": "Otc",
                        "tags": [
                          "Fever",
                          "Pain",
                          "Headache"
                        ],
                        "unit_price": "₹0.95/unit",
                        "url": "https://www.apollopharmacy.in/otc/crocin-advance-tablet"
                      },
                      {
                        "availability": "in_stock",
                        "currency": "INR",
                        "delivery_eta": "Fri, 30 Oct",
                        "discount_percent": 26,
                        "image_url": "https://images.apollo247.in/pub/media/catalog/product/P/A/PAR0014_1_1.jpg",
                        "mrp": 21,
                        "name": "Paracip-650 Tablet 10's",
                        "prescription_required": false,
                        "price": 15.54,
                        "product_id": "26807",
                        "sku": "PAR0014",
                        "subcategory": "C.N.S Drugs",
                        "tags": [
                          "Fever",
                          "Pain",
                          "Headache"
                        ],
                        "unit_price": "₹1.55/unit",
                        "url": "https://www.apollopharmacy.in/otc/paracip-650mg-tablet"
                      }
                    ],
                    "query": "paracetamol",
                    "start_page": 1,
                    "total_results": 200
                  }
                },
                "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"
      },
      "ApolloPharmacyPincodeCheckInput": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false,
        "properties": {
          "pincode": {
            "description": "Indian PIN code to check delivery coverage for.",
            "pattern": "^[1-9][0-9]{5}$",
            "type": "string"
          }
        },
        "required": [
          "pincode"
        ],
        "title": "Apollo Pharmacy PIN code check input",
        "type": "object"
      },
      "ApolloPharmacyBrandProductsCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "apollo-pharmacy.brand.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": [
              "apollo-pharmacy"
            ],
            "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,
                    "listing_url": "https://www.apollopharmacy.in/shop-by-brand/himalaya",
                    "max_page": 20,
                    "pages_fetched": 1,
                    "products": [
                      {
                        "availability": "in_stock",
                        "currency": "INR",
                        "discount_percent": 50,
                        "image_url": "https://images.apollo247.in/pub/media/catalog/product/H/I/HIM0972_1.jpg",
                        "mrp": 380,
                        "name": "Himalaya Gentle Baby Wash, 400 ml",
                        "pack_form": "Bottle",
                        "pack_size": "400",
                        "prescription_required": false,
                        "price": 190,
                        "product_form": "Baby Wash",
                        "product_id": "368388",
                        "rating": 5,
                        "review_count": 2,
                        "sku": "HIM0972",
                        "tags": [
                          "Gentle Cleansing"
                        ],
                        "unit_price": "₹0.47/ml",
                        "url": "https://www.apollopharmacy.in/otc/himalaya-gentle-baby-wash-400ml"
                      },
                      {
                        "availability": "in_stock",
                        "currency": "INR",
                        "discount_percent": 20,
                        "image_url": "https://images.apollo247.in/pub/media/catalog/product/h/i/him0285_1-jan24_3_.jpg",
                        "mrp": 260,
                        "name": "Himalaya Ashvagandha General Wellness, 60 Tablets",
                        "pack_form": "Bottle",
                        "pack_size": "60",
                        "prescription_required": false,
                        "price": 208,
                        "product_form": "Tablet",
                        "product_id": "61260",
                        "sku": "HIM0285",
                        "tags": [
                          "Stress Relief",
                          "Energy & Stamina",
                          "Sugar-Free"
                        ],
                        "unit_price": "₹3.47/unit",
                        "url": "https://www.apollopharmacy.in/otc/himalaya-ashvagandha-capsule-60s"
                      },
                      {
                        "availability": "in_stock",
                        "currency": "INR",
                        "discount_percent": 8,
                        "image_url": "https://images.apollo247.in/pub/media/catalog/product/H/I/HIM0136_1-JULY23_1.jpg",
                        "mrp": 40,
                        "name": "Himalaya Lip Balm 10 gm | Wheat Germ Oil & Carrot Seed Oil | Relives Dry & Chapped Lips | Nourishes Lips",
                        "pack_form": "Tube",
                        "pack_size": "10",
                        "prescription_required": false,
                        "price": 36.8,
                        "product_form": "Balm",
                        "product_id": "61267",
                        "rating": 3.9,
                        "review_count": 15,
                        "sku": "HIM0136",
                        "tags": [
                          "Dry Lips",
                          "Cruelty-Free",
                          "Lip Nourishment"
                        ],
                        "unit_price": "₹3.68/gm",
                        "url": "https://www.apollopharmacy.in/otc/himalaya-lip-balm-10g"
                      }
                    ],
                    "start_page": 1,
                    "total_items": 469
                  }
                },
                "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"
      },
      "ApolloPharmacyBrandProductsInput": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false,
        "oneOf": [
          {
            "required": [
              "slug"
            ]
          },
          {
            "required": [
              "url"
            ]
          }
        ],
        "properties": {
          "max_pages": {
            "default": 1,
            "description": "How many listing pages to read forward from page.",
            "maximum": 5,
            "minimum": 1,
            "type": "integer"
          },
          "page": {
            "default": 1,
            "description": "First listing page to read. One page carries 24 products.",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "slug": {
            "description": "Public listing slug, as returned by the category list.",
            "pattern": "^[a-z0-9][a-z0-9-]{0,119}$",
            "type": "string"
          },
          "url": {
            "description": "Public listing page URL on www.apollopharmacy.in.",
            "format": "uri",
            "type": "string"
          }
        },
        "title": "Apollo Pharmacy brand products input",
        "type": "object"
      },
      "ApolloPharmacyStoresNearInput": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false,
        "properties": {
          "latitude": {
            "description": "Latitude to centre the store search on; give it with longitude.",
            "maximum": 90,
            "minimum": -90,
            "type": "number"
          },
          "limit": {
            "default": 5,
            "description": "How many nearby stores to return.",
            "maximum": 20,
            "minimum": 1,
            "type": "integer"
          },
          "longitude": {
            "description": "Longitude to centre the store search on; give it with latitude.",
            "maximum": 180,
            "minimum": -180,
            "type": "number"
          },
          "pincode": {
            "description": "Indian PIN code used to localise prices, substitutes, offers and availability.",
            "pattern": "^[1-9][0-9]{5}$",
            "type": "string"
          }
        },
        "title": "Apollo Pharmacy nearby stores 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"
      },
      "ApolloPharmacyProductSubstitutesExecuteRequest": {
        "additionalProperties": false,
        "description": "List same-composition Apollo Pharmacy substitutes with selling price, MRP, manufacturer and delivery estimate.",
        "example": {
          "capability": "apollo-pharmacy.product.substitutes",
          "input": {
            "pincode": "110001",
            "sku": "PAC0003"
          }
        },
        "properties": {
          "capability": {
            "enum": [
              "apollo-pharmacy.product.substitutes"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/ApolloPharmacyProductSubstitutesInput"
          },
          "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"
      },
      "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"
          }
        ]
      },
      "ApolloPharmacyStoresNearExecuteRequest": {
        "additionalProperties": false,
        "description": "List Apollo Pharmacy stores near a PIN code or coordinate pair with distance, contact, timings and open state.",
        "example": {
          "capability": "apollo-pharmacy.stores.near",
          "input": {
            "limit": 5,
            "pincode": "110001"
          }
        },
        "properties": {
          "capability": {
            "enum": [
              "apollo-pharmacy.stores.near"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/ApolloPharmacyStoresNearInput"
          },
          "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"
      },
      "ApolloPharmacyCategoryProductsCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "apollo-pharmacy.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": [
              "apollo-pharmacy"
            ],
            "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,
                    "listing_url": "https://www.apollopharmacy.in/shop-by-category/pain-relief",
                    "max_page": 36,
                    "pages_fetched": 1,
                    "products": [
                      {
                        "availability": "in_stock",
                        "currency": "INR",
                        "discount_percent": 15,
                        "image_url": "https://images.apollo247.in/pub/media/catalog/product/V/O/VOL0129_1-AUG23_1.jpg",
                        "mrp": 375,
                        "name": "Volini Pain Relief Spray, 100 gm",
                        "pack_form": "Bottle",
                        "pack_size": "100",
                        "prescription_required": false,
                        "price": 318.8,
                        "product_form": "Spray",
                        "product_id": "1364",
                        "rating": 3.9,
                        "review_count": 157,
                        "sku": "VOL0129",
                        "tags": [
                          "Muscle Pain",
                          "Joint Pain",
                          "Pain Relief"
                        ],
                        "unit_price": "₹3.19/gm",
                        "url": "https://www.apollopharmacy.in/otc/volini-spray-100g"
                      },
                      {
                        "availability": "in_stock",
                        "currency": "INR",
                        "image_url": "https://images.apollo247.in/pub/media/catalog/product/D/R/DRO0100_1-JULY23_1.jpg",
                        "mrp": 299,
                        "name": "Dr.Ortho Oil, 120 ml",
                        "pack_form": "Bottle",
                        "pack_size": "120",
                        "prescription_required": false,
                        "price": 299,
                        "product_form": "Oil",
                        "product_id": "1202",
                        "sku": "DRO0100",
                        "tags": [
                          "Joint Pain",
                          "Muscle Pain",
                          "Pain Relief"
                        ],
                        "unit_price": "₹2.49/ml",
                        "url": "https://www.apollopharmacy.in/otc/dr-ortho-oil-120ml"
                      },
                      {
                        "availability": "in_stock",
                        "currency": "INR",
                        "image_url": "https://images.apollo247.in/pub/media/catalog/product/A/M/AMR0012_1-JULY23_1.jpg",
                        "mrp": 75,
                        "name": "Amrutanjan Headache Faster Relaxation Roll-on, 10ml",
                        "pack_form": "Bottle",
                        "pack_size": "10",
                        "prescription_required": false,
                        "price": 75,
                        "product_form": "Roll-On",
                        "product_id": "60965",
                        "rating": 3.9,
                        "review_count": 129,
                        "sku": "AMR0012",
                        "tags": [
                          "Headache",
                          "Fast Relief",
                          "Ayurvedic"
                        ],
                        "unit_price": "₹7.50/ml",
                        "url": "https://www.apollopharmacy.in/otc/[redacted:token]"
                      }
                    ],
                    "start_page": 1,
                    "total_items": 859
                  }
                },
                "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": [
              "apollo-pharmacy.brand.products",
              "apollo-pharmacy.categories.list",
              "apollo-pharmacy.category.products",
              "apollo-pharmacy.pincode.check",
              "apollo-pharmacy.product.get",
              "apollo-pharmacy.product.offers",
              "apollo-pharmacy.product.reviews",
              "apollo-pharmacy.product.substitutes",
              "apollo-pharmacy.search.products",
              "apollo-pharmacy.search.suggest",
              "apollo-pharmacy.stores.near",
              "apollo-pharmacy.trending.searches"
            ],
            "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": [
              "apollo-pharmacy"
            ],
            "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"
      },
      "ApolloPharmacyProductReviewsExecuteRequest": {
        "additionalProperties": false,
        "description": "Read a product's public rating summary and review text with reviewer identity removed.",
        "example": {
          "capability": "apollo-pharmacy.product.reviews",
          "input": {
            "sku": "PAC0003"
          }
        },
        "properties": {
          "capability": {
            "enum": [
              "apollo-pharmacy.product.reviews"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/ApolloPharmacyProductReviewsInput"
          },
          "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"
      },
      "ApolloPharmacySearchSuggestExecuteRequest": {
        "additionalProperties": false,
        "description": "Read the search suggestions Apollo Pharmacy offers while a query is being typed, with their category.",
        "example": {
          "capability": "apollo-pharmacy.search.suggest",
          "input": {
            "query": "parac"
          }
        },
        "properties": {
          "capability": {
            "enum": [
              "apollo-pharmacy.search.suggest"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/ApolloPharmacySearchSuggestInput"
          },
          "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"
      },
      "ExecuteAcceptedResponse": {
        "additionalProperties": false,
        "properties": {
          "capability": {
            "enum": [
              "apollo-pharmacy.brand.products",
              "apollo-pharmacy.categories.list",
              "apollo-pharmacy.category.products",
              "apollo-pharmacy.pincode.check",
              "apollo-pharmacy.product.get",
              "apollo-pharmacy.product.offers",
              "apollo-pharmacy.product.reviews",
              "apollo-pharmacy.product.substitutes",
              "apollo-pharmacy.search.products",
              "apollo-pharmacy.search.suggest",
              "apollo-pharmacy.stores.near",
              "apollo-pharmacy.trending.searches"
            ],
            "type": "string"
          },
          "coalesced": {
            "type": "boolean"
          },
          "job_id": {
            "format": "uuid",
            "type": "string"
          },
          "platform": {
            "enum": [
              "apollo-pharmacy"
            ],
            "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"
      },
      "ApolloPharmacyProductReviewsInput": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false,
        "oneOf": [
          {
            "required": [
              "sku"
            ]
          },
          {
            "required": [
              "url"
            ]
          }
        ],
        "properties": {
          "sku": {
            "description": "Apollo SKU, for example PAC0003.",
            "pattern": "^[A-Za-z0-9]{4,12}$",
            "type": "string"
          },
          "url": {
            "description": "Public product page URL on www.apollopharmacy.in.",
            "format": "uri",
            "type": "string"
          }
        },
        "title": "Apollo Pharmacy product reviews input",
        "type": "object"
      },
      "ApolloPharmacyPincodeCheckExecuteRequest": {
        "additionalProperties": false,
        "description": "Check whether Apollo Pharmacy delivers to an Indian PIN code, with the city, state and coordinates it maps to.",
        "example": {
          "capability": "apollo-pharmacy.pincode.check",
          "input": {
            "pincode": "110001"
          }
        },
        "properties": {
          "capability": {
            "enum": [
              "apollo-pharmacy.pincode.check"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/ApolloPharmacyPincodeCheckInput"
          },
          "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"
      },
      "ApolloPharmacySearchProductsExecuteRequest": {
        "additionalProperties": false,
        "description": "Search Apollo Pharmacy with prices, MRP, stock, filters, facets, sorting and a bounded multi-page walk.",
        "example": {
          "capability": "apollo-pharmacy.search.products",
          "input": {
            "include_facets": true,
            "page": 1,
            "per_page": 5,
            "pincode": "110001",
            "query": "paracetamol",
            "sort": "relevance"
          }
        },
        "properties": {
          "capability": {
            "enum": [
              "apollo-pharmacy.search.products"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/ApolloPharmacySearchProductsInput"
          },
          "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": 60000,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "capability",
          "input"
        ],
        "type": "object"
      },
      "ApolloPharmacyStoresNearCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "apollo-pharmacy.stores.near"
            ],
            "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": [
              "apollo-pharmacy"
            ],
            "type": "string"
          },
          "request_id": {
            "format": "uuid",
            "type": "string"
          },
          "results": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "data": {
                  "description": "Raw capability output. Its shape may evolve with the upstream source; the example is illustrative, not a compatibility guarantee.",
                  "example": {
                    "latitude": 28.6327426,
                    "longitude": 77.2195969,
                    "pincode": "110001",
                    "store_available": true,
                    "stores": [
                      {
                        "contact": "011-23711838",
                        "distance": "0.3 km",
                        "is_open": true,
                        "map_url": "https://www.google.com/maps/dir/?api=1&destination=28.63392357,77.21701888&origin=28.6327426,77.2195969",
                        "name": "CONNAUGHT PLACE",
                        "store_id": "11049",
                        "timings": "0:00 AM - 12:00 PM"
                      },
                      {
                        "contact": "011-23363743",
                        "distance": "1.1 km",
                        "is_open": true,
                        "map_url": "https://www.google.com/maps/dir/?api=1&destination=28.63380767,77.2083532&origin=28.6327426,77.2195969",
                        "name": "GOLE MARKET",
                        "store_id": "11069",
                        "timings": "7:00 AM - 10:00 PM"
                      },
                      {
                        "contact": "011-23388582",
                        "distance": "2.4 km",
                        "is_open": true,
                        "map_url": "https://www.google.com/maps/dir/?api=1&destination=28.6196267,77.2396966&origin=28.6327426,77.2195969",
                        "name": "SUPREME COURT",
                        "store_id": "11009",
                        "timings": "7:00 AM - 11:00 PM"
                      }
                    ]
                  }
                },
                "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"
      },
      "ApolloPharmacyProductGetCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "apollo-pharmacy.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": [
              "apollo-pharmacy"
            ],
            "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": {
                    "schedule": "OTC",
                    "expiry_date": "Jan-27",
                    "product_form": "Tablet",
                    "category": "ANALGESICS & ANTIPYRETICS",
                    "mrp": 32,
                    "breadcrumbs": [
                      "C.N.S DRUGS",
                      "ANALGESICS & ANTIPYRETICS"
                    ],
                    "composition": "PARACETAMOL",
                    "availability": "in_stock",
                    "country_of_origin": "India",
                    "consume_type": "Oral",
                    "sku": "PAC0003",
                    "pack_form": "Strip",
                    "manufacturer": "Ipca Laboratories Ltd",
                    "discount_percent": 26,
                    "description": "Pacimol 650 Tablet is used to reduce fever and treat mild to moderate pain. Also, it is used to relieve headaches, migraines, toothaches, period pain, back pain, muscle pain, and rheumatic pains. It contains Paracetamol, which works by inhibiting the production of certain chemical messengers in the brain known as prost...",
                    "name": "Pacimol 650 Tablet 15's",
                    "source_url": "https://www.apollopharmacy.in/otc/pacimol-650mg-tablet",
                    "side_effects": "Common Side Effects Nausea Vomiting Increased Aspartate Aminotransferase (AST) In Blood Stomach Pain Anemia Rash Shortness Of Breath Consult you doctor in case you face the following side effects Bleeding After Surgery High Blood Pressure High Blood Sugar Accumulation Of Fluid Around Lungs If any of the above side effe...",
                    "currency": "INR",
                    "pack_size": "15",
                    "price": 23.7,
                    "prescription_required": false,
                    "images": [
                      "https://images.apollo247.in/pub/media/catalog/product/P/A/PAC0003_1_1.jpg",
                      "https://images.apollo247.in/pub/media/catalog/product/P/A/PAC0003_2_1.jpg"
                    ],
                    "url": "https://www.apollopharmacy.in/otc/pacimol-650mg-tablet",
                    "dosage_form": "Tablet",
                    "manufacturer_address": "142 Ab, Kandivli Industrial Estate, Kandivli (West), Mumbai - 400 067, Maharashtra.",
                    "image_url": "https://images.apollo247.in/pub/media/catalog/product/P/A/PAC0003_1_1.jpg",
                    "storage": "•Store this medicine at room temperature, between 15°C and 30°C, in a dry place. •Keep the medication in its original packaging to protect it from direct light and moisture, and do not store it in bathroom cabinets where humidity is high.",
                    "max_order_qty": 10,
                    "uses": "Your doctor may prescribe this medicine to treat several conditions, including: Fever reduction: Helps lower high body temperature during infections, viral illnesses, or colds. Headache and migraine: Relieves tension headaches and helps ease mild-to-moderate migraine pain. Muscle and joint aches: Eases discomfort in th...",
                    "product_id": "26263",
                    "subcategory": "C.N.S Drugs",
                    "unit_price": "₹1.58 per unit",
                    "molecule_name": "PARACETAMOL"
                  }
                },
                "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"
      },
      "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": [
              "apollo-pharmacy.brand.products",
              "apollo-pharmacy.categories.list",
              "apollo-pharmacy.category.products",
              "apollo-pharmacy.pincode.check",
              "apollo-pharmacy.product.get",
              "apollo-pharmacy.product.offers",
              "apollo-pharmacy.product.reviews",
              "apollo-pharmacy.product.substitutes",
              "apollo-pharmacy.search.products",
              "apollo-pharmacy.search.suggest",
              "apollo-pharmacy.stores.near",
              "apollo-pharmacy.trending.searches"
            ],
            "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": [
              "apollo-pharmacy"
            ],
            "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"
      },
      "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"
      },
      "ApolloPharmacyCategoryProductsInput": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false,
        "oneOf": [
          {
            "required": [
              "slug"
            ]
          },
          {
            "required": [
              "url"
            ]
          }
        ],
        "properties": {
          "max_pages": {
            "default": 1,
            "description": "How many listing pages to read forward from page.",
            "maximum": 5,
            "minimum": 1,
            "type": "integer"
          },
          "page": {
            "default": 1,
            "description": "First listing page to read. One page carries 24 products.",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "slug": {
            "description": "Public listing slug, as returned by the category list.",
            "pattern": "^[a-z0-9][a-z0-9-]{0,119}$",
            "type": "string"
          },
          "url": {
            "description": "Public listing page URL on www.apollopharmacy.in.",
            "format": "uri",
            "type": "string"
          }
        },
        "title": "Apollo Pharmacy category products input",
        "type": "object"
      },
      "ApolloPharmacyPincodeCheckCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "apollo-pharmacy.pincode.check"
            ],
            "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": [
              "apollo-pharmacy"
            ],
            "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": {
                    "city": "Delhi",
                    "city_tag": "DelhiNCR",
                    "courier_serviceable": true,
                    "hyperlocal_serviceable": true,
                    "latitude": 28.6327426,
                    "longitude": 77.2195969,
                    "pincode": "110001",
                    "serviceable": true,
                    "state": "DELHI"
                  }
                },
                "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"
      },
      "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"
      },
      "ApolloPharmacySearchSuggestInput": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false,
        "properties": {
          "pincode": {
            "description": "Indian PIN code used to localise prices, substitutes, offers and availability.",
            "pattern": "^[1-9][0-9]{5}$",
            "type": "string"
          },
          "query": {
            "description": "Partial query the customer is typing.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "title": "Apollo Pharmacy search suggestions input",
        "type": "object"
      },
      "ApolloPharmacyProductSubstitutesInput": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false,
        "oneOf": [
          {
            "required": [
              "sku"
            ]
          },
          {
            "required": [
              "url"
            ]
          }
        ],
        "properties": {
          "pincode": {
            "description": "Indian PIN code used to localise prices, substitutes, offers and availability.",
            "pattern": "^[1-9][0-9]{5}$",
            "type": "string"
          },
          "sku": {
            "description": "Apollo SKU, for example PAC0003.",
            "pattern": "^[A-Za-z0-9]{4,12}$",
            "type": "string"
          },
          "url": {
            "description": "Public product page URL on www.apollopharmacy.in.",
            "format": "uri",
            "type": "string"
          }
        },
        "title": "Apollo Pharmacy product substitutes input",
        "type": "object"
      },
      "ApolloPharmacyProductGetExecuteRequest": {
        "additionalProperties": false,
        "description": "Read one Apollo Pharmacy product with price, MRP, pack, manufacturer, composition, images and pack variants.",
        "example": {
          "capability": "apollo-pharmacy.product.get",
          "input": {
            "sku": "PAC0003"
          }
        },
        "properties": {
          "capability": {
            "enum": [
              "apollo-pharmacy.product.get"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/ApolloPharmacyProductGetInput"
          },
          "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"
      },
      "ApolloPharmacySearchSuggestCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "apollo-pharmacy.search.suggest"
            ],
            "type": "string"
          },
          "completed_at": {
            "anyOf": [
              {
                "description": "When the source data was read and the job completed (ISO 8601 UTC). This is the observation time for the returned data, to the job's precision, not a per-item upstream timestamp. Null unless the job completed.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "job_id": {
            "format": "uuid",
            "type": "string"
          },
          "outcome": {
            "description": "Truthful module completion detail; status is complete unless the module reports partial or incomplete output.",
            "type": "object"
          },
          "platform": {
            "enum": [
              "apollo-pharmacy"
            ],
            "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": "parac",
                    "suggestions": [
                      {
                        "category": "lab tests",
                        "name": "Show results for acetaminophen - serum in lab tests",
                        "sub_text": "in Lab tests",
                        "thumbnail": "https://images.apollo247.in/images/icons/blood_test_tube.png",
                        "type": "LOB"
                      },
                      {
                        "category": "others",
                        "name": "Get Expert Advise: Medicines, dosage, and safe use",
                        "sub_text": "Medicines, dosage, and safe use",
                        "thumbnail": "https://images.apollo247.in/images/askApolloV3/images/logo.png",
                        "type": "others"
                      },
                      {
                        "name": "paracox tablet",
                        "type": "suggestion"
                      }
                    ]
                  }
                },
                "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"
      },
      "ApolloPharmacyTrendingSearchesExecuteRequest": {
        "additionalProperties": false,
        "description": "Read the search terms Apollo Pharmacy is trending right now, ranked in the order the storefront shows them.",
        "example": {
          "capability": "apollo-pharmacy.trending.searches",
          "input": {}
        },
        "properties": {
          "capability": {
            "enum": [
              "apollo-pharmacy.trending.searches"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/ApolloPharmacyTrendingSearchesInput"
          },
          "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"
      }
    },
    "securitySchemes": {
      "BearerAuth": {
        "bearerFormat": "API Key",
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "description": "Apollo Pharmacy search with filters, product detail, substitutes, reviews, offers, listings, stores and PIN-code cover.\nThis spec includes only the live `Apollo Pharmacy` capabilities exposed by Upscrape.\nExecution uses the generic `POST /execute` endpoint and job polling uses `GET /jobs/{id}`.\nSupported capabilities: `apollo-pharmacy.brand.products`, `apollo-pharmacy.categories.list`, `apollo-pharmacy.category.products`, `apollo-pharmacy.pincode.check`, `apollo-pharmacy.product.get`, `apollo-pharmacy.product.offers`, `apollo-pharmacy.product.reviews`, `apollo-pharmacy.product.substitutes`, `apollo-pharmacy.search.products`, `apollo-pharmacy.search.suggest`, `apollo-pharmacy.stores.near`, `apollo-pharmacy.trending.searches`\n## Data limits\n\n- Search returns at most 200 results per query and 20 per page; a multi-page call is all-or-nothing, so a failure on any page fails the call rather than returning a partial list\n- The delivery-time filter is offered by the search route but answers a server error; other filters work\n- Category and brand listings carry 24 products per page; their sort control needs a signed-in delivery address\n- Review text is a small public sample, not the full review history\n- Prescriptions, carts, accounts and orders are out of scope\n- An unknown filter id is ignored by the search route; facet ids come from include_facets\n- Product detail is the same for every PIN code and can disagree with the search card's stock wording\n- Search, product detail, reviews, offers, stores and trending read the Apollo 24|7 public API that sits behind apollopharmacy.in (apigateway.apollo247.in, api.apollo247.com, cms.apollo247.com), a sibling brand of Apollo Pharmacy; its guest token mints at most ten times per network exit before a short pause.\n\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": "Apollo Pharmacy 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": "apollo-pharmacy_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": "apollo-pharmacy.brand.products",
                "input": {
                  "page": 1,
                  "slug": "himalaya"
                }
              },
              "schema": {
                "discriminator": {
                  "mapping": {
                    "apollo-pharmacy.brand.products": "#/components/schemas/ApolloPharmacyBrandProductsExecuteRequest",
                    "apollo-pharmacy.categories.list": "#/components/schemas/ApolloPharmacyCategoriesListExecuteRequest",
                    "apollo-pharmacy.category.products": "#/components/schemas/ApolloPharmacyCategoryProductsExecuteRequest",
                    "apollo-pharmacy.pincode.check": "#/components/schemas/ApolloPharmacyPincodeCheckExecuteRequest",
                    "apollo-pharmacy.product.get": "#/components/schemas/ApolloPharmacyProductGetExecuteRequest",
                    "apollo-pharmacy.product.offers": "#/components/schemas/ApolloPharmacyProductOffersExecuteRequest",
                    "apollo-pharmacy.product.reviews": "#/components/schemas/ApolloPharmacyProductReviewsExecuteRequest",
                    "apollo-pharmacy.product.substitutes": "#/components/schemas/ApolloPharmacyProductSubstitutesExecuteRequest",
                    "apollo-pharmacy.search.products": "#/components/schemas/ApolloPharmacySearchProductsExecuteRequest",
                    "apollo-pharmacy.search.suggest": "#/components/schemas/ApolloPharmacySearchSuggestExecuteRequest",
                    "apollo-pharmacy.stores.near": "#/components/schemas/ApolloPharmacyStoresNearExecuteRequest",
                    "apollo-pharmacy.trending.searches": "#/components/schemas/ApolloPharmacyTrendingSearchesExecuteRequest"
                  },
                  "propertyName": "capability"
                },
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ApolloPharmacyBrandProductsExecuteRequest"
                  },
                  {
                    "$ref": "#/components/schemas/ApolloPharmacyCategoriesListExecuteRequest"
                  },
                  {
                    "$ref": "#/components/schemas/ApolloPharmacyCategoryProductsExecuteRequest"
                  },
                  {
                    "$ref": "#/components/schemas/ApolloPharmacyPincodeCheckExecuteRequest"
                  },
                  {
                    "$ref": "#/components/schemas/ApolloPharmacyProductGetExecuteRequest"
                  },
                  {
                    "$ref": "#/components/schemas/ApolloPharmacyProductOffersExecuteRequest"
                  },
                  {
                    "$ref": "#/components/schemas/ApolloPharmacyProductReviewsExecuteRequest"
                  },
                  {
                    "$ref": "#/components/schemas/ApolloPharmacyProductSubstitutesExecuteRequest"
                  },
                  {
                    "$ref": "#/components/schemas/ApolloPharmacySearchProductsExecuteRequest"
                  },
                  {
                    "$ref": "#/components/schemas/ApolloPharmacySearchSuggestExecuteRequest"
                  },
                  {
                    "$ref": "#/components/schemas/ApolloPharmacyStoresNearExecuteRequest"
                  },
                  {
                    "$ref": "#/components/schemas/ApolloPharmacyTrendingSearchesExecuteRequest"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ApolloPharmacyBrandProductsCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacyCategoriesListCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacyCategoryProductsCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacyPincodeCheckCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacyProductGetCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacyProductOffersCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacyProductReviewsCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacyProductSubstitutesCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacySearchProductsCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacySearchSuggestCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacyStoresNearCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacyTrendingSearchesCompletedJob"
                    },
                    {
                      "$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": "apollo-pharmacy.brand.products",
                  "job_id": "00000000-0000-0000-0000-000000000001",
                  "platform": "apollo-pharmacy",
                  "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 Apollo Pharmacy capability run",
        "tags": [
          "Execution"
        ]
      }
    },
    "/jobs/{id}": {
      "get": {
        "description": "Get job status and result",
        "operationId": "apollo-pharmacy_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/ApolloPharmacyBrandProductsCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacyCategoriesListCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacyCategoryProductsCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacyPincodeCheckCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacyProductGetCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacyProductOffersCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacyProductReviewsCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacyProductSubstitutesCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacySearchProductsCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacySearchSuggestCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacyStoresNearCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacyTrendingSearchesCompletedJob"
                    },
                    {
                      "$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": "apollo-pharmacy.brand.products",
                  "job_id": "00000000-0000-0000-0000-000000000001",
                  "platform": "apollo-pharmacy",
                  "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 Apollo Pharmacy job",
        "tags": [
          "Jobs"
        ]
      }
    },
    "/jobs/{id}/result": {
      "get": {
        "description": "Backward-compatible alias for `/jobs/{id}`.",
        "operationId": "apollo-pharmacy_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/ApolloPharmacyBrandProductsCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacyCategoriesListCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacyCategoryProductsCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacyPincodeCheckCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacyProductGetCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacyProductOffersCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacyProductReviewsCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacyProductSubstitutesCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacySearchProductsCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacySearchSuggestCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacyStoresNearCompletedJob"
                    },
                    {
                      "$ref": "#/components/schemas/ApolloPharmacyTrendingSearchesCompletedJob"
                    },
                    {
                      "$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": "apollo-pharmacy.brand.products",
                  "job_id": "00000000-0000-0000-0000-000000000001",
                  "platform": "apollo-pharmacy",
                  "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 Apollo Pharmacy 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"
    }
  ]
}