Plantix APIplantix.net ↗
Access Plantix data on 700+ plant diseases, pests, and crop cultivation guides via 7 structured endpoints covering symptoms, treatments, and growth stages.
What is the Plantix API?
The Plantix API exposes 7 endpoints covering plant diseases, pests, crop cultivation, and agricultural blog content sourced from plantix.net. The list_plant_diseases endpoint returns a filterable index of 700+ diseases and pests with names, scientific names, pathogen types, and affected crop IDs. Companion endpoints deliver full disease detail including symptoms, organic and chemical control recommendations, per-growth-stage disease risk for specific crops, and complete crop care attributes.
curl -X GET 'https://api.parse.bot/scraper/4d5a37ee-9dd2-40f4-8ca2-a85caf590c32/list_plant_diseases?crop=TOMATO&query=blight&pathogen=Fungi' \ -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 plantix-net-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.plantix_agricultural_database_api import Plantix, PathogenType, DiseaseSummary, Crop, CropDetail, ArticleSummary
plantix = Plantix()
# Search for fungal diseases affecting tomato
for disease in plantix.diseasesummaries.search(crop="TOMATO", pathogen=PathogenType.FUNGI):
print(disease.name, disease.scientific_name, disease.slug)
# Get full disease details
full = disease.details()
print(full.symptoms, full.what_caused_it)
print(full.recommendations.organic_control, full.recommendations.chemical_control)
for measure in full.preventive_measures:
print(measure)
break
# List all crops and get detail for one
for crop in plantix.crops.list():
print(crop.id, crop.name, crop.slug)
# Construct a crop by ID and get its detail
tomato = plantix.crop(id="TOMATO")
detail = tomato.detail()
print(detail.name, detail.climate, detail.care)
print(detail.attributes.ph_range, detail.attributes.temp_range)
print(detail.npk_optimal.n, detail.npk_optimal.p, detail.npk_optimal.k)
print(detail.companions.good, detail.companions.bad)
# Get probable diseases by growth stage
stages = tomato.probable_diseases()
for stage_name, diseases in stages.stages.items():
print(stage_name)
for d in diseases:
print(d.name, d.pathogen_type)
# List and read blog articles
for article in plantix.articlesummaries.list(query="wheat"):
print(article.title, article.date, article.slug)
full_article = article.details()
print(full_article.title, full_article.url)
break
List all plant diseases and pests from the library. Supports filtering by keyword, crop, and pathogen type. Returns all matching diseases with basic metadata including name, scientific name, pathogen classification, and affected crops. Client-side filtering is applied after fetching the full library.
| Param | Type | Description |
|---|---|---|
| crop | string | Filter by crop ID in uppercase (e.g. TOMATO, WHEAT). Use list_crops to get available IDs. |
| query | string | Search keyword to filter disease names. |
| pathogen | string | Filter by pathogen type. |
{
"type": "object",
"fields": {
"total": "integer count of matching diseases",
"diseases": "array of disease summaries"
},
"sample": {
"data": {
"total": 723,
"diseases": [
{
"id": 600051,
"name": "Stink Bugs on Maize, Millet and Sorghum",
"slug": "stink-bugs-on-maize-millet-and-sorghum",
"thumbnail": "https://content.peat-cloud.com/stink-bugs-on-maize,-millet-and-sorghum-sorghum-1569848445.jpg",
"pathogen_type": "Insect",
"affected_crops": [
"MILLET",
"SORGHUM",
"MAIZE"
],
"scientific_name": "Euschistus spp."
}
]
},
"status": "success"
}
}About the Plantix API
Disease and Pest Data
The list_plant_diseases endpoint accepts three optional filters — crop (uppercase crop ID such as TOMATO), query (keyword match on disease name), and pathogen (pathogen type string) — and returns a total count plus a diseases array of summaries. To retrieve full detail, pass both the numeric id and slug from those summaries to get_plant_disease_detail. The detail response includes symptoms, a bullet_points array of key symptom descriptions, a what_caused_it explanation, and a recommendations object with separate organic_control and chemical_control text fields, plus an array of affected_crops IDs.
Crop Cultivation Data
list_crops returns every crop in the library with its id, name, and slug. Passing a slug to get_crop_detail yields structured cultivation data: climate, soil_types, a numeric npk_optimal object (N, P, K values with unit), an attributes object covering watering, cultivation method, labour level, pH range, temperature range, and plant spacing, plus companions and rotation objects that each hold good and bad arrays of crop IDs. A separate endpoint, get_crop_probable_diseases, organises disease risk by growth stage — Seedling, Vegetative, Flowering, Fruiting, Harvesting — returning each disease's id, name, pathogen_type, and scientific_name per stage.
Blog Content
list_blog_articles supports page pagination and a query keyword filter on article titles, returning title, slug, date, and excerpt per article. get_blog_article accepts a slug and returns the full content text along with the canonical url and title. This makes the blog content machine-readable for downstream summarisation or search indexing.
The Plantix API is a managed, monitored endpoint for plantix.net — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when plantix.net 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 plantix.net 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?+
- Build a crop protection tool that surfaces organic and chemical control options for a given disease using the
recommendationsfield fromget_plant_disease_detail. - Generate growth-stage-aware disease alerts for farmers by querying
get_crop_probable_diseaseswith the current crop and phenological stage. - Populate a companion planting guide using the
companions.goodandcompanions.badarrays returned byget_crop_detail. - Index Plantix blog articles for a site search or newsletter digest using
list_blog_articleswith keyword filtering andget_blog_articlefor full text. - Create NPK fertilisation recommendations by reading the
npk_optimalobject andattributes.ph_rangefrom crop detail responses. - Build a disease lookup widget filtered by crop (e.g.
WHEAT) and pathogen type usinglist_plant_diseasesquery parameters. - Automate crop rotation planning by reading the
rotation.goodandrotation.badcrop ID arrays from multiple crop detail responses.
| 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 Plantix offer an official developer API?+
What does `get_plant_disease_detail` return beyond a disease name?+
symptoms description, a bullet_points array for quick scanning, the pathogen_type, a what_caused_it string, an affected_crops array of crop IDs, image URLs, the scientific_name, and a recommendations object with distinct organic_control and chemical_control text fields.Can I retrieve disease risk for a specific crop growth stage?+
get_crop_probable_diseases accepts a crop slug and returns a stages object whose keys are stage names (Seedling, Vegetative, Flowering, Fruiting, Harvesting). Each stage maps to an array of disease objects with id, name, pathogen_type, and scientific_name, so you can filter risk by phenological phase.Does the API expose diagnostic image recognition or photo-based disease identification?+
How does pagination work for blog articles, and can I search by topic?+
list_blog_articles accepts an integer page parameter for pagination and a query string that filters results by article title keyword. The response includes the current page number, and each article object carries a slug you can pass to get_blog_article for full text. Filtering is limited to title matching; there is no tag or category filter parameter currently exposed.