FAQ for Plant.id API

Most frequent questions and answers

Effective use of API

How to increase identification accuracy?

  • Include multiple photos of a single plant in the plant identification request.
  • Include GPS coordinates.
  • The default model is large and general. However, we can create a specific model explicitly focused on your use case – for example, Mediterranean crops, Canadian weeds, or European trees. We can even use your own datasets to improve the model, for example with satellite images. We can also train a customized new model, focused on, for example, estimating plant health.

How to increase identification speed?

In the administration, you can see an identification time (guaranteed by the SLA) per each request. However, this time value does not take into account the pre-processing of the image (downscaling of the resolution). This is why the measured response time is higher than the identification time.

You can reduce this delay by resizing the image on your side. For the fastest response, resize the images so that the longer side is 800 px. You can also use an /identify endpoint to include the identification directly in the response to your request to save a second or two.

In special cases, you may ask us for a dedicated ML model on business@plant.id (we may be able to get under 1 second).

I can’t see any similar_images in the get_identification_result response

You have to explicitly request this feature in the call by adding the "similar_images" string value to the modifiers list.

What kind of plants can you identify?

Our machine-learning model is mainly based on photos that we have collected over the past eight years of running the FlowerChecker app. The data includes photos of wild, garden and indoor plants, as well as weeds and crops.

We can currently identify more than 33,000 plant species of various life forms, including trees, shrubs and herbs. Our database also includes the most common fungi, lichens and mosses.

The map above highlights the countries from which we have the most images in our training data set. You will get the best identification results for the common plants in the dark blue countries.

What does the “similar images” feature do?

The name of the plant is not the only piece of information you will get from the API. We also provide representative images of a suggested taxon (species or genus).

The representative images are not static; they are selected based on their similarity to the photos uploaded by your customers to ensure user satisfaction. Let us illustrate:

There are three different identifications of three different photographs of a dandelion. The first shows a fluffy ball of seeds, the second a plant in full bloom, and the third a rosette of leaves. As you can see, Plant.id provides representative images of a dandelion based on the user’s photographs. You are welcome to use our images in your application, we provide you with a licence to do so. What a great tool to improve user satisfaction with your service!

What is the difference between the plant_name and the plant_details.scientific_name?

Plant.id API results provide four types of records related to plant names for a single taxon suggestion (taxon is the basic unit in the taxonomy hierarchy).

  • plant_name is a string that uniquely identifies the result of the identification. It is basically an ID that we try to keep the same across all Plant.id versions. Therefore, you can use it as a key to link other in-app content.
    Example: “Taraxacum officinale”
  • plant_details.scientific_name is a scientific (latin) name. It is the taxon name currently accepted by botanists.
    Example: “Taraxacum campylodes G. E. Haglund”
  • plant_details.synonyms lists other scientific names for the same species, if there are any. These are also considered correct, but are usually outdated due to nomenclature changes . See the explanation on Wikipedia.
    Example: [“Taraxacum vulgare var. vulgare”, ”Taraxacum vulgare (Lam.) Schrank”, …].
  • plant_details.common_names
    Example: [“dandelion”]

If you want to add your own content to the suggested plant name, we recommend using not only plant_details.scientific_name but also all plant_details.synonyms to find as many matches in your database as possible.

TLDR botanical authorities change scientific names sometimes. The plant_details.scientific_name reflects the current taxonomy consensus. The class name plant_name will be changed only rarely, to keep the API as stable as possible.

What is the license of the content you provide?

In general, we provide our clients with content that is mostly in the public domain. The only exception is similar images that are owned by us. 70% of these images are subject to a license described in our T&C. The remaining 30% are images under the CC-BY license, which requires that the author’s name and license name be included with the image. Sometimes the license doesn’t allow any kind of remixing (indicated by the SA element).

We have made sure that all content can be used for commercial purposes. Details of the license can be found in our terms and conditions.

We are currently working with no more than these licenses:

Can I get a list of all the plants that can be identified by Plant.id?

