{
  "components": {
    "schemas": {
      "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"
      },
      "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"
      },
      "ExecuteAcceptedResponse": {
        "additionalProperties": false,
        "properties": {
          "capability": {
            "enum": [
              "uniqlo.products.search"
            ],
            "type": "string"
          },
          "coalesced": {
            "type": "boolean"
          },
          "job_id": {
            "format": "uuid",
            "type": "string"
          },
          "platform": {
            "enum": [
              "uniqlo"
            ],
            "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"
      },
      "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"
      },
      "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": [
              "uniqlo.products.search"
            ],
            "type": "string"
          },
          "completed_at": {
            "anyOf": [
              {
                "description": "When the source data was read and the job completed (ISO 8601 UTC). This is the observation time for the returned data, to the job's precision, not a per-item upstream timestamp. Null unless the job completed.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "error": {},
          "idempotent_replay": {
            "const": true,
            "type": "boolean"
          },
          "job_id": {
            "format": "uuid",
            "type": "string"
          },
          "platform": {
            "enum": [
              "uniqlo"
            ],
            "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "JobFailedResponse": {
        "additionalProperties": false,
        "properties": {
          "capability": {
            "enum": [
              "uniqlo.products.search"
            ],
            "type": "string"
          },
          "completed_at": {
            "anyOf": [
              {
                "description": "When the source data was read and the job completed (ISO 8601 UTC). This is the observation time for the returned data, to the job's precision, not a per-item upstream timestamp. Null unless the job completed.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "error": {
            "$ref": "#/components/schemas/JobErrorObject"
          },
          "job_id": {
            "format": "uuid",
            "type": "string"
          },
          "platform": {
            "enum": [
              "uniqlo"
            ],
            "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"
      },
      "JobPendingResponse": {
        "additionalProperties": false,
        "properties": {
          "capability": {
            "enum": [
              "uniqlo.products.search"
            ],
            "type": "string"
          },
          "job_id": {
            "format": "uuid",
            "type": "string"
          },
          "platform": {
            "enum": [
              "uniqlo"
            ],
            "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"
      },
      "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"
      },
      "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"
      },
      "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"
          }
        ]
      },
      "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"
      },
      "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"
      },
      "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"
      },
      "UniqloProductsSearchCompletedJob": {
        "additionalProperties": false,
        "properties": {
          "billing": {
            "$ref": "#/components/schemas/JobBilling"
          },
          "capability": {
            "enum": [
              "uniqlo.products.search"
            ],
            "type": "string"
          },
          "completed_at": {
            "anyOf": [
              {
                "description": "When the source data was read and the job completed (ISO 8601 UTC). This is the observation time for the returned data, to the job's precision, not a per-item upstream timestamp. Null unless the job completed.",
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "job_id": {
            "format": "uuid",
            "type": "string"
          },
          "outcome": {
            "description": "Truthful module completion detail; status is complete unless the module reports partial or incomplete output.",
            "type": "object"
          },
          "platform": {
            "enum": [
              "uniqlo"
            ],
            "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": {
                    "items": [
                      {
                        "colors": [
                          {
                            "available": null,
                            "code": "COL39",
                            "display_code": "39",
                            "display_visible": true,
                            "name": "MARRON FONCÉ"
                          },
                          {
                            "available": null,
                            "code": "COL00",
                            "display_code": "00",
                            "display_visible": true,
                            "name": "BLANC"
                          },
                          {
                            "available": null,
                            "code": "COL02",
                            "display_code": "02",
                            "display_visible": true,
                            "name": "GRIS CLAIR"
                          }
                        ],
                        "currency": "EUR",
                        "image_url": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/465185/item/eugoods_39_465185_3x4.jpg",
                        "in_stock": true,
                        "model_id": "465185",
                        "name": "T-shirt oversize AIRism en coton",
                        "price_base": 19.9,
                        "price_promo": null,
                        "product_id": "E465185-000",
                        "rating_average": 4.8,
                        "rating_count": 6180,
                        "sizes": [
                          {
                            "available": null,
                            "code": "SMA002",
                            "display_code": "002",
                            "display_visible": true,
                            "name": "XS"
                          },
                          {
                            "available": null,
                            "code": "SMA003",
                            "display_code": "003",
                            "display_visible": true,
                            "name": "S"
                          },
                          {
                            "available": null,
                            "code": "SMA004",
                            "display_code": "004",
                            "display_visible": true,
                            "name": "M"
                          }
                        ],
                        "url": "https://www.uniqlo.com/fr/fr/products/E465185-000/00"
                      },
                      {
                        "colors": [
                          {
                            "available": null,
                            "code": "COL16",
                            "display_code": "16",
                            "display_visible": true,
                            "name": "ROUGE"
                          },
                          {
                            "available": null,
                            "code": "COL00",
                            "display_code": "00",
                            "display_visible": true,
                            "name": "BLANC"
                          },
                          {
                            "available": null,
                            "code": "COL08",
                            "display_code": "08",
                            "display_visible": true,
                            "name": "GRIS FONCÉ"
                          }
                        ],
                        "currency": "EUR",
                        "image_url": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/465193/item/eugoods_16_465193_3x4.jpg",
                        "in_stock": true,
                        "model_id": "465193",
                        "name": "T-shirt AIRism en coton (Manches longues)",
                        "price_base": 24.9,
                        "price_promo": null,
                        "product_id": "E465193-000",
                        "rating_average": 4.8,
                        "rating_count": 1036,
                        "sizes": [
                          {
                            "available": null,
                            "code": "SMA002",
                            "display_code": "002",
                            "display_visible": true,
                            "name": "XS"
                          },
                          {
                            "available": null,
                            "code": "SMA003",
                            "display_code": "003",
                            "display_visible": true,
                            "name": "S"
                          },
                          {
                            "available": null,
                            "code": "SMA004",
                            "display_code": "004",
                            "display_visible": true,
                            "name": "M"
                          }
                        ],
                        "url": "https://www.uniqlo.com/fr/fr/products/E465193-000/00"
                      },
                      {
                        "colors": [
                          {
                            "available": null,
                            "code": "COL09",
                            "display_code": "09",
                            "display_visible": true,
                            "name": "NOIR"
                          },
                          {
                            "available": null,
                            "code": "COL00",
                            "display_code": "00",
                            "display_visible": true,
                            "name": "BLANC"
                          },
                          {
                            "available": null,
                            "code": "COL76",
                            "display_code": "76",
                            "display_visible": true,
                            "name": "VIOLET"
                          }
                        ],
                        "currency": "EUR",
                        "image_url": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/486103/item/eugoods_09_486103_3x4.jpg",
                        "in_stock": true,
                        "model_id": "487505",
                        "name": "T-shirt AIRism en coton (Manches longues, rayé)",
                        "price_base": 24.9,
                        "price_promo": null,
                        "product_id": "E486103-000",
                        "rating_average": 4.9,
                        "rating_count": 38,
                        "sizes": [
                          {
                            "available": null,
                            "code": "SMA002",
                            "display_code": "002",
                            "display_visible": true,
                            "name": "XS"
                          },
                          {
                            "available": null,
                            "code": "SMA003",
                            "display_code": "003",
                            "display_visible": true,
                            "name": "S"
                          },
                          {
                            "available": null,
                            "code": "SMA004",
                            "display_code": "004",
                            "display_visible": true,
                            "name": "M"
                          }
                        ],
                        "url": "https://www.uniqlo.com/fr/fr/products/E486103-000/00"
                      }
                    ],
                    "pagination": {
                      "limit": 10,
                      "offset": 0,
                      "total": 299
                    },
                    "query": "t-shirt",
                    "raw": {
                      "result": {
                        "aggregations": {
                          "colors": [
                            {
                              "code": "COL00",
                              "display": {
                                "chipType": 1,
                                "showFlag": true
                              },
                              "displayCode": "00",
                              "filterCode": "WHITE",
                              "hexBackgroundColor": "#ffffff",
                              "name": "BLANC"
                            },
                            {
                              "code": "COL01",
                              "display": {
                                "chipType": 1,
                                "showFlag": true
                              },
                              "displayCode": "01",
                              "filterCode": "WHITE",
                              "hexBackgroundColor": "#ffffff",
                              "name": "BLANC CASSÉ"
                            },
                            {
                              "code": "COL02",
                              "display": {
                                "chipType": 1,
                                "showFlag": true
                              },
                              "displayCode": "02",
                              "filterCode": "GRAY",
                              "hexBackgroundColor": "#dedede",
                              "name": "GRIS CLAIR"
                            }
                          ],
                          "filterRecommendations": [
                            {
                              "displayText": "",
                              "facetType": "categories",
                              "groupName": "l1",
                              "queryPath": [
                                "l1_category_id"
                              ],
                              "values": [
                                {
                                  "count": 140,
                                  "localizationName": "WOMEN",
                                  "name": "37608"
                                },
                                {
                                  "count": 128,
                                  "localizationName": "MEN",
                                  "name": "37609"
                                },
                                {
                                  "count": 65,
                                  "localizationName": "KIDS",
                                  "name": "37610"
                                }
                              ]
                            }
                          ],
                          "flags": [
                            {
                              "code": "discount",
                              "docCount": 111,
                              "id": 12,
                              "name": "Prix en baisse",
                              "rank": 7
                            },
                            {
                              "code": "salesStart",
                              "docCount": 5,
                              "id": 6,
                              "name": "Nouveau",
                              "rank": 12
                            },
                            {
                              "code": "newSKU",
                              "docCount": 4,
                              "id": 7,
                              "name": "Nouvelle couleur",
                              "rank": 13
                            }
                          ],
                          "plds": [
                            {
                              "code": "PTB000",
                              "displayCode": "000",
                              "docCount": 299,
                              "name": "-"
                            }
                          ],
                          "prices": [
                            {
                              "count": 299,
                              "from": null,
                              "key": "*-50.0",
                              "to": 50
                            },
                            {
                              "count": 0,
                              "from": 50,
                              "key": "50.0-70.0",
                              "to": 70
                            },
                            {
                              "count": 0,
                              "from": 70,
                              "key": "70.0-100.0",
                              "to": 100
                            }
                          ],
                          "ratings": [
                            {
                              "accumulated": 262,
                              "count": 1,
                              "rating": 0
                            },
                            {
                              "accumulated": 261,
                              "count": 0,
                              "rating": 0.5
                            },
                            {
                              "accumulated": 261,
                              "count": 0,
                              "rating": 1
                            }
                          ],
                          "sizes": [
                            {
                              "code": "BNC080",
                              "display": {
                                "chipType": 1,
                                "showFlag": true
                              },
                              "displayCode": "080",
                              "name": "12-18 mois (80cm)"
                            },
                            {
                              "code": "BNC090",
                              "display": {
                                "chipType": 1,
                                "showFlag": true
                              },
                              "displayCode": "090",
                              "name": "18-24 mois (90cm)"
                            },
                            {
                              "code": "BNC100",
                              "display": {
                                "chipType": 1,
                                "showFlag": true
                              },
                              "displayCode": "100",
                              "name": "3 ans (100cm)"
                            }
                          ],
                          "tags": [
                            {
                              "docCount": 299,
                              "groupLocalizationName": "Catégorie",
                              "groupName": "category",
                              "values": [
                                {
                                  "docCount": 7,
                                  "localizationName": "outerwear",
                                  "name": "outerwear"
                                },
                                {
                                  "docCount": 295,
                                  "localizationName": "Tops",
                                  "name": "tops"
                                },
                                {
                                  "docCount": 1,
                                  "localizationName": "Pantalons",
                                  "name": "bottoms"
                                }
                              ]
                            },
                            {
                              "docCount": 218,
                              "groupLocalizationName": "Type de produit",
                              "groupName": "lineup",
                              "values": [
                                {
                                  "docCount": 4,
                                  "localizationName": "Vestes",
                                  "name": "jackets"
                                },
                                {
                                  "docCount": 161,
                                  "localizationName": "T-shirts",
                                  "name": "t-shirts"
                                },
                                {
                                  "docCount": 16,
                                  "localizationName": "Sweats & Sweats à capuche",
                                  "name": "sweatshirts-and-hoodies"
                                }
                              ]
                            },
                            {
                              "docCount": 153,
                              "groupLocalizationName": "Longueur des manches",
                              "groupName": "sleeve-length",
                              "values": [
                                {
                                  "docCount": 70,
                                  "localizationName": "Manches 1/2",
                                  "name": "short-sleeves"
                                },
                                {
                                  "docCount": 74,
                                  "localizationName": "Manches Longues",
                                  "name": "long-sleeve"
                                },
                                {
                                  "docCount": 10,
                                  "localizationName": "Manches raccourcies",
                                  "name": "nine-quarter-sleeves"
                                }
                              ]
                            }
                          ],
                          "tree": {
                            "categories": [
                              {
                                "id": 150686,
                                "name": "Vestes & Manteaux"
                              },
                              {
                                "id": 150688,
                                "name": "T-shirts, Sweats & Polaires"
                              },
                              {
                                "id": 150687,
                                "name": "Pulls & Cardigans"
                              }
                            ],
                            "classes": [
                              {
                                "id": 84986,
                                "name": "T-shirts, Sweats & Polaires"
                              },
                              {
                                "id": 100139,
                                "name": "Chemises, Blouses & Polos"
                              },
                              {
                                "id": 100103,
                                "name": "Pulls & Cardigans"
                              }
                            ],
                            "genders": [
                              {
                                "id": 37608,
                                "name": "WOMEN"
                              },
                              {
                                "id": 37609,
                                "name": "MEN"
                              },
                              {
                                "id": 37610,
                                "name": "KIDS"
                              }
                            ],
                            "subcategories": [
                              {
                                "id": 147375,
                                "name": "Sans manches"
                              },
                              {
                                "id": 85760,
                                "name": "Manches Courtes"
                              },
                              {
                                "id": 85208,
                                "name": "Manches Longues"
                              }
                            ]
                          }
                        },
                        "items": [
                          {
                            "colors": [
                              {
                                "code": "COL39",
                                "display": {
                                  "chipType": 1,
                                  "showFlag": true
                                },
                                "displayCode": "39",
                                "filterCode": "BROWN",
                                "name": "MARRON FONCÉ"
                              },
                              {
                                "code": "COL00",
                                "display": {
                                  "chipType": 1,
                                  "showFlag": true
                                },
                                "displayCode": "00",
                                "filterCode": "WHITE",
                                "name": "BLANC"
                              },
                              {
                                "code": "COL02",
                                "display": {
                                  "chipType": 1,
                                  "showFlag": true
                                },
                                "displayCode": "02",
                                "filterCode": "GRAY",
                                "name": "GRIS CLAIR"
                              }
                            ],
                            "genderCategory": "UNISEX",
                            "genderName": "Unisexe",
                            "images": {
                              "chip": {
                                "00": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465185/chip/goods_00_465185_chip.jpg",
                                "02": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465185/chip/goods_02_465185_chip.jpg",
                                "07": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465185/chip/goods_07_465185_chip.jpg",
                                "09": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465185/chip/goods_09_465185_chip.jpg",
                                "11": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465185/chip/goods_11_465185_chip.jpg",
                                "12": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465185/chip/goods_12_465185_chip.jpg",
                                "15": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465185/chip/goods_15_465185_chip.jpg",
                                "17": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465185/chip/goods_17_465185_chip.jpg",
                                "18": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465185/chip/goods_18_465185_chip.jpg",
                                "19": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465185/chip/goods_19_465185_chip.jpg",
                                "33": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465185/chip/goods_33_465185_chip.jpg",
                                "34": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465185/chip/goods_34_465185_chip.jpg",
                                "35": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465185/chip/goods_35_465185_chip.jpg",
                                "39": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465185/chip/goods_39_465185_chip.jpg",
                                "41": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465185/chip/goods_41_465185_chip.jpg",
                                "42": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465185/chip/goods_42_465185_chip.jpg",
                                "50": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465185/chip/goods_50_465185_chip.jpg",
                                "52": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465185/chip/goods_52_465185_chip.jpg",
                                "53": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465185/chip/goods_53_465185_chip.jpg",
                                "55": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465185/chip/goods_55_465185_chip.jpg",
                                "57": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465185/chip/goods_57_465185_chip.jpg",
                                "58": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465185/chip/goods_58_465185_chip.jpg",
                                "64": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465185/chip/goods_64_465185_chip.jpg",
                                "65": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465185/chip/goods_65_465185_chip.jpg",
                                "66": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465185/chip/goods_66_465185_chip.jpg",
                                "67": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465185/chip/goods_67_465185_chip.jpg",
                                "69": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465185/chip/goods_69_465185_chip.jpg",
                                "70": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465185/chip/goods_70_465185_chip.jpg",
                                "71": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465185/chip/goods_71_465185_chip.jpg",
                                "76": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465185/chip/goods_76_465185_chip.jpg"
                              },
                              "main": {
                                "00": {
                                  "image": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/465185/item/eugoods_00_465185_3x4.jpg",
                                  "model": [
                                    {
                                      "modelGender": "Men"
                                    }
                                  ]
                                },
                                "02": {
                                  "image": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/465185/item/eugoods_02_465185_3x4.jpg",
                                  "model": [
                                    {
                                      "modelGender": "Men"
                                    }
                                  ]
                                },
                                "07": {
                                  "image": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/465185/item/eugoods_07_465185_3x4.jpg",
                                  "model": [
                                    {
                                      "modelGender": "Men"
                                    }
                                  ]
                                },
                                "09": {
                                  "image": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/465185/item/eugoods_09_465185_3x4.jpg",
                                  "model": [
                                    {
                                      "modelGender": "Men"
                                    }
                                  ]
                                },
                                "17": {
                                  "image": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/465185/item/eugoods_17_465185_3x4.jpg",
                                  "model": [
                                    {
                                      "modelGender": "Men"
                                    }
                                  ]
                                },
                                "18": {
                                  "image": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/465185/item/eugoods_18_465185_3x4.jpg",
                                  "model": [
                                    {
                                      "modelGender": "Men"
                                    }
                                  ]
                                },
                                "39": {
                                  "image": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/465185/item/eugoods_39_465185_3x4.jpg",
                                  "model": [
                                    {
                                      "modelGender": "Men"
                                    }
                                  ]
                                },
                                "42": {
                                  "image": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/465185/item/eugoods_42_465185_3x4.jpg",
                                  "model": [
                                    {
                                      "modelGender": "Men"
                                    }
                                  ]
                                },
                                "50": {
                                  "image": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/465185/item/eugoods_50_465185_3x4.jpg",
                                  "model": [
                                    {
                                      "modelGender": "Men"
                                    }
                                  ]
                                },
                                "58": {
                                  "image": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/465185/item/eugoods_58_465185_3x4.jpg",
                                  "model": [
                                    {
                                      "modelGender": "Men"
                                    }
                                  ]
                                },
                                "65": {
                                  "image": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/465185/item/eugoods_65_465185_3x4.jpg",
                                  "model": [
                                    {
                                      "modelGender": "Men"
                                    }
                                  ]
                                },
                                "69": {
                                  "image": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/465185/item/eugoods_69_465185_3x4.jpg",
                                  "model": [
                                    {
                                      "modelGender": "Men"
                                    }
                                  ]
                                },
                                "70": {
                                  "image": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/465185/item/eugoods_70_465185_3x4.jpg",
                                  "model": [
                                    {
                                      "modelGender": "Men"
                                    }
                                  ]
                                }
                              },
                              "sub": [
                                {
                                  "colorCode": "39",
                                  "image": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/465185/sub/eugoods_465185_sub3_3x4.jpg",
                                  "model": [
                                    {
                                      "modelGender": "Men"
                                    }
                                  ]
                                },
                                {
                                  "colorCode": "39",
                                  "image": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/465185/sub/eugoods_465185_sub6_3x4.jpg",
                                  "model": [
                                    {
                                      "modelGender": "Women"
                                    }
                                  ]
                                },
                                {
                                  "colorCode": "39",
                                  "image": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/465185/sub/eugoods_465185_sub7_3x4.jpg",
                                  "model": [
                                    {
                                      "modelGender": "Women"
                                    }
                                  ]
                                }
                              ]
                            },
                            "isTextSearchHit": true,
                            "l1Id": "465185",
                            "name": "T-shirt oversize AIRism en coton",
                            "plds": [
                              {
                                "code": "PTB000",
                                "display": {
                                  "chipType": 0,
                                  "showFlag": false
                                },
                                "displayCode": "000",
                                "name": "-"
                              }
                            ],
                            "priceGroup": "00",
                            "prices": {
                              "base": {
                                "currency": {
                                  "code": "EUR",
                                  "symbol": "€"
                                },
                                "value": 19.9
                              },
                              "isDualPrice": false,
                              "promo": null
                            },
                            "productId": "E465185-000",
                            "promotionText": "",
                            "rating": {
                              "average": 4.8,
                              "count": 6180
                            },
                            "representative": {
                              "color": {
                                "code": "COL39",
                                "display": {
                                  "chipType": 1,
                                  "showFlag": true
                                },
                                "displayCode": "39",
                                "filterCode": "BROWN",
                                "name": "MARRON FONCÉ"
                              },
                              "communicationCode": "465185-39-002-000",
                              "flags": {
                                "priceFlags": [],
                                "productFlags": [
                                  {
                                    "code": "unisex",
                                    "effectiveTime": {},
                                    "flagColor": "normal",
                                    "id": 135,
                                    "isRepresentativeL2Flag": true,
                                    "name": "Unisexe",
                                    "rank": 103,
                                    "type": "product_flag"
                                  }
                                ]
                              },
                              "l2Id": "09866271",
                              "pld": {
                                "code": "PTB000",
                                "display": {
                                  "chipType": 0,
                                  "showFlag": false
                                },
                                "displayCode": "000",
                                "name": "-"
                              },
                              "sales": true,
                              "size": {
                                "code": "SMA002",
                                "display": {
                                  "chipType": 0,
                                  "showFlag": true
                                },
                                "displayCode": "002",
                                "name": "XS"
                              }
                            },
                            "representativeColorDisplayCode": "39",
                            "sizeGender": "MEN",
                            "sizes": [
                              {
                                "code": "SMA002",
                                "display": {
                                  "chipType": 0,
                                  "showFlag": true
                                },
                                "displayCode": "002",
                                "name": "XS"
                              },
                              {
                                "code": "SMA003",
                                "display": {
                                  "chipType": 0,
                                  "showFlag": true
                                },
                                "displayCode": "003",
                                "name": "S"
                              },
                              {
                                "code": "SMA004",
                                "display": {
                                  "chipType": 0,
                                  "showFlag": true
                                },
                                "displayCode": "004",
                                "name": "M"
                              }
                            ],
                            "storeStockOnly": false
                          },
                          {
                            "colors": [
                              {
                                "code": "COL16",
                                "display": {
                                  "chipType": 1,
                                  "showFlag": true
                                },
                                "displayCode": "16",
                                "filterCode": "RED",
                                "name": "ROUGE"
                              },
                              {
                                "code": "COL00",
                                "display": {
                                  "chipType": 1,
                                  "showFlag": true
                                },
                                "displayCode": "00",
                                "filterCode": "WHITE",
                                "name": "BLANC"
                              },
                              {
                                "code": "COL08",
                                "display": {
                                  "chipType": 1,
                                  "showFlag": true
                                },
                                "displayCode": "08",
                                "filterCode": "GRAY",
                                "name": "GRIS FONCÉ"
                              }
                            ],
                            "genderCategory": "UNISEX",
                            "genderName": "Unisexe",
                            "images": {
                              "chip": {
                                "00": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465193/chip/goods_00_465193_chip.jpg",
                                "06": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465193/chip/goods_06_465193_chip.jpg",
                                "08": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465193/chip/goods_08_465193_chip.jpg",
                                "09": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465193/chip/goods_09_465193_chip.jpg",
                                "11": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465193/chip/goods_11_465193_chip.jpg",
                                "12": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465193/chip/goods_12_465193_chip.jpg",
                                "16": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465193/chip/goods_16_465193_chip.jpg",
                                "19": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465193/chip/goods_19_465193_chip.jpg",
                                "30": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465193/chip/goods_30_465193_chip.jpg",
                                "39": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465193/chip/goods_39_465193_chip.jpg",
                                "52": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465193/chip/goods_52_465193_chip.jpg",
                                "56": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465193/chip/goods_56_465193_chip.jpg",
                                "58": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465193/chip/goods_58_465193_chip.jpg",
                                "65": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465193/chip/goods_65_465193_chip.jpg",
                                "68": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465193/chip/goods_68_465193_chip.jpg",
                                "69": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465193/chip/goods_69_465193_chip.jpg",
                                "70": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465193/chip/goods_70_465193_chip.jpg",
                                "75": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465193/chip/goods_75_465193_chip.jpg",
                                "76": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465193/chip/goods_76_465193_chip.jpg",
                                "77": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465193/chip/goods_77_465193_chip.jpg"
                              },
                              "main": {
                                "00": {
                                  "image": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/465193/item/eugoods_00_465193_3x4.jpg",
                                  "model": [
                                    {
                                      "modelGender": "Men"
                                    }
                                  ]
                                },
                                "08": {
                                  "image": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/465193/item/eugoods_08_465193_3x4.jpg",
                                  "model": [
                                    {
                                      "modelGender": "Men"
                                    }
                                  ]
                                },
                                "09": {
                                  "image": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/465193/item/eugoods_09_465193_3x4.jpg",
                                  "model": [
                                    {
                                      "modelGender": "Men"
                                    }
                                  ]
                                },
                                "16": {
                                  "image": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/465193/item/eugoods_16_465193_3x4.jpg",
                                  "model": [
                                    {
                                      "modelGender": "Men"
                                    }
                                  ]
                                },
                                "30": {
                                  "image": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/465193/item/eugoods_30_465193_3x4.jpg",
                                  "model": [
                                    {
                                      "modelGender": "Men"
                                    }
                                  ]
                                },
                                "39": {
                                  "image": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/465193/item/eugoods_39_465193_3x4.jpg",
                                  "model": [
                                    {
                                      "modelGender": "Men"
                                    }
                                  ]
                                },
                                "65": {
                                  "image": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/465193/item/eugoods_65_465193_3x4.jpg",
                                  "model": [
                                    {
                                      "modelGender": "Men"
                                    }
                                  ]
                                },
                                "68": {
                                  "image": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/465193/item/eugoods_68_465193_3x4.jpg",
                                  "model": [
                                    {
                                      "modelGender": "Men"
                                    }
                                  ]
                                }
                              },
                              "sub": [
                                {
                                  "image": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/465193/sub/goods_465193_sub1_3x4.jpg",
                                  "model": []
                                },
                                {
                                  "colorCode": "16",
                                  "image": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/465193/sub/eugoods_465193_sub3_3x4.jpg",
                                  "model": [
                                    {
                                      "modelGender": "Men"
                                    }
                                  ]
                                },
                                {
                                  "colorCode": "16",
                                  "image": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/465193/sub/eugoods_465193_sub6_3x4.jpg",
                                  "model": [
                                    {
                                      "modelGender": "Women"
                                    }
                                  ]
                                }
                              ]
                            },
                            "isTextSearchHit": true,
                            "l1Id": "465193",
                            "name": "T-shirt AIRism en coton (Manches longues)",
                            "plds": [
                              {
                                "code": "PTB000",
                                "display": {
                                  "chipType": 0,
                                  "showFlag": false
                                },
                                "displayCode": "000",
                                "name": "-"
                              }
                            ],
                            "priceGroup": "00",
                            "prices": {
                              "base": {
                                "currency": {
                                  "code": "EUR",
                                  "symbol": "€"
                                },
                                "value": 24.9
                              },
                              "isDualPrice": false,
                              "promo": null
                            },
                            "productId": "E465193-000",
                            "promotionText": "",
                            "rating": {
                              "average": 4.8,
                              "count": 1036
                            },
                            "representative": {
                              "color": {
                                "code": "COL16",
                                "display": {
                                  "chipType": 1,
                                  "showFlag": true
                                },
                                "displayCode": "16",
                                "filterCode": "RED",
                                "name": "ROUGE"
                              },
                              "communicationCode": "465193-16-002-000",
                              "flags": {
                                "priceFlags": [],
                                "productFlags": [
                                  {
                                    "code": "unisex",
                                    "effectiveTime": {},
                                    "flagColor": "normal",
                                    "id": 135,
                                    "isRepresentativeL2Flag": true,
                                    "name": "Unisexe",
                                    "rank": 103,
                                    "type": "product_flag"
                                  }
                                ]
                              },
                              "l2Id": "09458935",
                              "pld": {
                                "code": "PTB000",
                                "display": {
                                  "chipType": 0,
                                  "showFlag": false
                                },
                                "displayCode": "000",
                                "name": "-"
                              },
                              "sales": true,
                              "size": {
                                "code": "SMA002",
                                "display": {
                                  "chipType": 0,
                                  "showFlag": true
                                },
                                "displayCode": "002",
                                "name": "XS"
                              }
                            },
                            "representativeColorDisplayCode": "16",
                            "sizeGender": "MEN",
                            "sizes": [
                              {
                                "code": "SMA002",
                                "display": {
                                  "chipType": 0,
                                  "showFlag": true
                                },
                                "displayCode": "002",
                                "name": "XS"
                              },
                              {
                                "code": "SMA003",
                                "display": {
                                  "chipType": 0,
                                  "showFlag": true
                                },
                                "displayCode": "003",
                                "name": "S"
                              },
                              {
                                "code": "SMA004",
                                "display": {
                                  "chipType": 0,
                                  "showFlag": true
                                },
                                "displayCode": "004",
                                "name": "M"
                              }
                            ],
                            "storeStockOnly": false
                          },
                          {
                            "colors": [
                              {
                                "code": "COL09",
                                "display": {
                                  "chipType": 1,
                                  "showFlag": true
                                },
                                "displayCode": "09",
                                "filterCode": "BLACK",
                                "name": "NOIR"
                              },
                              {
                                "code": "COL00",
                                "display": {
                                  "chipType": 1,
                                  "showFlag": true
                                },
                                "displayCode": "00",
                                "filterCode": "WHITE",
                                "name": "BLANC"
                              },
                              {
                                "code": "COL76",
                                "display": {
                                  "chipType": 1,
                                  "showFlag": true
                                },
                                "displayCode": "76",
                                "filterCode": "PURPLE",
                                "name": "VIOLET"
                              }
                            ],
                            "genderCategory": "UNISEX",
                            "genderName": "Unisexe",
                            "images": {
                              "chip": {
                                "00": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/486103/chip/goods_00_486103_chip.jpg",
                                "09": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/486103/chip/goods_09_486103_chip.jpg",
                                "76": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/486103/chip/goods_76_486103_chip.jpg"
                              },
                              "main": {
                                "00": {
                                  "image": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/486103/item/eugoods_00_486103_3x4.jpg",
                                  "model": [
                                    {
                                      "modelGender": "Men"
                                    }
                                  ]
                                },
                                "09": {
                                  "image": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/486103/item/eugoods_09_486103_3x4.jpg",
                                  "model": [
                                    {
                                      "modelGender": "Men"
                                    }
                                  ]
                                },
                                "76": {
                                  "image": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/486103/item/eugoods_76_486103_3x4.jpg",
                                  "model": [
                                    {
                                      "modelGender": "Men"
                                    }
                                  ]
                                }
                              },
                              "sub": [
                                {
                                  "image": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/486103/sub/goods_486103_sub1_3x4.jpg",
                                  "model": []
                                },
                                {
                                  "image": "https://image.uniqlo.com/UQ/ST3/WesternCommon/imagesgoods/486103/sub/goods_486103_sub2_3x4.jpg",
                                  "model": []
                                },
                                {
                                  "colorCode": "00",
                                  "image": "https://image.uniqlo.com/UQ/ST3/eu/imagesgoods/486103/sub/eugoods_486103_sub3_3x4.jpg",
                                  "model": [
                                    {
                                      "modelGender": "Men"
                                    }
                                  ]
                                }
                              ]
                            },
                            "isTextSearchHit": true,
                            "l1Id": "487505",
                            "name": "T-shirt AIRism en coton (Manches longues, rayé)",
                            "plds": [
                              {
                                "code": "PTB000",
                                "display": {
                                  "chipType": 0,
                                  "showFlag": false
                                },
                                "displayCode": "000",
                                "name": "-"
                              }
                            ],
                            "priceGroup": "00",
                            "prices": {
                              "base": {
                                "currency": {
                                  "code": "EUR",
                                  "symbol": "€"
                                },
                                "value": 24.9
                              },
                              "isDualPrice": false,
                              "promo": null
                            },
                            "productId": "E486103-000",
                            "promotionText": "",
                            "rating": {
                              "average": 4.9,
                              "count": 38
                            },
                            "representative": {
                              "color": {
                                "code": "COL09",
                                "display": {
                                  "chipType": 1,
                                  "showFlag": true
                                },
                                "displayCode": "09",
                                "filterCode": "BLACK",
                                "name": "NOIR"
                              },
                              "communicationCode": "487505-09-002-000",
                              "flags": {
                                "priceFlags": [],
                                "productFlags": [
                                  {
                                    "code": "unisex",
                                    "effectiveTime": {},
                                    "flagColor": "normal",
                                    "id": 135,
                                    "isRepresentativeL2Flag": true,
                                    "name": "Unisexe",
                                    "rank": 103,
                                    "type": "product_flag"
                                  }
                                ]
                              },
                              "l2Id": "09339975",
                              "pld": {
                                "code": "PTB000",
                                "display": {
                                  "chipType": 0,
                                  "showFlag": false
                                },
                                "displayCode": "000",
                                "name": "-"
                              },
                              "sales": true,
                              "size": {
                                "code": "SMA002",
                                "display": {
                                  "chipType": 0,
                                  "showFlag": true
                                },
                                "displayCode": "002",
                                "name": "XS"
                              }
                            },
                            "representativeColorDisplayCode": "09",
                            "sizeGender": "MEN",
                            "sizes": [
                              {
                                "code": "SMA002",
                                "display": {
                                  "chipType": 0,
                                  "showFlag": true
                                },
                                "displayCode": "002",
                                "name": "XS"
                              },
                              {
                                "code": "SMA003",
                                "display": {
                                  "chipType": 0,
                                  "showFlag": true
                                },
                                "displayCode": "003",
                                "name": "S"
                              },
                              {
                                "code": "SMA004",
                                "display": {
                                  "chipType": 0,
                                  "showFlag": true
                                },
                                "displayCode": "004",
                                "name": "M"
                              }
                            ],
                            "storeStockOnly": false
                          }
                        ],
                        "pagination": {
                          "count": 10,
                          "offset": 0,
                          "total": 299
                        },
                        "relatedKeywords": [
                          "t-shirts manches longues",
                          "Sweat-shirt à capuche homme",
                          "t-shirts manches longues homme"
                        ],
                        "relaxedQueries": [
                          "t-shirt"
                        ],
                        "relaxedQueryItems": [],
                        "textSearchHitCount": 299,
                        "vectorSearchHitCount": 0
                      },
                      "status": "ok"
                    }
                  }
                },
                "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"
      },
      "UniqloProductsSearchExecuteRequest": {
        "additionalProperties": false,
        "description": "Search Uniqlo France products by keyword with color, size, price-range and promotion filters, plus prices, stock and offset paging.",
        "example": {
          "capability": "uniqlo.products.search",
          "input": {
            "limit": 10,
            "query": "t-shirt"
          }
        },
        "properties": {
          "capability": {
            "enum": [
              "uniqlo.products.search"
            ],
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/UniqloProductsSearchInput"
          },
          "max_credits": {
            "description": "Optional credit ceiling. The job is refused with `credit_limit_exceeded` before acceptance when its published price is higher. Takes precedence over the `X-Max-Credits` header.",
            "minimum": 1,
            "type": "integer"
          },
          "network": {
            "$ref": "#/components/schemas/ExecuteNetwork"
          },
          "timeout_ms": {
            "description": "Optional request timeout in milliseconds. Values above the capability timeout are rejected.",
            "maximum": 30000,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "capability",
          "input"
        ],
        "type": "object"
      },
      "UniqloProductsSearchInput": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false,
        "properties": {
          "colors": {
            "description": "Native colour codes, e.g. [\"COL09\"] for NOIR. Codes come from the source colour aggregation (`code`). A well-formed but unknown code returns an empty page.",
            "items": {
              "pattern": "^COL[0-9]{2,4}$",
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          },
          "include_unavailable": {
            "default": false,
            "type": "boolean"
          },
          "limit": {
            "default": 36,
            "maximum": 96,
            "minimum": 1,
            "type": "integer"
          },
          "offset": {
            "default": 0,
            "minimum": 0,
            "type": "integer"
          },
          "price_max": {
            "description": "Upper inclusive price bound in EUR. Must be supplied together with price_min.",
            "minimum": 0,
            "type": "integer"
          },
          "price_min": {
            "description": "Lower inclusive price bound in EUR. Must be supplied together with price_max and be <= price_max.",
            "minimum": 0,
            "type": "integer"
          },
          "promo": {
            "default": false,
            "description": "Keep only products with a markdown (source `discount` flag, \"Prix en baisse\").",
            "type": "boolean"
          },
          "query": {
            "maxLength": 120,
            "pattern": "\\S",
            "type": "string"
          },
          "sizes": {
            "description": "Native size codes, e.g. [\"SMA004\"] for M. Codes come from the source size aggregation (`code`).",
            "items": {
              "pattern": "^SMA[0-9]{3,4}$",
              "type": "string"
            },
            "maxItems": 20,
            "type": "array"
          },
          "sort": {
            "default": 0,
            "description": "Verified source sort: 0 default, 2 price low to high, 3 price high to low.",
            "enum": [
              0,
              2,
              3
            ],
            "type": "integer"
          }
        },
        "required": [
          "query"
        ],
        "title": "uniqlo.products.search",
        "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"
      }
    },
    "securitySchemes": {
      "BearerAuth": {
        "bearerFormat": "API Key",
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "description": "Get the Uniqlo France catalog as clean JSON: product prices and markdowns in euros, stock by colour and size, and ratings. Browse a category, search by keyword or read one product.\nThis spec includes only the live `Uniqlo` capabilities exposed by Upscrape.\nExecution uses the generic `POST /execute` endpoint and job polling uses `GET /jobs/{id}`.\nSupported capabilities: `uniqlo.products.search`\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": "Uniqlo 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": "uniqlo_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": "uniqlo.products.search",
                "input": {
                  "limit": 10,
                  "query": "t-shirt"
                }
              },
              "schema": {
                "$ref": "#/components/schemas/UniqloProductsSearchExecuteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/UniqloProductsSearchCompletedJob"
                    },
                    {
                      "$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": "uniqlo.products.search",
                  "job_id": "00000000-0000-0000-0000-000000000001",
                  "platform": "uniqlo",
                  "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 Uniqlo capability run",
        "tags": [
          "Execution"
        ]
      }
    },
    "/jobs/{id}": {
      "get": {
        "description": "Get job status and result",
        "operationId": "uniqlo_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/UniqloProductsSearchCompletedJob"
                    },
                    {
                      "$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": "uniqlo.products.search",
                  "job_id": "00000000-0000-0000-0000-000000000001",
                  "platform": "uniqlo",
                  "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 Uniqlo job",
        "tags": [
          "Jobs"
        ]
      }
    },
    "/jobs/{id}/result": {
      "get": {
        "description": "Backward-compatible alias for `/jobs/{id}`.",
        "operationId": "uniqlo_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/UniqloProductsSearchCompletedJob"
                    },
                    {
                      "$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": "uniqlo.products.search",
                  "job_id": "00000000-0000-0000-0000-000000000001",
                  "platform": "uniqlo",
                  "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 Uniqlo 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"
    }
  ]
}