# Morrisons — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Search and browse Morrisons grocery products, view detailed information like reviews and pricing, discover active promotions, and get personalized product recommendations. Find exactly what you're looking for with category browsing, search suggestions, and similar product recommendations.

**Category:** E-commerce | **Website:** [morrisons.com/](https://morrisons.com/) | **Docs:** [parse.bot/marketplace/d894b565-7ba7-45e0-8f58-f24122e779bf/morrisons-com-api](https://parse.bot/marketplace/d894b565-7ba7-45e0-8f58-f24122e779bf/morrisons-com-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-morrisons-com-api-d894b565/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_category_list

Returns the full category hierarchy for browsing products. The tree has up to 4 levels of nesting via childCategories arrays. Each category includes a name, categoryId, retailerCategoryId, and productCount.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-morrisons-com-api-d894b565/get_category_list \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_product_detail

Returns full details for a single product by its numeric retailerProductId. Includes product info, detailed description, nutritional fields, breadcrumbs, promotions, and lists of similar/related product IDs.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `retailer_product_id` | string | Yes | Numeric product ID from search or category results (e.g. '113240422') |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-morrisons-com-api-d894b565/get_product_detail \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"retailer_product_id":"<string>"}'
```

### get_product_reviews

Returns customer reviews for a product by its UUID productId. Includes reviews with ratings, comments, verified buyer status, and a rating histogram showing distribution of 1-star through 5-star ratings. Results can be sorted by recency, rating, or helpfulness.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `product_id` | string | Yes | UUID productId of the product (from search_products or get_product_detail results, e.g. '721a6e29-4bab-43e1-a241-a34296dd606e') |
| `sort` | string | No | Sort order for reviews. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-morrisons-com-api-d894b565/get_product_reviews \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"product_id":"<string>","sort":"<string>"}'
```

### get_products_by_category

Returns paginated product listings for a specific category. Includes product groups with decorated products, pagination metadata, and additional page info with breadcrumbs, filters, and sort options.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `category_id` | string | Yes | Numeric retailerCategoryId from get_category_list (e.g. '176738') |
| `limit` | integer | No | Maximum number of products to return per page. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-morrisons-com-api-d894b565/get_products_by_category \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"category_id":"<string>","limit":"<integer>"}'
```

### get_promotions

Returns currently active promotions and offers across the site. Includes product groups with promoted items and additional category/filter info for the promotions page.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-morrisons-com-api-d894b565/get_promotions \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_search_suggestions

Returns search suggestions/autocomplete for a partial query. Useful for building typeahead search interfaces.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | Partial search term (e.g. 'mil', 'bre') |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-morrisons-com-api-d894b565/get_search_suggestions \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"<string>"}'
```

### get_similar_products

Returns similar or related product IDs for a given retailerProductId. The returned UUIDs are productId values that can be used with get_product_reviews.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `retailer_product_id` | string | Yes | Numeric product ID (e.g. '113240422') |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-morrisons-com-api-d894b565/get_similar_products \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"retailer_product_id":"<string>"}'
```

### search_products

Full-text search over the Morrisons product catalog. Returns paginated product groups containing decorated product objects with names, prices, images, ratings, and promotions. Each product group has a type (featured, personalized) and contains a decoratedProducts array.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Maximum number of products to return per page. |
| `query` | string | Yes | Search keyword (e.g. 'milk', 'bread', 'chicken') |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-morrisons-com-api-d894b565/search_products \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"limit":"<integer>","query":"<string>"}'
```
