# Products Search

Search Morrisons Groceries by keyword and return the decorated server-rendered result page with honest total and continuation status.

- Platform: [Morrisons](https://docs.upscrape.com/docs/platforms/morrisons)
- Capability ID: `morrisons.products.search`
- Cost: 1 credit per request
- Maximum runtime: 30 seconds
- Execute endpoint: `POST https://data.upscrape.com/execute`

## Request

Use the exact public capability ID in the shared execute envelope.

```bash
curl --request POST \
  --url https://data.upscrape.com/execute \
  --header "Authorization: Bearer YOUR_API_KEY" \
  --header "Content-Type: application/json" \
  --header "Prefer: wait=30" \
  --data '{
  "input": {
    "query": "whole milk"
  },
  "capability": "morrisons.products.search"
}'
```

## Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `query` | `string` | Yes | Product search query, for example "whole milk". |

### Example input

```json
{
  "query": "whole milk"
}
```

## Response

Successful output is returned in `results[0].data`. Raw platform output is intentionally open-ended and may evolve with the upstream source.

### Illustrative sample output

This redacted fixture is an example, not a fixed response schema.

```json
{
  "items": [
    {
      "available": true,
      "brand": "Morrisons",
      "image": "https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/5c73f420-c286-493a-a9e7-3d77c0a55577/300x300.jpg",
      "images": [
        {
          "bopSrcset": "https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/5c73f420-c286-493a-a9e7-3d77c0a55577/300x300.webp 300w, https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/5c73f420-c286-493a-a9e7-3d77c0a55577/500x500.webp 500w, https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/5c73f420-c286-493a-a9e7-3d77c0a55577/640x640.webp 6…",
          "description": "Morrisons Long Life British Whole Milk",
          "fopSrcset": "https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/5c73f420-c286-493a-a9e7-3d77c0a55577/100x100.webp 100w, https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/5c73f420-c286-493a-a9e7-3d77c0a55577/150x150.webp 150w, https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/5c73f420-c286-493a-a9e7-3d77c0a55577/200x200.webp 2…",
          "src": "https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/5c73f420-c286-493a-a9e7-3d77c0a55577/500x500.jpg"
        },
        {
          "bopSrcset": "https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/0b0e495e-251d-4271-bbb7-d74200f97c86/300x300.webp 300w, https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/0b0e495e-251d-4271-bbb7-d74200f97c86/500x500.webp 500w, https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/0b0e495e-251d-4271-bbb7-d74200f97c86/640x640.webp 6…",
          "description": "Morrisons Long Life British Whole Milk",
          "fopSrcset": "https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/0b0e495e-251d-4271-bbb7-d74200f97c86/100x100.webp 100w, https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/0b0e495e-251d-4271-bbb7-d74200f97c86/150x150.webp 150w, https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/0b0e495e-251d-4271-bbb7-d74200f97c86/200x200.webp 2…",
          "src": "https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/0b0e495e-251d-4271-bbb7-d74200f97c86/500x500.jpg"
        }
      ],
      "name": "Morrisons Long Life British Whole Milk",
      "price": {
        "current": {
          "amount": "6.00",
          "currency": "GBP"
        },
        "original": {
          "amount": "6.15",
          "currency": "GBP"
        },
        "unit": {
          "current": {
            "amount": "1.00",
            "currency": "GBP"
          },
          "label": "fop.price.per.litre",
          "original": {
            "amount": "1.03",
            "currency": "GBP"
          }
        }
      },
      "product_id": "cb84116a-abaa-4f3e-adf2-517487783dc1",
      "rating": {
        "count": 7,
        "overall": "4.7"
      },
      "retailer_product_id": "103113892",
      "url": "https://groceries.morrisons.com/products/morrisons-long-life-british-whole-milk/103113892"
    },
    {
      "available": true,
      "brand": "Morrisons",
      "image": "https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/74c3b23e-501d-4d01-bba2-2bd8bcd96536/300x300.jpg",
      "images": [
        {
          "bopSrcset": "https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/74c3b23e-501d-4d01-bba2-2bd8bcd96536/300x300.webp 300w, https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/74c3b23e-501d-4d01-bba2-2bd8bcd96536/500x500.webp 500w, https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/74c3b23e-501d-4d01-bba2-2bd8bcd96536/640x640.webp 6…",
          "description": "Morrisons British Whole Milk 2 Pint",
          "fopSrcset": "https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/74c3b23e-501d-4d01-bba2-2bd8bcd96536/100x100.webp 100w, https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/74c3b23e-501d-4d01-bba2-2bd8bcd96536/150x150.webp 150w, https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/74c3b23e-501d-4d01-bba2-2bd8bcd96536/200x200.webp 2…",
          "src": "https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/74c3b23e-501d-4d01-bba2-2bd8bcd96536/500x500.jpg"
        },
        {
          "bopSrcset": "https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/f2278795-4692-4935-8032-4fab81cbe4bd/300x300.webp 300w, https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/f2278795-4692-4935-8032-4fab81cbe4bd/500x500.webp 500w, https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/f2278795-4692-4935-8032-4fab81cbe4bd/640x640.webp 6…",
          "description": "Morrisons British Whole Milk 2 Pint",
          "fopSrcset": "https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/f2278795-4692-4935-8032-4fab81cbe4bd/100x100.webp 100w, https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/f2278795-4692-4935-8032-4fab81cbe4bd/150x150.webp 150w, https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/f2278795-4692-4935-8032-4fab81cbe4bd/200x200.webp 2…",
          "src": "https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/f2278795-4692-4935-8032-4fab81cbe4bd/500x500.jpg"
        },
        {
          "bopSrcset": "https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/4221663e-1759-40a2-806f-fdd006e8163b/300x300.webp 300w, https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/4221663e-1759-40a2-806f-fdd006e8163b/500x500.webp 500w, https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/4221663e-1759-40a2-806f-fdd006e8163b/640x640.webp 6…",
          "description": "Morrisons British Whole Milk 2 Pint",
          "fopSrcset": "https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/4221663e-1759-40a2-806f-fdd006e8163b/100x100.webp 100w, https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/4221663e-1759-40a2-806f-fdd006e8163b/150x150.webp 150w, https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/4221663e-1759-40a2-806f-fdd006e8163b/200x200.webp 2…",
          "src": "https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/4221663e-1759-40a2-806f-fdd006e8163b/500x500.jpg"
        }
      ],
      "name": "Morrisons British Whole Milk 2 Pint",
      "price": {
        "current": {
          "amount": "1.20",
          "currency": "GBP"
        },
        "unit": {
          "current": {
            "amount": "1.06",
            "currency": "GBP"
          },
          "label": "fop.price.per.litre"
        }
      },
      "product_id": "8701fb36-18d7-461d-b167-415a3b51b94e",
      "rating": {
        "count": 4,
        "overall": "4.0"
      },
      "retailer_product_id": "113240377",
      "url": "https://groceries.morrisons.com/products/morrisons-british-whole-milk-2-pint/113240377"
    },
    {
      "available": true,
      "brand": "Morrisons",
      "image": "https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/8ee3e09d-ea36-4dd8-8a53-89bbdb9e5f74/300x300.jpg",
      "images": [
        {
          "bopSrcset": "https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/8ee3e09d-ea36-4dd8-8a53-89bbdb9e5f74/300x300.webp 300w, https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/8ee3e09d-ea36-4dd8-8a53-89bbdb9e5f74/500x500.webp 500w, https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/8ee3e09d-ea36-4dd8-8a53-89bbdb9e5f74/640x640.webp 6…",
          "description": "Morrisons British Whole Milk 2 Pint",
          "fopSrcset": "https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/8ee3e09d-ea36-4dd8-8a53-89bbdb9e5f74/100x100.webp 100w, https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/8ee3e09d-ea36-4dd8-8a53-89bbdb9e5f74/150x150.webp 150w, https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/8ee3e09d-ea36-4dd8-8a53-89bbdb9e5f74/200x200.webp 2…",
          "src": "https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/8ee3e09d-ea36-4dd8-8a53-89bbdb9e5f74/500x500.jpg"
        },
        {
          "bopSrcset": "https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/922492bf-3ced-4696-9230-42b94c01e251/300x300.webp 300w, https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/922492bf-3ced-4696-9230-42b94c01e251/500x500.webp 500w, https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/922492bf-3ced-4696-9230-42b94c01e251/640x640.webp 6…",
          "description": "Morrisons British Whole Milk 2 Pint",
          "fopSrcset": "https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/922492bf-3ced-4696-9230-42b94c01e251/100x100.webp 100w, https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/922492bf-3ced-4696-9230-42b94c01e251/150x150.webp 150w, https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/922492bf-3ced-4696-9230-42b94c01e251/200x200.webp 2…",
          "src": "https://groceries.morrisons.com/images-v3/4b85987b-1398-4173-a0c1-3546047c9d74/922492bf-3ced-4696-9230-42b94c01e251/500x500.jpg"
        }
      ],
      "name": "Morrisons British Whole Milk 2 Pint",
      "price": {
        "current": {
          "amount": "1.20",
          "currency": "GBP"
        },
        "unit": {
          "current": {
            "amount": "1.06",
            "currency": "GBP"
          },
          "label": "fop.price.per.litre"
        }
      },
      "product_id": "be536963-9603-4476-8f14-e2eaa0282e8e",
      "rating": {
        "count": 5,
        "overall": "3.4"
      },
      "retailer_product_id": "103143451",
      "url": "https://groceries.morrisons.com/products/morrisons-british-whole-milk-2-pint/103143451"
    }
  ],
  "page": {
    "has_more": true,
    "page": 1,
    "returned": 50,
    "total_products": 51
  },
  "query": "whole milk"
}
```
### Illustrative output fields

Derived from the sample above for orientation only. These fields are not a fixed response schema.

| Path | Observed type | Example |
| --- | --- | --- |
| `items` | `array` | 3 items |
| `items` | `array` | 3 items |
| `page` | `object` | 4 fields |
| `page.has_more` | `boolean` | true |
| `page.page` | `integer` | 1 |
| `page.returned` | `integer` | 50 |
| `page.total_products` | `integer` | 51 |
| `query` | `string` | whole milk |

## Execution behavior

A `200` response completed inline. A `202` response was queued; poll `GET /jobs/{id}` until the job reaches `completed` or `failed`. Use an `Idempotency-Key` when retrying must not create a duplicate logical job.

## Related documentation

- [Authentication](https://docs.upscrape.com/docs/api/authentication)
- [Jobs and results](https://docs.upscrape.com/docs/api/jobs)
- [Errors and retries](https://docs.upscrape.com/docs/api/errors)
- [Idempotency](https://docs.upscrape.com/docs/api/idempotency)
