canonical: https://jentic.com/apis/myplantnet.org/plantnet

# Myplantnet Pl@ntNet API

Jentic publishes the only available OpenAPI specification for Pl@ntNet API, keeping it validated and agent-ready. Pl@ntNet is a citizen-science platform that identifies plants from photos using a community-trained image-classification model. The API exposes 16 endpoints covering plant identification (by URL or upload), disease and variety identification, species and project listings, image embeddings, and quota and subscription introspection. Authentication is an api-key query parameter on https://my-api.plantnet.org, with quota tracking via `/v2/quota` and `/v2/quota/daily.`

## For AI agents

Identify plants, plant diseases, and plant varieties from photos and check API quota using a Pl@ntNet api-key query parameter.

## Scope

Does not handle generic image classification, animal identification, or text generation - use for plant, plant disease, and plant variety identification from images only.

## Capabilities

- Identify plants from a list of image URLs via GET `/v2/identify/{project}` for URL-friendly batch flows
- Identify plants from uploaded image files via POST `/v2/identify/{project}` for direct camera input
- Identify plant diseases from images via POST `/v2/diseases/identify`
- Identify plant varieties from images via POST `/v2/varieties/identify`
- List the supported projects (regional flora collections) via GET `/v2/projects` and the species in each project
- Track API quota consumption via GET `/v2/quota`, GET `/v2/quota/daily`, and GET `/v2/quota/history`
- Generate image embeddings via POST `/v2/embeddings` for downstream vector search and similarity workflows

## Use cases

### Mobile Plant Identification App

Power a consumer or field-research mobile app that identifies plants from a phone camera image. The app uploads the photo via POST `/v2/identify/{project}` and presents the top species candidates with confidence scores. Choosing the right project (e.g., western-europe, useful, weeds) tunes the model for the user's region, improving accuracy over a global default.

Example prompt: Call POST `/v2/identify/western-europe` with the user's uploaded JPEG and return the top three species candidates with confidence scores.

### Crop Disease Detection

Detect plant disease from field photos via POST `/v2/diseases/identify` for agronomy and gardening applications. The integration pairs disease identification with `/v2/diseases` (the catalogue of identifiable diseases) to validate the response and surface the disease name, host species, and confidence to the grower.

Example prompt: Call POST `/v2/diseases/identify` with the uploaded leaf photo and join the response against GET `/v2/diseases` for the canonical disease description.

### Quota-Aware Batch Identification

Run a large batch of plant identifications without exceeding the Pl@ntNet plan quota. The integration polls GET `/v2/quota` and GET `/v2/quota/daily` before each batch to determine remaining capacity, then calls GET `/v2/identify/{project}` with image URLs in chunks. `/v2/quota/history` feeds usage dashboards.

Example prompt: Call GET `/v2/quota` to check remaining identifications, batch the URL list into safe chunks, and call GET `/v2/identify/{project}` with each chunk.

### Plant Image Vector Search

Build a similarity search index over a herbarium or field-photo archive using POST `/v2/embeddings.` Each image is converted to a vector and stored in a vector database; future queries embed the query image and retrieve the nearest neighbours. This unlocks 'find similar specimens' without retraining a custom model.

Example prompt: Iterate over the herbarium archive, call POST `/v2/embeddings` for each image, and write the resulting vectors into a vector database keyed by specimen ID.

### AI Agent Botanical Concierge

An AI agent acts as a botanical concierge for citizen scientists. It searches Jentic for Pl@ntNet operations, loads the identify and diseases-identify schemas, checks quota, and runs identification on images attached to a chat message. Jentic isolates the api-key query parameter so the agent never sees the raw secret in URLs.

