Discover/Psu API
live

Psu APIplantvillage.psu.edu

Access PlantVillage crop profiles, disease/pest details, treatment strategies, blog posts, and videos via 12 structured API endpoints.

Endpoint health
verified 3d ago
list_crops
get_treatments_and_management
get_plant_images
search_plants
get_blog_post_detail
12/12 passing latest checkself-healing
Endpoints
12
Updated
26d ago

What is the Psu API?

The PlantVillage API provides access to 12 endpoints covering crop profiles, disease and pest records, treatment strategies, blog posts, and educational videos from plantvillage.psu.edu. You can retrieve the full crop catalog via list_crops, drill into a specific crop with get_crop_detail (returning scientific name, images, and content sections), or pull disease-specific management guidance with get_treatments_and_management. All responses are structured JSON.

Try it
Single uppercase letter (A-Z) to filter crops by first letter. Omitting returns all crops.
api.parse.bot/scraper/c7fef214-845f-4681-b8bd-d6ba69987eec/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/c7fef214-845f-4681-b8bd-d6ba69987eec/list_crops?letter=A' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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 plantvillage-psu-edu-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.

from parse_apis.plantvillage_api import PlantVillage, CropSummary, Crop, CropDisease, DiseaseSummary, Video, Topic, BlogPostSummary, Letter

client = PlantVillage()

# List crops starting with letter A using the Letter enum
for crop_summary in client.crops.list(letter=Letter.A):
    print(crop_summary.name, crop_summary.slug, crop_summary.thumbnail_url)

# Search for crops by keyword
for result in client.crops.search(query="tomato"):
    print(result.name, result.slug)

# Get full crop detail and explore diseases
apple = client.crops.get(slug="apple")
print(apple.name, apple.scientific_name)

for disease in apple.diseases():
    print(disease.name, disease.cause, disease.management)

# Get images for the crop
for img in apple.get_images():
    print(img.url, img.caption)

# Browse diseases and get treatments
for ds in client.diseases.list():
    print(ds.name, ds.slug)

faw = client.diseases.get(slug="fall-armyworm")
treatment = faw.treatments()
for title, content in treatment.management_strategies.items():
    print(title, content[:100])

# List topics
for topic in client.topics.list():
    print(topic.name, topic.slug)

# Blog posts
for post in client.blogposts.list():
    full = post.details()
    print(post.title, full.content[:80] if full.content else "")

# Videos
for video in client.videos.list():
    print(video.title, video.language)
All endpoints · 12 totalmissing one? ·

Returns all crops available on PlantVillage. Supports alphabetical filtering via the letter parameter. Each crop includes name, slug, and thumbnail URL. When letter is omitted, returns the full catalog.

Input
ParamTypeDescription
letterstringSingle uppercase letter (A-Z) to filter crops by first letter. Omitting returns all crops.
Response
{
  "type": "object",
  "fields": {
    "crops": "array of CropSummary objects with name, slug, and thumbnail_url"
  },
  "sample": {
    "data": {
      "crops": [
        {
          "name": "African Eggplant",
          "slug": "african-eggplant",
          "thumbnail_url": "https://plantvillage-production-new.s3.amazonaws.com/image/6378/file/medium-5eb9cc25a65d4d1bf2564ff83113aff5.jpeg"
        }
      ]
    },
    "status": "success"
  }
}

About the Psu API

Crop and Disease Data

The list_crops endpoint returns the full PlantVillage crop catalog — each record includes name, slug, and thumbnail_url. An optional letter parameter (single uppercase A–Z) filters results alphabetically. Pass any slug to get_crop_detail for richer data: scientific_name, common_names, a sections object mapping section titles to prose, an images array with url and caption, and a related_diseases array with each disease's name and scientific name.

Disease, Pest, and Treatment Endpoints

list_diseases_and_pests returns the full pest/disease catalog with name, slug, and thumbnail_url per entry. get_disease_detail expands a single slug into sections, an images array, and an affected_crop object (name and URL). For crop-centric queries, get_plant_diseases_by_crop returns every disease associated with a given crop slug, with each record including symptoms, cause, comments, and management fields. get_treatments_and_management isolates only the management/control sections for a disease slug, returning them as a management_strategies object.

Search, Images, and Media

search_plants accepts a query string: a single alphabetical character performs first-letter filtering; two or more characters run a substring match against all crop names, returning matching CropSummary objects. get_plant_images accepts either a crop or disease slug and returns a unified images array with url and caption fields. The list_videos endpoint exposes video library entries including title, video_id, url, thumbnail_url, and language, making it useful for multilingual content filtering.

Blog and Topics

