↑ ↓ to move ↵ to open
Ocado API · Endpoint

Ocado Products Search API

Search public products by ingredient or name, with cursor continuation.

  • 8 credits per call
  • Failed calls are free
  • Updated
  • ocado.products.search
Response completed
{  "returned": 1,  "items": [    {      "name": "Arla BOB Semi-Skimmed Milk that Tastes like Whole",      "available": true,      "brand": "Arla",      "gtin": null,      "image": "https://www.ocado.com/images-v3/eafa5127-d256-497b-9609-4869092accd6/eeab8dca-610d-4f2f-8e42-31e353192a13/300x300.jpg",      "pack_size": "2L",      "retailer_product_id": "606356011",      "url": "https://www.ocado.com/products/arla-bob-semi-skimmed-milk-that-tastes-like-whole/606356011",      "price": {        "amount": 2.5,        "currency": "GBP"      },      "unit_price": {        "amount": 1.25,        "currency": "GBP",        "unit": "per_litre"      },      "member_prices": [],      "promotions": [        {          "buy_quantity": 2,          "description": "Buy any 2 for £4",          "end": "2026-10-06",          "id": "706e4ca7-e9da-4100-82b5-75107fa08a98",          "start": null,          "type": "multibuy",          "for_price": {            "amount": 4,            "currency": "GBP"          }        }      ]    }  ]}
Try it live, free
Input

What you send

The input object of the request, with every field the endpoint accepts.

FieldTypeRequiredWhat it doesExample
query string yes Ingredient or product name. semi skimmed milk
page_token string no
Response

Fields it returns

What each record in the response holds, with the values from the sample above.

FieldTypeExample
items[].name string Arla BOB Semi-Skimmed Milk that Tastes like Whole
items[].price object 2 fields
items[].available boolean true
items[].brand string Arla
items[].gtin null null
items[].image string https://www.ocado.com/images-v3/eafa5127-d256-497b-9609-4869092…
items[].member_prices array empty in this sample
items[].pack_size string 2L
items[].price.amount number 2.5
items[].price.currency string GBP
items[].promotions array 1 records
items[].promotions[].buy_quantity integer 2
items[].promotions[].description string Buy any 2 for £4
items[].promotions[].end string 2026-10-06
items[].promotions[].for_price object 2 fields
items[].promotions[].id string 706e4ca7-e9da-4100-82b5-75107fa08a98
items[].promotions[].start null null
items[].promotions[].type string multibuy
items[].retailer_product_id string 606356011
items[].unit_price object 3 fields
items[].unit_price.amount number 1.25
items[].unit_price.currency string GBP
items[].unit_price.unit string per_litre
items[].url string https://www.ocado.com/products/arla-bob-semi-skimmed-milk-that-…
items array 1 records
returned integer 1
REST API · MCP server

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": "ocado.products.search",  "input": {    "query": "semi skimmed milk"  }}'
In your AI agent Claude · Cursor · any MCP client
1Add the Upscrape MCP server
https://data.upscrape.com/mcp
2Ask for the data in plain words

With Upscrape, get the Ocado products search for query "semi skimmed milk". Tell me what it costs before you run it, then show the results as a table.

The agent finds the endpoint, shows you the price, and runs it with your credits.
Ocado

More from the Ocado API

Same data, other platforms

The same data from other platforms

Questions

Ocado Products Search API FAQ

The short answers. The docs have the long ones.

Still have a question? Talk to the people who build the endpoints.
How much does the Ocado Products Search API cost?

8 credits per successful call, shown before it runs. You buy credits once, and paid credits never expire.

What do I send?

Send query. The input fields below list every option with its type and limits.

Do I need an Ocado login?

No. It reads public Ocado data; nothing runs on your account.

Can my AI agent call it?

Yes, over MCP: the agent finds ocado.products.search, checks its price and runs it with the same credits as the REST API.

Get started

Your first Ocado call is free.

Up to 100 free credits to start, no card needed.