We do not provide a direct list of plants that we can identify. Our team spent a lot of time creating this list, and it is our business secret.

If you have your own list of plants, you can try to match them with our names using the following script: https://github.com/flowerchecker/Plant-id-API/blob/master/python/identification_example_with_plant_matching.py

Content coverage

See available plant details you can get in the API response in the documentation.

What is the content coverage in language-independent plant details?

The following table shows the content coverage for plants in our database.

Taxonomy – Kingdom99.997%
Taxonomy – Phylum99.997%
Taxonomy – Class99.997%
Taxonomy – Order99.997%
Taxonomy – Family99.997%
Taxonomy – Genus100%
GBIF id99.97%
Wikipedia image99.12%
Propagation methods9.49%
Edible parts9.25%

What is the content coverage in a specific language?

Some information (description, common name and URL) is language-dependent. You can set the preferred language in your request (English is the default). The chart below shows the percent coverage of the top 15 languages (see this sheet for all languages).

Plant.id Health Assessment

What is the total cost of identifying diseases?

The cost of each identification is one credit, and the base price of one credit is €0.05. Significant discounts are available for higher volumes of identifications. Please get in touch with us at business@plant.id to discuss these issues.

Sometimes the result incorrectly says that the plant is healthy or identifies an incorrect disease. Am I doing something wrong?

Diagnosing plant health is often a complex task. For example, if a plant is consistently overwatered, it is also unable to use nutrients effectively, so it will develop symptoms of both overwatering and nutrient deficiency. Therefore, when implementing this functionality, we recommend that you list more than one possible cause of disease in the result.

However, you can also improve the result by taking a photo from of a diseased part of a plant for best results. Read our blog post for tips on using Plant.id Health Assessment. Some diseases have symptoms that are less visible (e.g. small pests), and the detail is crucial for correct identification.

Can I get a list of all the diseases that the Plant.id Health Assessment API can identify?

With Plant disease identification API you can recognize:

  • 28 classes of fungal diseases
  • 18 classes of abiotic disorders
  • 17 classes of pests
  • 7 classes of chromista
  • 5 classes of viruses
  • 5 classes of bacterial diseases

The full list of diseases changes dynamically. If there is a reason you need the full list, please let us know at info@plant.id.

The suggestions are too general (e.g. Abiotic). How can I change it?

You can use the redundant attribute for discarding parent classes.

Discarding parent classes is useful when the difference between probability of the parent class (higher in the hierarchy) and the child class (lower in the hierarchy) is insignificant. In this case, classes that can be discarded have a boolean attribute redundant in the response.

Specifically, this feature in the response activates when the probability of the child class is at least 80% of the probability of the parent class (or less than two percentages in absolute numbers that aim to assess cases with a probability of less than 10%).  For example, when the probability of a parent class (e.g. abiotic) is 95% and the probability of a child class (e.g. water-related issue) is at least 76%, then the attribute redundant:true will appear in the response.

An example of a complete response in our Demo compared to a version of a response where the redundant classes were discarded. In this case, 4 disease classes (Hemiptera, Animalia, Insecta, and Sternorrhyncha) were discarded. Thus, the correct and specific diagnosis (in the green box) appeared in the first position.

Another option is to use the prune_diseases attribute (default for API v3). This will remove the general classes from the response.


What is the pricing?

The cost of each identification is one credit, and the base price of one credit is €0.05. There are discounts for bulk orders. The final price also depends on the identification speed and accuracy. Please contact us at business@plant.id to discuss these issues.

Do you have a mobile app?

Plant.id is a website whose purpose is to demonstrate our plant identification capabilities to our business customers. It is free but limited to 10 identifications per month, there is no subscription. However:

  • We run a mobile app called FlowerChecker. There is no machine learning involved. It costs about $1 per identification because our botanical experts do the identification manually, and we pay them for that.
  • There are some mobile apps that use our machine learning engine, they are our business customers.
  • There are some mobile apps with a similar name, but they are not affiliated with us.