Between June and August 2026, PlantLab learned to diagnose several plants in one photo, started naming the family of a condition when it isn't sure of the specific name, made model upgrades visible to your code, and fixed an upload failure that took three tries to actually kill.
The middle two change what comes back in your JSON.
The PlantLab API takes one image of a cannabis plant and returns structured JSON describing what's wrong with it: one of 30 conditions and pests (or healthy), a growth stage, a confidence score on every call it makes, and a bounding box per plant when the photo has more than one. It answers in about 18 milliseconds. Auth is a single X-API-Key header, and the free tier is 3 diagnoses a day without a card.
If you already have a camera pointed at your tent, this is the piece that turns a JPEG into something your automation can branch on.
Frame the whole plant so it fills most of the shot, and use even light that isn't blown out. Don't zoom in on the damaged leaf, and don't shoot from across the tent. If your lights are blurple, that matters far less than whether the photo is overexposed.
The mistakes that cost you most aren't the ones people expect.
It looks like your plant is getting frosty. White powder spreading across the leaves, that pale shimmer catching the grow light. Then you touch it, and your finger comes away white.
That's not trichome development. That's powdery mildew – and if you're seeing it now, the infection has been active inside your plant for up to two weeks already.
A Node-RED flow that captures a photo on a schedule, sends it to PlantLab for diagnosis, and takes action based on the result. Push notifications, dashboard updates, MQTT messages to your controller, log lines into InfluxDB, or whatever combination you want. No Python. No YAML. Nodes and wires.
Setup runs about 25 minutes on a Node-RED instance that's already up. The cost is whatever camera you own plus PlantLab's free tier at 3 diagnoses a day. The output is a structured JSON result: 31 possible conditions, a growth stage, nutrient antagonism hypotheses, and confidence scores, all ready to feed into whatever comes next.
You won't smell it at first. By the time you do – that damp, musty sweetness coming off a cola that looked fine yesterday – you've already lost that bud and probably the ones touching it. You cut it open, and the inside is grey mush. A week from harvest.
Bud rot. It colonizes from the inside out, hiding in the densest parts of your canopy where airflow is worst and humidity is highest. By the time the exterior shows damage, the interior has been decomposing for days.
You adjusted your cal-mag for two weeks. The yellowing got worse. Then you saw the webbing.
That's how most growers discover spider mites – not when the problem starts, but when it's already out of control. The early damage looks so much like a nutrient deficiency that your first instinct is to adjust the feed. Meanwhile, a single female mite is producing thousands of descendants in a month.
Every time you water, a little cloud of dark flies lifts off the soil, drifts around, and settles back down. They do not bite, they do not swarm the plant, and every forum thread calls them harmless. So you ignore them.
Meanwhile the plant is drooping. Lower leaves are yellowing, growth has slowed, and nothing about your feed or pH explains it. You start treating for overwatering, maybe root rot – and the real cause is still hovering over the pot.
A leaf catches the grow light and something looks off. Not yellow, not spotted – silver. Scratched, almost metallic, like someone dragged fine steel wool across the surface. The first guess is usually the lamp: too close, too bright, a little light burn on the tops.
Then you notice the same sheen on a lower leaf that never gets direct light.
PlantLab's API now returns a reliability_score field on every diagnosis. A number from 0 to 1 telling you how likely the answer is to be correct on this specific image. It replaces the old diagnostic_confidence and safety_classification fields, which were rule-based guesses that I never trusted. The new score is much better at flagging the diagnoses that turn out to be wrong – especially on the hard cases, which is where you actually need it. Schema bumped from 1.x to 2.0.0. If you're integrating with PlantLab today, the migration is a one-line change.