FAQ for Plant.id API

Most frequent questions and answers

How to increase identification accuracy?

  • Include multiple photos of a single plant to the plant identification request.
  • Include GPS coordinates.
  • There is a list of parameters (see modifiers in /identify or /enqueue_identification endpoints), which enable you to trade off the accuracy for identification speed. However, it is not allowed by default; contact us if you need help.
  • The default model is very 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, for example, for estimation of the plant’s health.

How to increase identification speed?

In the administration, you can see an identification time (guaranteed by the SLA) per each request. This time value, however, does not account for image preprocessing (downscaling the resolution). That is the reason why the measured response time is higher than the identification time.

You can mitigate this delay by resizing the image on your side. To get the fastest response, set the photos’ size so that the longer side has 800 px. You can also use an /identify endpoint to get the identification directly into the response to your request to gain a second or two.

In special cases, it might be worth to ask us on business@plant.id for a dedicated ML model (we might be able to go under 1 second).

What kind of plants can you actually identify?

Our machine learning model is mainly based on photos we have gathered running FlowerChecker in the past six years. The data contain photos of wild-growing, garden, and indoor plants.

We can currently identify more than 9963 plant species of various life forms, including trees, shrubs, and succulents. Besides, our database consists of the most common mushrooms, lichens, and mosses.

Plant occurance map

Regarding native plants, the countries marked by a green color are best covered by the database.

What is the pricing?

The base pricing is €0.05 per identification. There are discounts for bulk orders. The final price also depends on the identification speed and accuracy. Please contact us on business@plant.id to discuss these issues.

What does the “similar images” feature do?

This is actually our smartest feature!

You see – 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 the similarity with photos uploaded by your customer to achieve user satisfaction. Let us illustrate:

Representative images

There are three different identifications of three different photos of a dandelion. The first one shows a puffy ball with seeds, the second one a leaf rosette, and the third one a plant in full bloom. As you can see, the Plant.id provides representative images of a dandelion based on the user’s picture. You are welcome to use our images in your app. What a great tool to improve user’s satisfaction with your service!

I can’t see any similar_images in the get_identification_result response

You need to explicitly ask for this feature in the call by adding "similar_images" string value in the modifiers list (see the documentation for /identify or /enqueue_identification endpoint).

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

  • plant_name is (except the actual plant name) the designation of the taxon we identify. It’s like an id; it is not supposed to be changed so you can use it as a key if you need to. Also it is the same as on old API v1.
  • plant_details.scientific_name this is how the scientific community currently call this taxon. As you might know, a lots of species have multiple scientific names; one is canonical (the official one), the other are synonyms (the synonym is typically an old canonical name).

TLDR the botanists sometimes change names. The plant_details.scientific_name is supposed to reflect these changes on the go. But the plant_name is the static key which doesn’t change across versions as we keep improving our service.