Morrisons Stores API
Search Morrisons stores by name, address, service or region: address, location, opening times, departments and services.
- 1 credit per call
- Failed calls are free
- Updated
- morrisons.stores.list
{ "page": { "has_more": true, "page": 1, "page_size": 25, "returned": 25, "total": 2498 }, "stores": [ { "name": "Aberdeen - King Street", "region": "Scotland", "store_format": "supermarket", "store_type": "Morrisons", "location": { "latitude": 57.1528, "longitude": -2.096246 }, "address": { "city": "Aberdeen", "addressLine1": "215 King Street", "addressLine2": "", "country": "Scotland", "county": "Aberdeenshire", "postcode": "AB24 5DA" }, "convenience": { "ExtensionValue": "" }, "pharmacy": { "ExtensionValue": "01224 624398" }, "departments": [ { "name": "cafe", "serviceName": "Cafe", "openingTimes": [ { "close": "00:00:00", "day": "Monday", "day_id": 1, "day_short": "mon", "open": "00:00:00" }, { "close": "00:00:00", "day": "Tuesday", "day_id": 2, "day_short": "tue", "open": "00:00:00" } ] }, { "name": "gardenCentre", "serviceName": "Garden Centre", "openingTimes": [ { "close": "00:00:00", "day": "Monday", "day_id": 1, "day_short": "mon", "open": "00:00:00" }, { "close": "00:00:00", "day": "Tuesday", "day_id": 2, "day_short": "tue", "open": "00:00:00" } ] } ], "linked_locations": [ { "name": 1160, "category": "Gas Station", "storeFormat": "pfs", "storeName": "Aberdeen - King Street Petrol Station", "telephone": "01224 624404", "location": { "latitude": 57.152530670166, "longitude": -2.09529995918274 }, "openingTimes": [ { "close": "23:00:00", "day": "Monday", "day_id": 1, "day_short": "mon", "open": "06:00:00" }, { "close": "23:00:00", "day": "Tuesday", "day_id": 2, "day_short": "tue", "open": "06:00:00" } ] } ], "opening_times": [ { "close": "23:00:00", "day": "Monday", "day_id": 1, "day_short": "mon", "open": "07:00:00" }, { "close": "23:00:00", "day": "Tuesday", "day_id": 2, "day_short": "tue", "open": "07:00:00" } ], "service_highlights": [ { "name": "morrisonsNow", "priority": 2, "serviceName": "Morrisons Now" }, { "name": "clickAndCollect", "priority": 3, "serviceName": "Click & Collect" } ], "services": [ { "name": "24HourCash", "serviceName": "ATM" }, { "name": "amazonLockers", "serviceName": "Amazon Locker" } ], "special_opening_times": [ { "name": "", "specialOpeningTimes": [ { "date": "", "close": "", "closed": false, "label": "", "open": "" } ] } ] }, { "name": "Aberdeen - King Street Petrol Station", "region": "Scotland", "store_format": "pfs", "store_type": "Gas Station", "location": { "latitude": 57.152530670166, "longitude": -2.09529995918274 }, "address": { "city": "Aberdeen", "addressLine1": "215 King Street", "addressLine2": "", "country": "United Kingdom", "county": "Aberdeenshire", "postcode": "AB24 5DA" }, "convenience": { "ExtensionValue": "" }, "pharmacy": { "ExtensionValue": "" }, "departments": [], "linked_locations": [], "opening_times": [ { "close": "23:00:00", "day": "Monday", "day_id": 1, "day_short": "mon", "open": "06:00:00" }, { "close": "23:00:00", "day": "Tuesday", "day_id": 2, "day_short": "tue", "open": "06:00:00" } ], "service_highlights": [], "services": [], "special_opening_times": [ { "name": "", "specialOpeningTimes": [ { "date": "", "close": "", "closed": false, "label": "", "open": "" } ] } ] } ]}
| # | Name | Region | Format | Type | Latitude | Longitude |
|---|---|---|---|---|---|---|
| 1 | Aberdeen - King Street | Scotland | supermarket | Morrisons | 57.15 | -2.1 |
| 2 | Aberdeen - King Street Petrol Station | Scotland | pfs | Gas Station | 57.15 | -2.1 |
| 3 | Abergavenny | Wales | supermarket | Morrisons | 51.82 | -3.02 |
| 4 | Aberystwyth | Wales | supermarket | Morrisons | 52.41 | -4.07 |
| 5 | Aberystwyth Petrol Station | Wales | pfs | Gas Station | 52.4 | -4.07 |
| 6 | Aberystwyth Petrol Station | Wales | pfs | Gas Station | 52.4 | -4.07 |
| 7 | Acocks Green | West Midlands | supermarket | Morrisons | 52.45 | -1.82 |
| 8 | Acomb | Yorkshire | supermarket | Morrisons | 53.95 | -1.13 |
| 9 | Acton | Greater London | supermarket | Morrisons | 51.51 | -0.27 |
| 10 | Airdrie | Scotland | supermarket | Morrisons | 55.87 | -3.98 |
What you send
The input
object of the request, with every field the endpoint accepts.
| Field | Type | Required | What it does | Example |
|---|---|---|---|---|
| page | integer | no | Which page of stores to return, starting at 1. | |
| page_size | integer | no | How many stores per page. | |
| query | string | no | Words to find in a store's name, address or services. | |
| region | string | no | Only stores in this Morrisons region, such as Scotland. |
Fields it returns
What each record in the response holds, with the values from the sample above.
| Field | Type | What it is | Example |
|---|---|---|---|
| stores[].name | string | The name as Morrisons shows it. | Aberdeen - King Street |
| stores[].region | string | The store's region. | Scotland |
| stores[].store_format | string | The kind of store, such as supermarket. | supermarket |
| stores[].store_type | string | The store's brand. | Morrisons |
| stores[].location.latitude | number | The store's latitude. | 57.15 |
| stores[].location.longitude | number | The store's longitude. | -2.1 |
| stores[].departments[].name | string | Morrisons' code for the counter, such as cafe. | cafe |
| stores[].linked_locations[].name | integer | Morrisons' number for the linked place. | 1160 |
| stores[].service_highlights[].name | string | Morrisons' code for the service, such as morrisonsNow. | morrisonsNow |
| stores[].services[].name | string | Morrisons' code for the service, such as 24HourCash. | 24HourCash |
| stores[].special_opening_times[].name | string | The part of the store the changed hours are for. | |
| stores[].linked_locations[].location | object | The linked place's map position. | 2 fields |
| stores[].location | object | The store's map position. | 2 fields |
| stores[].address.city | string | The store's town or city. | Aberdeen |
| stores[].address | object | The store's address. | 6 fields |
| stores[].address.addressLine1 | string | The first address line. | 215 King Street |
| stores[].address.addressLine2 | string | The second address line. | |
| stores[].address.country | string | The store's country. | Scotland |
| stores[].address.county | string | The store's county. | Aberdeenshire |
| stores[].address.postcode | string | The store's postcode. | AB24 5DA |
| stores[].convenience | object | Morrisons' convenience store marker. | 1 fields |
| stores[].convenience.ExtensionValue | string | yes when Morrisons marks the store as convenience, else empty. | |
| stores[].departments | array | The store's counters and services with their own hours. | 3 records |
| stores[].departments[].openingTimes | array | The counter's opening times for each day. | 7 records |
| stores[].departments[].serviceName | string | The counter's name, such as Cafe. | Cafe |
| stores[].linked_locations | array | Places linked to the store, such as its petrol station. | 1 records |
| stores[].linked_locations[].category | string | The linked place's category, such as Gas Station. | Gas Station |
| stores[].linked_locations[].openingTimes | array | The linked place's opening times for each day. | 7 records |
| stores[].linked_locations[].storeFormat | string | The linked place's format code, such as pfs for petrol station. | pfs |
| stores[].linked_locations[].storeName | string | The linked place's name. | Aberdeen - King Street Petrol Station |
| stores[].linked_locations[].telephone | string | The linked place's phone number. | 01224 624404 |
| stores[].opening_times | array | The store's opening times for each day. | 7 records |
| stores[].opening_times[].close | string | Closing time. | 23:00:00 |
| stores[].opening_times[].day | string | The day of the week. | Monday |
| stores[].opening_times[].day_id | integer | The day as a number, 0 for Sunday. | 1 |
| stores[].opening_times[].day_short | string | The day's short name, such as mon. | mon |
| stores[].opening_times[].open | string | Opening time. | 07:00:00 |
| stores[].pharmacy | object | The store's pharmacy details. | 1 fields |
| stores[].pharmacy.ExtensionValue | string | The pharmacy's phone number, when there is one. | 01224 624398 |
| stores[].service_highlights | array | The services Morrisons highlights for the store. | 4 records |
| stores[].service_highlights[].priority | integer | The order Morrisons lists the highlight in. | 2 |
| stores[].service_highlights[].serviceName | string | The service's name, such as Morrisons Now. | Morrisons Now |
| stores[].services | array | Services at the store. | 29 records |
| stores[].services[].serviceName | string | The service's name, such as ATM. | ATM |
| stores[].special_opening_times | array | Changed opening times, such as on holidays. | 1 records |
| stores[].special_opening_times[].specialOpeningTimes | array | The changed hours by date, such as bank holidays. | 1 records |
| page | object | Paging for this response. | 5 fields |
| page.has_more | boolean | Whether another page follows. | true |
| page.page | integer | Paging for this response. | 1 |
| page.page_size | integer | How many entries one page holds. | 25 |
| page.returned | integer | How many entries this page holds. | 25 |
| page.total | integer | How many stores match. | 2498 |
| stores | array | The stores. | 25 records |
Call it from your code, or ask your agent
Set UPSCRAPE_API_KEY to your key and copy a working request.
curl --request POST \ --url https://data.upscrape.com/execute \ --header "Authorization: Bearer $UPSCRAPE_API_KEY" \ --header "Content-Type: application/json" \ --header "Prefer: wait=30" \ --data '{ "capability": "morrisons.stores.list", "input": {}}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "morrisons.stores.list", "input": {}}''')response = requests.post( "https://data.upscrape.com/execute", headers={ "Authorization": f"Bearer {os.environ['UPSCRAPE_API_KEY']}", "Content-Type": "application/json", "Prefer": "wait=30", }, json=payload,)response.raise_for_status()print(json.dumps(response.json(), indent=2))
const response = await fetch("https://data.upscrape.com/execute", { method: "POST", headers: { "Authorization": `Bearer ${process.env.UPSCRAPE_API_KEY}`, "Content-Type": "application/json", "Prefer": "wait=30", }, body: JSON.stringify({ "capability": "morrisons.stores.list", "input": {}}),});if (!response.ok) { throw new Error(`Upscrape request failed: ${response.status}`);}console.log(JSON.stringify(await response.json(), null, 2));
https://data.upscrape.com/mcp
Using Upscrape, list Morrisons stores in Scotland with their format, address and opening times.
More from the Morrisons API
The same data from other platforms
Morrisons Stores API FAQ
The short answers. The docs have the long ones.
How much does the Morrisons Stores API cost?
1 credit per successful call, shown before it runs. You buy credits once, and paid credits never expire.
What do I send?
Every input is optional; the input fields below list what each one does.
Do I need a Morrisons login?
No. It reads public Morrisons data; nothing runs on your account.
Can my AI agent call it?
Yes, over MCP: the agent finds morrisons.stores.list, checks its price and runs it with the same credits as the REST API.
Your first Morrisons call is free.
Up to 100 free credits to start, no card needed.