Example prompt: Search Jentic for 'identify a plant from a photo', execute POST `/v2/identify/western-europe`, and return the top species candidate with confidence score.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/v2/identify/{project}` | Identify a plant from uploaded images |
| GET | `/v2/identify/{project}` | Identify a plant from image URLs |
| POST | `/v2/diseases/identify` | Identify a plant disease from images |
| POST | `/v2/varieties/identify` | Identify a plant variety from images |
| GET | `/v2/projects` | List supported regional projects |
| GET | `/v2/quota` | Check quota consumption |
| POST | `/v2/embeddings` | Generate image embeddings |
| GET | `/v2/_status` | Check API health |

## Key resources

- **Identify** — Identify plants from URLs or uploaded images, scoped to a regional project.
- **Diseases** — List identifiable diseases and identify a disease from images.
- **Varieties** — List identifiable varieties and identify a variety from images.
- **Projects and Species** — List regional projects and the species supported in each.
- **Languages** — Get available output languages for plant common names.
- **Quota** — Check quota consumption, daily details, and history.
- **Subscription** — Inspect pro subscription status and details.
- **Embeddings** — Generate image embeddings for similarity search.
- **Status** — API health check via `/v2/_status.`

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 46 / 100
- **Maturity:** Foundational
- **Dimensions:**
  - Foundational Compliance: 82 / 100
  - Developer Experience & Jentic Compatibility: 63 / 100
  - AI-Readiness & Agent Experience: 46 / 100
  - Agent Usability: 94 / 100
  - Security: 15 / 100
  - AI Discoverability: 70 / 100
- **View full report:** https://jentic.com/apis/myplantnet.org/plantnet/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring Pl@ntNet by hand means holding its api-key, appending it to every request against my-api.plantnet.org, and building the multipart image uploads for identification yourself. Through Jentic you install once, import Pl@ntNet from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Pl@ntNet puts the project in the URL path (`/v2/identify/{project}`), so a rule can pin your agent to one project. You choose the operations it may call, so you can allow plant identification and disease identification while leaving embeddings generation out unless you add it.
- **Credential handling:** Your Pl@ntNet api-key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'identify a plant from a photo' or 'check a plant disease', and Jentic returns the matching Pl@ntNet operation with its multipart input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **GBIF API** — GBIF provides global biodiversity occurrence data that complements Pl@ntNet's photo-based identification.
- **OpenAlex API** — OpenAlex indexes scholarly works and authors that can attach research papers to identified species.
- **Kaggle API** — Kaggle datasets and notebooks let teams train custom plant-classification models as an alternative to a hosted Pl@ntNet model.

## FAQ

### Why is there no official OpenAPI spec for Pl@ntNet API?

Pl@ntNet does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Pl@ntNet API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Pl@ntNet API use?

The Pl@ntNet API uses an `api-key` query parameter on every request. Through Jentic, the api-key is stored in the encrypted vault and appended to the URL at execution time, so the raw key never appears in agent context or in request logs.

### Can I identify plants from a photo with the Pl@ntNet API?

Yes. Either call GET `/v2/identify/{project}` with image URLs as query parameters or POST `/v2/identify/{project}` with a multipart upload. The response returns the top candidate species with scores; choose the regional project that best matches the photo location for higher accuracy.

### How do I check my Pl@ntNet quota through Jentic?

Search Jentic for 'check Pl@ntNet quota', load the GET `/v2/quota` schema, and execute it. For finer detail, also call GET `/v2/quota/daily` and GET `/v2/quota/history` - useful for batching large identification jobs without exceeding the plan limit.

### Does Pl@ntNet identify plant diseases?

Yes. POST `/v2/diseases/identify` accepts uploaded images and returns identified diseases with confidence scores. Pair with GET `/v2/diseases` for the canonical disease catalogue and host-species metadata.

### What are the rate limits for the Pl@ntNet API?

Pl@ntNet enforces plan-based quotas rather than per-second rate limits. Use GET `/v2/quota` and GET `/v2/quota/daily` before large batches and back off when the remaining count nears zero. Contact Pl@ntNet support to upgrade plans for higher monthly identification budgets.

### Can I limit what my agent is allowed to do with the Pl@ntNet API?

Yes. Because you run Jentic One yourself, your own rules decide which Pl@ntNet operations and which credentials your agent may use. You can allow plant identification (POST and GET `/v2/identify/{project}`) and disease identification (POST `/v2/diseases/identify`) while leaving image embeddings (POST `/v2/embeddings`) out unless you add it. Since Pl@ntNet puts the project in the URL path (`/v2/identify/{project}`), a rule can also pin the agent to a single regional project.
