# PlantLab > PlantLab is an API-based cannabis plant health diagnosis service. External agents should integrate with the direct API at https://api.plantlab.ai using the X-API-Key header and multipart image uploads. Use the direct API, not website-internal `/api/*` routes, for third-party integrations. Diagnose responses (schema 3.0.0) carry per-plant diagnoses in a `results[]` array — one entry per detected plant, each with a normalized `bbox` and its own diagnosis fields; iterate it (a single-plant image returns one entry). `is_cannabis`/`cannabis_confidence` stay at the top level. Responses include `request_id` in the body and `X-Request-ID` in the header. For an unhealthy plant (Stage 2: cannabis detected, unhealthy), its `results[]` entry includes an optional `reliability_score` float `[0, 1]` — a learned probability that that plant's top prediction is correct, recommended as the routing signal for verification escalation. Verification is asynchronous: request it with `X-Verify: true`, then poll the verification endpoint if the diagnose response returns `verification.status = pending`. ## API Contracts - [OpenAPI JSON](/openapi.json): Canonical machine-readable HTTP contract for the public PlantLab API. - [OpenAPI YAML](/openapi.yaml): YAML version of the same public API contract. - [Arazzo Workflow](/arazzo.yaml): Multi-step workflow for diagnose, verification polling, and feedback. ## Agent Docs - [Agent Quickstart](/agent-quickstart.md): Minimal setup, request examples, polling, and feedback loop. - [Agent Reference](/agent-reference.md): Response semantics, verification states, and rate-limit handling. - [Website Docs](/docs): Human-readable overview with links to all public integration assets. ## Optional - [Agent Workflow](/agent-workflow.md): Expanded end-to-end flow for diagnose, verify, and feedback operations.