FAQs
Find answers to common questions about our services here. If you need further information, feel free to reach out.
For product-specific questions, visit FAQs on the product pages on the following links.
Credits and pricing
- Decade-long Expertise: We have almost 10 years of experience in developing machine learning-based systems for image recognition and classification of living beings, including plants, insects, mushrooms, and more.
- Collaboration with Domain Experts: We collaborate with knowledgeable domain experts for each of these groups. They have helped us annotate hundreds of thousands of images, and their invaluable insights help us design our products.
- Cutting-edge Technology: We keep up with the latest research and trends in the world of machine learning. This enables us to develop world-class machine learning models, even in such a rapidly evolving field.
- Ease of Integration & Maintenance: Our products are designed to be easy to integrate and maintain. We provide dedicated support and extensive code examples to facilitate a smooth implementation process.
- Reliability & Security: We guarantee excellent uptime, efficient traffic management, and high levels of data security and compliance.
Once you sign up for the API access, you will automatically receive 100 free credits for testing to get you started. For information on purchasing additional credits, please visit our FAQ section here.
The identifications are credit-based. Each successful identification deducts 1 credit from the account, and if you are using also plant.health, another credit is taken.
The cost of obtaining plant information from the Detail endpoints (for plants, mushrooms, insects, crops) using the Search feature is 0.5 credits.
No credits are taken for calling our endpoint for retrieval and deleting of the identification, obtaining usage info, sending feedback, and searching endpoint.
The price range per credit is €0.05 (€50 for 1000 credits) to €.01 (€10 for 1000 credits), depending on the volume of credits purchased. For information on credit prices of various Kindwise products, visit our FAQ section here.
We offer special pricing for beneficiary projects. We offer pre-paid pricing, where the credits are purchased in advance and deducted accordingly from your account. The second option is retroactive pricing, where you pay only for the actual credits used, and receive an invoice from us automatically at the beginning of each month. This pricing is based on special requirements. Please contact us at business@kindwise.com if you wish to discuss the above.
We don't require long-term contractual commitments or minimum usage requirements. However, we are open to negotiating such commitments if you would like to achieve a better price per credit.
We are doing our best to keep downtime to a minimum. API incidents are listed here.
If we do not meet the guaranteed targets in a given calendar month, the performance degradation percentage will be deducted from the API availability as stated in our SLA.
When we deploy a new version of the system (about twice a month) we are unavailable for about 20 s. This is manifested by the API returning a code indicating its inaccessibility.
For businesses using our products, we have the following:
For end users, who are using this website and demo sites, we have the following:
Identification performance
- Optimal photo submission:
- Focus and lighting: Ensure the object is well-focused and well-lit, see examples.
- Resolution: Photos should be of good quality and resolution, but not too large to prevent delays.
- Variety in shots: Provide a general view of the object in one photo and capture detailed aspects (such as flowers or fruit) in additional photos. Generally, 3 photos are sufficient, but you can send up to 5 in a single call.
- Include GPS coordinates (
latitude
andlongitude
) and time (datetime
), see for example the Plant.id documentation.
The response includes up to 10 suggestions with highest confidence. Suggestions with confidence <1% are ommited.
Identification Speed (overall duration) includes:
- Identification Time (usually 200-400 ms): this is how long it takes to process the identification using 1-3 photos.
- Transaction Delay (100 ms and more): this is the time it takes for input data to be sent to us and for a response to be sent back to you.
How to Minimize Identification Time
- Resize Photo Dimensions: Ensure that the longer side of the photo is approximately 800px. If the subject in the photo is too small, allow users to zoom in on it and crop out the rest before sending the photo for identification. If your photos are too large, we need to spend extra (milli)seconds reducing their size.
- Adhere to SLA Limits: Ensure you do not exceed the Service Level Agreement (SLA) limits. Exceeding these limits can cause your identifications to be queued, although this is rare unless multiple requests are sent per second.
How to Minimize Transaction Delays
- Optimize Connection Quality: Although transaction delay is largely out of our control, you can ensure that the connection from your client to our server is fast and stable.
- Proximity to Data Center: Ensure you are not too far from our data center in Central Europe. Visit our status pages (for Plant.id, Mushroom.id, Insect.id or crop.health) to see how distance affects transaction delay.
- Session Reuse: If you are located far from our data center, consider using your backend to reuse HTTP sessions. This can reduce transaction delay by approximately 50%. Refer to our Python example for details on this mechanism.
- Dedicated Backend Option: For a fee, we can establish a dedicated backend in your region, potentially reducing the transaction delay to around 100 ms, you can contact us on business@kindwise.com for such an option.
Providing suitable image size is essential for obtaining maximum from our APIs. Too low resolution can harm model accuracy; too high resolution increases response time. Optimal resolution is between 1MP and 2MP (megapixels).
The identification models do not always use the full resolution of the image. The exact resolution that is used can vary between different systems (e.g. plant and insect identification) and between different versions of a model.
Therefore, large images will only slow down image processing and overall API response time and will not benefit model accuracy. Images should never be larger than 2MP (e.g. 2000×1000 or ~1600×1250). There is also no response time guarantee for large images in our SLAs.
Suggestion Filters let you choose specific classes from our database based on set criteria, refining the model's output to show only the selected classes. Other classes are excluded, and confidence percentages are recalculated accordingly.
This feature enables you to select particular species, such as trees, house plants, vegetables or wild plants in North America. You can also combine different lists by using logical operators AND (classes in both lists) and OR (classes at least in one list), and brackets. The result is a response adapted to your use case, with increased accuracy and higher confidence of the model.
Some categories, especially Houseplant, Ornamental garden plant, Weedy plant and Culinary herb, are somewhat ambiguous. For example, the common ragweed (Ambrosia artemisiifolia) is considered a noxious weed in temperate regions but not in the tropics. We aim to reflect the predominant viewpoint of the northern hemisphere, where most of our customers are located.
How are genera (e.g. Ambrosia) handled? If any species within a genus is included in a particular Suggestion Filter, the entire genus is included. For example, even though only some Ambrosia species are considered weeds, the entire genus is included in the Weedy plant Suggestion filter.
Plant.id: see the documentation here. You can find all the Suggestion filters here.
Insect.id: see the documentation here. You can find all the Suggestion filters here.
API integration
Yes, we do:
- Plant.id: (docs, web, OpenAPI)
- Plant.health: (docs, web, OpenAPI)
- Mushroom.id (docs, web)
- Insect.id (docs, web)
- Crop.health (docs, web)
Compatibility is ensured by the widely adopted REST API https-based protocol. Easy integration is allowed by the Postman tool which generates client code examples in 30+ programming languages.
We do have a demo version available for all of our products:
- Plant.id (with plant.health)
- Insect.id
- Mushroom.id
- Crop.health
You can register there and test the identification process, without actually creating and implementing the API key to your project. Each demo has 10 identifications per month.
The results will show only some of the details that you can receive during the identification process. You can specify the particular details in the API call.
We have Python SDK to help integrate our products: plant, insect, and mushroom identification.
Access is authenticated by a unique API key created in the admin panel after registration. A separate API key is required for each of our products, but multiple API keys can be created for each product.
You will need a separate API key for each of our products (Plant.id, Insect.id and Mushroom.id, crop.health). However, you can use both Plant.id and plant.health with a single API key.
We strive to keep the changes to a necessary minimum. Critical changes are communicated through email. Minor changes, such as new attributes or features, are communicated via a newsletter or blog post.
Yes, we do have an intuitive dashboard where you can manage your API keys, purchase credits, monitor your traffic, or even display individual identification.
There are no limits or caps on the number of API requests. Our solution is robust enough to handle high volumes of requests, and scalable if required. This is done via an increased number of workers and the tier of our database, which is a matter of minutes.
However, our guarantees of minimum API availability and maximum time to process an identification request are subject to certain conditions. In fact, the API will still work, it may just be slower. Details are set out in our SLA.
The average transaction delay from Europe is ~150ms and the average identification takes ~350ms. So usually the overall latency is around 0.5 second. Details about transaction delays from different locations can be found at our status page.
Check also: How to increase identification speed?
If the SLA is met, we guarantee the following:
- API availability is more than 99.5%
- Maximum time for processing one identification request is three seconds
- Identification answer availability: at least 3 months from submission of the request
Here is the current status of Plant.id, Mushroom.id, Insect.id and crop.health
We enforce the use of https (TLS) for both API communication and Admin Panel usage. The client is authorized by a secret token unique to each API key.
For photos, we use Google Cloud Storage. For relational data, we use managed database on DigitalOcean.
Access to both of the services is limited to dedicated ops personnel and authorized clients, IAM policy is enforced and server-side encryption is enforced.
Please be aware that the communication from the mobile app can be intercepted by the attacker who is running the app. That is why we don't recommend call kindwise backend directly from the app to avoid API key being compromised.
Here are some critical guidelines on how to securely manage your API key:
- Encrypted Storage: Never hardcode your API key directly into your application without implementing robust encryption mechanisms. Storing keys in plain text can lead to easy exposure through reverse engineering or unauthorized access.
- Avoid Direct Server Calls from the App: Making server calls directly from client-side applications, such as mobile apps, can be risky. Attackers could potentially install your application on their devices, bypass SSL by accepting a rogue certificate, and intercept communications—including HTTPS encrypted data—to steal the API key. This attack vector is very simple.
- Use Your Own Backend as a Proxy: We strongly recommend that all API calls be made through your own backend server rather than directly from client devices. This approach not only secures the API key from direct exposure but also offers performance benefits, see How to increase identification speed?
If you need to avoid having your own backend as a proxy, check out our experimental alternative authentication methods.
Yes, we do offer alternative authentication method that enhances security and provides a robust defense against potential security breaches, such as man-in-the-middle attacks. This experimental method employs HMAC (Hash-Based Message Authentication Code) with SHA256 to securely sign the requests. Here's a brief overview of how it works:
- Dual Token System: For enhanced security, we provide each API key entity with two new tokens—a 'key' and a 'secret'. The 'key' functions similarly to the traditional API key, while the 'secret' is used to generate a secure hash and should be kept confidential.
- Secure Request Signing: Each API request must include the following headers:
- Api-Key: Contains the new 'key'.
- Hmac-Message: This is a UNIX timestamp to verify the timeliness of the request.
- Hmac-Hash: A HMAC SHA256 hash of the 'secret' and the timestamp (Hmac-Message), ensuring that the request could only have come from the holder of the 'secret'.
This method ensures that even if the 'key' is intercepted, without the 'secret' the information remains secure. It is especially effective against interception and unauthorized request modifications, making it suitable even for systems without their own backend, provided that the new keys are securely encrypted within the application.
If you are interested in using this authentication method, please let us know at business@kindwise.com for further details and integration guidance. This method offers a relatively secure way to protect your communications and data integrity.
Product-related questions
Our API offers a unique feature: along with the identification result, it displays similar-looking images to the submitted photo(s). These images are dynamically selected based on their similarity to the photos uploaded by the end user. This allows the customer to easily compare and verify the suggested identification. This feature has been shown to significantly improve user satisfaction. Watch the video tutorial.
The feature can be used by the similar_images
parameter.
Let us illustrate on dandelion:
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. You are welcome to use our images in your application, we provide you with a licence to do so.
Full lists are considered our trade secrets. We do not provide them publicly, but only in response to well-founded requests and after the signing of an NDA.
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: