plantvillage.psu.edu APIplantvillage.psu.edu ↗
Access PlantVillage crop data, disease details, management strategies, blog posts, and videos via 12 structured API endpoints.
curl -X GET 'https://api.parse.bot/scraper/c7fef214-845f-4681-b8bd-d6ba69987eec/list_crops?letter=A' \ -H 'X-API-Key: $PARSE_API_KEY'
Returns a list of all crops available on PlantVillage. Supports alphabetical filtering via the letter parameter. Each crop includes name, slug, and thumbnail URL.
| Param | Type | Description |
|---|---|---|
| letter | string | Single uppercase letter (A-Z) to filter crops by first letter. Omitting returns all crops. |
{
"type": "object",
"fields": {
"crops": "array of crop objects each containing name, slug, and thumbnail_url"
},
"sample": {
"data": {
"crops": [
{
"name": "Apple",
"slug": "apple",
"thumbnail_url": "https://plantvillage-production-new.s3.amazonaws.com/image/2555/file/medium-2af8d7e43adbcf45cb7356141e38c94a.jpg"
}
]
},
"status": "success"
}
}About the plantvillage.psu.edu API
The PlantVillage API exposes 12 endpoints covering crops, diseases, pests, blog posts, and educational videos from plantvillage.psu.edu. You can retrieve full crop profiles including scientific names, images, and related diseases via get_crop_detail, pull disease-specific management strategies via get_treatments_and_management, and search crop names by keyword or first letter using search_plants. All responses return structured JSON ready to integrate into agricultural applications.
Crop and Disease Data
The list_crops endpoint returns every crop on PlantVillage, with optional alphabetical filtering via the letter parameter (e.g. letter=T to retrieve only crops starting with T). Each crop object includes name, slug, and thumbnail_url. Passing a slug to get_crop_detail returns a richer record: scientific_name, common_names (array), sections (a keyed object mapping section titles to text), images (with URLs and captions), and related_diseases listing associated conditions with their scientific names.
Disease and Pest Endpoints
list_diseases_and_pests returns a flat list of all disease and pest entries, each with name, slug, and thumbnail_url. get_disease_detail fetches a single entry by slug, returning sections, images, and an affected_crop object containing the crop name and URL (or null). For crop-centric workflows, get_plant_diseases_by_crop accepts a crop slug and returns all associated diseases, each with symptoms, cause, comments, and management fields in one response. get_treatments_and_management narrows this further, returning only the management and control sections for a given disease slug as a management_strategies object.
Content and Media
The get_blog_posts endpoint returns a list of articles with title, slug, author, summary, and thumbnail_url. Passing a slug to get_blog_post_detail returns the full content string. list_videos returns the video library with title, video_id, url, thumbnail_url, and language — useful for filtering by language. list_topics returns educational topic names and slugs without additional metadata.
Images and Search
get_plant_images accepts any crop or disease slug and returns an array of url and caption pairs from that entry's gallery. search_plants accepts either a single letter (alphabetical filter) or a multi-character keyword to perform substring matching against all crop names, returning matching crops with name, slug, and thumbnail_url.
- Build a crop disease identification tool using
get_plant_diseases_by_cropto surface symptoms and causes by crop slug. - Populate a plant encyclopedia app with
get_crop_detailfields including scientific names, common names, and sectioned descriptions. - Generate agronomic management guides by extracting
management_strategiesfromget_treatments_and_managementfor specific pests. - Create a multilingual video resource browser using the
languagefield fromlist_videos. - Index PlantVillage blog content for search or recommendation systems using
get_blog_postsandget_blog_post_detail. - Implement a crop search autocomplete using
search_plantswith keyword queries against crop names. - Build a disease image gallery by fetching caption-annotated images for any crop or disease via
get_plant_images.
| 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 PlantVillage have an official developer API?+
How does `get_plant_diseases_by_crop` differ from `get_disease_detail`?+
get_plant_diseases_by_crop takes a crop slug and returns all diseases associated with that crop in one array, with each disease including symptoms, cause, comments, and management. get_disease_detail takes a disease slug directly and returns that single disease's sections, images, and affected_crop object. Use the crop-centric endpoint when you need a full disease profile for a given plant; use get_disease_detail when you already have a specific disease slug.Does the API support pagination or filtering beyond alphabetical letter?+
list_crops supports filtering by first letter via the letter parameter, and search_plants supports substring keyword matching. You can fork this API on Parse and revise it to add pagination or additional filter parameters if your use case requires it.