Very APIvery.co.uk ↗
Access Very.co.uk product search and detailed product data via API. Retrieve prices, stock status, descriptions, and delivery availability.
What is the Very API?
The Very.co.uk API covers 2 endpoints for reading publicly visible product data from Very's UK online department store. Use search_products to query the catalogue by keyword with sorting and pagination, and get_product_details to retrieve 9 structured fields for a single product — including brand, current and previous price, stock status, and delivery availability.
curl -X GET 'https://api.parse.bot/scraper/0ac67894-a6bc-4eda-976d-bb54a8d46b2a/search_products?page=1&sort=relevance&query=headphones&page_size=30' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace very-co-uk-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Very.co.uk SDK — search products, drill into details."""
from parse_apis.very_co_uk_api import Very, Sort, ProductNotFound
client = Very()
# Search for headphones sorted by price (high to low), cap at 5 results.
for product_summary in client.product_summaries.search(query="headphones", sort=Sort.PRICE_DESC, limit=5):
print(product_summary.title, f"£{product_summary.price:.2f}")
# Drill down: take the first result and fetch full details via typed navigation.
hit = client.product_summaries.search(query="laptop", limit=1).first()
if hit is not None:
detail = hit.details()
print(detail.brand, detail.title)
print(f"£{detail.price:.2f}", f"(was £{detail.previous_price:.2f})" if detail.previous_price else "")
print("In stock:", detail.in_stock, "| Delivery:", detail.delivery_available)
print(detail.description[:120])
# Point lookup using an ID discovered from the search above.
if hit is not None:
try:
product = client.products.get(product_id=hit.product_id)
print(product.title, product.availability_status)
except ProductNotFound:
print("Product no longer available")
print("exercised: product_summaries.search / ProductSummary.details / products.get")
Search Very.co.uk products by keyword. Returns paginated results with up to 30 products per page (site constraint). Supports sorting by price, rating, newest, discount, and bestseller. Pagination uses the page parameter; each page returns a fixed maximum of 30 items regardless of page_size (page_size limits the number returned when lower than 30).
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| sort | string | Sort order for results. When omitted or set to 'relevance', results are in the site's default relevance order. |
| queryrequired | string | Search query text (e.g. 'headphones', 'laptop', 'dress'). |
| page_size | integer | Maximum number of products to return. The site serves at most 30 products per page; values above 30 still return 30. |
{
"type": "object",
"fields": {
"products": "array of product summaries with product_id, title, price, previous_price, product_url, image_url, availability_status",
"total_pages": "integer — total number of pages available",
"current_page": "integer — the requested page number",
"total_results": "integer — total number of matching products"
},
"sample": {
"data": {
"products": [
{
"price": 29,
"title": "WH-CH520 Wireless Bluetooth Headphones",
"image_url": "https://media.very.co.uk/i/very/VH4IV_SQ1_0000000004_BLACK_SLf?$roundel_very$&p1_img=insurance_available&fmt=auto",
"product_id": "1600861627",
"product_url": "https://www.very.co.uk/sony-wh-ch520-wireless-bluetooth-headphones/1600861627.prd",
"previous_price": 35,
"availability_status": "in_stock"
},
{
"price": 499,
"title": "AirPods Max 2 - Midnight",
"image_url": "https://media.very.co.uk/i/very/WZGRE_SQ1_0000000976_MIDNIGHT_SLf?$roundel_very$&p1_img=blank_apple&fmt=auto",
"product_id": "1601281886",
"product_url": "https://www.very.co.uk/apple-airpods-maxnbsp2-nbspmidnight/1601281886.prd",
"previous_price": null,
"availability_status": "in_stock"
}
],
"total_pages": 7,
"current_page": 1,
"total_results": 206
},
"status": "success"
}
}About the Very API
Search and Browse the Very.co.uk Catalogue
The search_products endpoint accepts a query string and returns up to 30 product summaries per page, matching Very's own site limit. Each result includes product_id, title, price, previous_price, product_url, image_url, and availability_status. The response also carries total_results, total_pages, and current_page so you can paginate systematically. The sort parameter accepts values for price, rating, newest, discount, and bestseller; omitting it returns results in relevance order.
Product Detail Lookup
Pass a numeric product_id (obtained from search_products results) to get_product_details to get a full record for that item. The response adds brand, a long-form description, an in_stock boolean, and a delivery_available boolean to the core pricing fields. The previous_price field is null when the item is not on sale, making it straightforward to detect discounted products programmatically.
Pricing and Availability Monitoring
Because both price and previous_price are returned as numeric GBP values, you can track price movements over time by polling get_product_details on a schedule. The in_stock and delivery_available booleans give a quick signal for fulfilment state without parsing free-text content. This makes the API practical for catalogue comparison, price-drop alerting, and inventory monitoring across Very's product range.
The Very API is a managed, monitored endpoint for very.co.uk — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when very.co.uk changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official very.co.uk API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track price drops on specific products by comparing
priceandprevious_priceover time - Identify discounted products by sorting
search_productsby discount and checkingprevious_price - Monitor stock availability across a list of product IDs using the
in_stockfield - Build a product feed or price-comparison table from search results with title, price, and image
- Filter search results by keyword and sort by bestseller to identify trending items
- Check
delivery_availablestatus for a product before surfacing it in a fulfilment workflow - Aggregate brand and description data from
get_product_detailsfor catalogue enrichment
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Very.co.uk have an official public developer API?+
How many products can `search_products` return per page, and can I change that?+
page_size above 30 does not increase the result count. Use the page parameter alongside total_pages to iterate through the full result set.Does the API return customer reviews or ratings for products?+
search_products and get_product_details, but does not expose review text, star ratings, or review counts. You can fork this API on Parse and revise it to add a reviews endpoint.