rhsplants.co.uk APIrhsplants.co.uk ↗
Access the RHS Plants catalogue via API. Search, list by category, and retrieve detailed growing conditions, images, and purchasing options for thousands of plants.
curl -X GET 'https://api.parse.bot/scraper/3fbe0228-b288-448e-9b23-647ad0851316/list_plants?page=1&sort=7&limit=10&can_order=true&category_id=29' \ -H 'X-API-Key: $PARSE_API_KEY'
List plants from the main catalogue with pagination and optional filtering/sorting. Returns paginated plant items with name, URL, image, and price.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (1-indexed). |
| sort | string | Sort order. Accepted values: '7' (popularity), '6' (price high-low). |
| limit | integer | Items per page (max 100). |
| can_order | boolean | Filter to only show orderable items. |
| category_id | string | Category ID to filter by. '29' returns all plants. |
{
"type": "object",
"fields": {
"page": "integer current page number",
"items": "array of plant objects with name, url, image_url, and price",
"limit": "integer items per page",
"total": "integer total count of matching plants"
},
"sample": {
"data": {
"page": 1,
"items": [
{
"url": "https://www.rhsplants.co.uk/plants/_/agastache-blue-fortune/classid.208/",
"name": "Agastache Blue Fortune",
"price": "From £7.19",
"image_url": "https://img.crocdn.co.uk/images/products2/pl/00/00/00/02/pl0000000208.jpg?width=440&height=440"
}
],
"limit": 10,
"total": 0
},
"status": "success"
}
}About the rhsplants.co.uk API
The RHS Plants API provides 4 endpoints for querying the Royal Horticultural Society's plant catalogue at rhsplants.co.uk. Use search_plants to find plants by keyword, list_plants to paginate and sort the full catalogue, list_plants_by_category to scope results to a specific category slug, and get_plant_detail to retrieve structured growing attributes, images, pricing options, and companion plant data for any individual listing.
Browsing and Filtering the Catalogue
The list_plants endpoint returns paginated plant items — each with name, url, image_url, and price — from the main catalogue. You can supply a category_id (e.g. '29' for all plants), sort by popularity ('7') or price descending ('6'), and filter to orderable items only using can_order. The limit parameter supports up to 100 items per page, and total in the response tells you how many matching plants exist across all pages.
Category-Based Listing and Search
list_plants_by_category accepts a category_slug string — such as 'perennials', 'shrubs', or 'seeds' — matching the URL path used on the site, and returns the same paginated item structure. search_plants takes a free-text query and returns matched plant objects alongside categories (an array of category name strings) and category_links (full URLs to those category pages), making it straightforward to combine keyword discovery with category-level browsing.
Plant Detail Data
get_plant_detail accepts a full plant URL and returns the richest payload. The attributes object maps horticultural properties — such as flowering period, position, and hardiness — to their values. options is an array of purchasing variants, each carrying sku, description, price, was_price, stock_status, and full_text. The response also includes an images array of image URLs, a full description string, and a companion_plants array with names and URLs for related plants.
- Build a plant finder tool that filters rhsplants.co.uk results by hardiness, position, or flowering period from
attributes. - Track price changes across plant variants using the
priceandwas_pricefields fromget_plant_detailoptions. - Populate a gardening app's category browser using
list_plants_by_categorywith slugs like'shrubs'or'seeds'. - Power autocomplete search using
search_plantsresults and the returnedcategory_linksfor navigation. - Monitor stock availability for specific plant SKUs by checking
stock_statusin the purchasing options. - Generate companion planting suggestions by reading the
companion_plantsarray from any plant detail page. - Build a catalogue index of orderable plants only by setting
can_order: trueinlist_plants.
| 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 | 250 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 RHS Plants have an official developer API?+
What does `get_plant_detail` return in the `attributes` field?+
attributes field is an object whose keys are horticultural property names — such as 'Flowering period', 'Position', and 'Hardiness' — mapped to their corresponding values as they appear on the plant's detail page. The exact set of attributes varies by plant.Does `search_plants` support filtering by category or price range?+
search_plants endpoint accepts only a query keyword. It returns matched plants and related category names and links, but does not accept category or price filter parameters. For category-scoped results, use list_plants_by_category with the relevant category_slug. You can fork this API on Parse and revise it to add filtering parameters if your use case requires them.Are user reviews or RHS Award of Garden Merit (AGM) ratings included in the plant detail response?+
get_plant_detail endpoint returns horticultural attributes, purchasing options, images, description, and companion plants. AGM status and user review data are not exposed in the current response fields. You can fork this API on Parse and revise it to add the missing endpoint or fields.Is there a way to retrieve all category slugs programmatically?+
list_plants_by_category — examples include 'perennials', 'shrubs', and 'seeds'. There is no dedicated endpoint that lists all available categories and their slugs. You can fork this API on Parse and revise it to add a category listing endpoint.