PlantLab Blog

The reliability_score Field: A Historical API Migration

This article records the April 2026 API migration. The JSON examples show the schemas from that release. Read the current API documentation for supported plants and fields.

The historical change

Schema 2.0 replaced diagnostic_confidence and safety_classification with reliability_score. This changed the fields that an integration read. It did not make a diagnosis certain.

reliability_score is an estimate of result reliability. It differs from per-condition confidence. A higher score indicates higher estimated reliability, but it does not prove that the diagnosis is correct.

Historical response examples

The schema 1.2 example used these fields:

{
  "request_id": "550e8400-e29b-41d4-a716-446655440000",
  "schema_version": "1.2.0",
  "success": true,
  "is_cannabis": true,
  "is_healthy": false,
  "growth_stage": "flowering",
  "conditions": [
    { "class_id": "magnesium_deficiency", "confidence": 0.85 }
  ],
  "diagnostic_confidence": 0.85,
  "safety_classification": "high_confidence"
}

The schema 2.0 example replaced them with reliability_score:

{
  "request_id": "550e8400-e29b-41d4-a716-446655440000",
  "schema_version": "2.0.0",
  "success": true,
  "is_cannabis": true,
  "is_healthy": false,
  "growth_stage": "flowering",
  "conditions": [
    { "class_id": "magnesium_deficiency", "confidence": 0.85 }
  ],
  "reliability_score": 0.91
}

These are illustrative values from the historical examples, not measured accuracy or the current response shape.

Read reliability within its scope

The current contract describes reliability_score as optional for some unhealthy cannabis results. Tomato results do not include it. Even an unhealthy cannabis result can omit it.

Treat a missing score as “no score available.” Do not substitute zero, assume that a high score makes treatment safe, or interpret the score as a proven probability of correctness.

Per-condition confidence expresses the strength of a specific prediction. Read either score alongside your observations and other possible causes.

The migration for schema 1.x integrations

An integration that read diagnostic_confidence or safety_classification needed to stop expecting those fields after the schema 2.0 change. Code that displayed a score needed to handle an absent reliability_score.

The two old fields and the new field are not numerically interchangeable. Review any thresholds when changing fields. This article does not establish a threshold for safe automatic treatment.

If your code uses these historical examples, compare its requests and responses with the current contract before use. Preserve the example version when documenting what the earlier integration did.

FAQ

Is reliability the same as confidence?

No. Reliability is an estimate for the plant result. Confidence expresses the strength of a condition or pest prediction. Neither guarantees correctness.

What if the score is missing?

Treat the score as unavailable and handle that case explicitly. Inspect the plant before treatment.

Does a high score permit automatic treatment?

A high score alone does not justify treatment. Test your application’s review rules on your own images and consider the effect of a wrong result.

Can I see PlantLab’s diagnosis history for my key?

GET /usage returns daily and monthly counts. For per-request lookup, store request_id from each diagnose response - it’s stable, returned in both the JSON body and the X-Request-ID header. Use it for support tickets and feedback submission.

PlantLab is currently free to use at plantlab.ai. Read the API documentation for the current contract.