get_blog_posts returns article summaries with title, slug, author, summary, and thumbnail_url. Pass a slug to get_blog_post_detail for the full content string. list_topics returns the educational topic index as an array of name and slug pairs.

Reliability & maintenanceVerified

The Psu API is a managed, monitored endpoint for plantvillage.psu.edu — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when plantvillage.psu.edu 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 plantvillage.psu.edu 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.

Last verified
3d ago
Latest check
12/12 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a crop disease lookup tool using get_plant_diseases_by_crop to surface symptoms and management for a chosen crop.
  • Power a multilingual agricultural video library by filtering list_videos results on the language field.
  • Create an alphabetical crop browser using list_crops with the letter parameter for A–Z navigation.
  • Generate disease treatment summaries with get_treatments_and_management mapped to a pest slug from list_diseases_and_pests.
  • Populate a plant image gallery using get_plant_images for any crop or disease slug.
  • Index PlantVillage blog content for an agricultural knowledge base using get_blog_posts and get_blog_post_detail.
  • Implement a search-as-you-type crop finder using search_plants with substring queries against the full crop catalog.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does PlantVillage have an official developer API?+
PlantVillage does not publish a documented public developer API. This API on Parse provides structured access to PlantVillage data through 12 endpoints.
What does get_plant_diseases_by_crop return compared to get_disease_detail?+
get_plant_diseases_by_crop returns all diseases and pests for a specific crop slug in one call, with each record including symptoms, cause, comments, and management fields. get_disease_detail focuses on a single disease slug and returns its content sections, images, and the affected_crop object, but does not include the structured symptoms/cause/management breakdown that get_plant_diseases_by_crop provides.
Does the API support pagination for large result sets like list_crops or list_diseases_and_pests?+
The endpoints return full result sets without a pagination parameter. list_crops supports alphabetical filtering via the letter parameter as an alternative to fetching the full catalog at once, but list_diseases_and_pests returns all entries in a single response with no filtering options currently exposed.
Can I retrieve user-submitted crop disease photos or community reports through this API?+
Not currently. The API returns editorial images from crop and disease pages via get_plant_images and get_crop_detail, but does not expose any user-submitted photo data, community diagnoses, or field reports. You can fork the API on Parse and revise it to add an endpoint targeting those data sources if they become accessible.
Does the API return localized or translated content for non-English languages?+
Content fields like sections and management in the disease and crop endpoints return English text. The list_videos endpoint does include a language field per video, so multilingual video filtering is supported. Other content types do not currently expose language variants. You can fork the API on Parse and revise it to add endpoints targeting localized PlantVillage pages if needed.
Page content last updated . Spec covers 12 endpoints from plantvillage.psu.edu.
Related APIs in EducationSee all →
plantix.net API
Access a comprehensive agricultural database covering over 700 plant diseases and pests, with detailed symptoms, treatment options, and prevention methods. Browse cultivation guides for a wide range of crops, retrieve disease risk by growth stage, and explore expert agricultural blog posts — all through a single structured API.
cabi.org API
Search and retrieve detailed information about plant diseases from the CABI Digital Library, including disease characteristics, symptoms, and management strategies. Find specific disease data by name or browse the comprehensive Compendium to identify and understand plant health issues.
plantsforafuture.org API
Search for edible and medicinal plants to discover their culinary and health uses, cultivation tips, and physical characteristics. Browse the comprehensive plant database alphabetically or look up detailed information about specific plants' benefits and growing requirements.
identify.plantnet.org API
Identify and explore plant species by searching through Pl@ntNet's comprehensive botanical database to access detailed information like taxonomic families, genera, species descriptions, photos, and community observations. Track plant distributions, view contribution trends, and discover expert contributors within the platform's collaborative plant identification community.
rhsplants.co.uk API
Search and browse the RHS Plants catalogue to discover thousands of plants and gardening products. Retrieve detailed specifications, growing conditions, images, and purchasing options for any plant, and filter or sort results by category or keyword.
upag.gov.in API
Access comprehensive agricultural data including crop production estimates, minimum support prices (MSP), crop yield trends, and planting calendars for both domestic and international markets. Search through agricultural reports and statistics to track commodity prices, production forecasts, and seasonal crop information.
agweb.com API
Access real-time agricultural news, commodity futures prices for corn and soybeans, and local cash grain bids to stay informed on market trends and pricing. Search articles by category, view detailed market analysis, and get weekend market reports to make informed farming and trading decisions.
cornucopia.org API
Access organic food scorecards, brand ratings, research documents, and news from The Cornucopia Institute. Search and filter across dairy, egg, beef, poultry, and other organic product categories.