{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"c4a4048d-ed97-4532-8980-3159ddbfe629","name":"Plant.id v3","description":"_Documentation for API v2 can be found_ [on our GitHub](https://github.com/flowerchecker/Plant-id-API/wiki)_. Or see_ [<i>overview of changes</i>](https://github.com/flowerchecker/Plant-id-API/wiki/Major-changes-of-API-v3-vs-API-v2) _between versions._\n\n[Plant.id](https://www.kindwise.com/plant-id) is a machine learning-based service to identify indoor plants, wildflowers, trees, grasses, and other plant species from images. Additionally, Plant.id can evaluate the health of plants and detect various diseases, vermins or pests. To use the API you need to [get an API key](http://admin.kindwise.com/).\n\nTo use API from **python**, use SDK: [kindwise API client](https://github.com/flowerchecker/kindwise-api-client).\n\n### How to use this documentation\n\nThis is a description of an important part of the API. The specification of the endpoints is given below. In the right column, you can find example calls of these endpoints (on the right you can toggle between different examples).\n\nView this collection [directly on Postman ](https://www.postman.com/winter-shadow-932363/workspace/kindwise/collection/24599534-c4a4048d-ed97-4532-8980-3159ddbfe629) to see endpoints and examples, and you can also try it out (after providing your API key).\n\nMore implementation examples can be found [on our GitHub](https://github.com/flowerchecker/plant-id-examples).\n\n[Download](https://plant.id/api/v3/openapi.yaml) the OpenAPI (YAML) definition of this API.\n\n# Authentication\n\nYou should provide the `Api-Key` header with your API key. You can request it in the [Admin Panel](http://admin.kindwise.com/).\n\n# Identification request\n\nThere are two methods to create a new identification:\n\n1. using `application/json` request - all attributes including images are encoded in json body - see [the example](https://www.postman.com/winter-shadow-932363/workspace/kindwise/example/24599534-774e14e0-ac40-4585-9234-2536187a8bbb)\n    \n2. using `multipart/form-data` request - attributes are sent in text fields; images are sent as files - see [the example](https://www.postman.com/winter-shadow-932363/workspace/kindwise/example/24599534-edb0a630-65dc-4132-b993-896ca2bb53cc)\n    \n\nAttributes:\n\n- **`images`**\n    \n    - `application/json`: a list of strings (required) with one or more images of the plant you want to identify, using either:\n        \n        - image(s) encoded as strings in [Base64,](https://base64.guru/converter/encode/image)\n            \n        - public URL(s) of images\n            \n    - `multipart/form-data` - all images in file fields (names of file fields are not important)\n        \n- `latitude` - float (optional) - geographic coordinate, increases the identification accuracy\n    \n- `longitude` - float (optional) - geographic coordinate, increases the identification accuracy\n    \n- `similar_images` - boolean (optional) - if `true`, the model also selects images similar to the provided images for each suggestion\n    \n- `custom_id` - integer (optional) - a unique identifier, can be used to access the identification results\n    \n- `datetime` - string (optional) - to improve results, e.g. for images taken at different seasons, specify the date when the images were taken in ISO format with variable precision (e.g. `2023-06-22` for days or `2023-06-22T11:28` for minutes)\n    \n- `health` - string (optional)\n    \n    - `only` - response contains only health assessment\n        \n    - `auto` - the health assessment response is included only if a plant has a harmful or non-harmful condition (see `is_harmful`). The total credit cost depends on whether health assessment is returned (**2 credits**) or not (**1 credit**).\n        \n    - `all` - response contains both plant species classification and health assessment; for such identification, **2 credits** are charged (1 for taxa classification and 1 for health assessment)\n        \n- `disease_level` - string - control the specificity of suggestions in the response\n    \n    - `all` - all classes; default\n        \n    - `general` - only broad classes, e.g. _feeding damage by insects_\n        \n- `suggestion_filter` - object (optional) in format `{\"classification\": \"FILTER_NAME (filter examples below)\"}` - restricts the output of the model to a specified list of classes (taxonomy, region or plant type) and adjusts the probabilities. The lists can be combined with logical operators and parentheses. The lists are available [here](https://plant.id/suggestion_filters). Examples:\n    \n    - Vegetables - `{\"classification\": \"vegetable\"}`\n        \n    - Houseplants and wild plants in Europe - `{\"classification\": \"houseplant OR continent__europe\"}`\n        \n    - Trees in Europe and North America - `{\"classification\": \"(continent__northern_america OR continent__europe) AND tree\"}`\n        \n- `classification_level` - string (optional) - classification model can give plant identification at 3 levels of taxonomy: genus, species and infraspecies (includes cultivars, subspecies, varieties and trademarks). This attribute allows to adjust which type of taxon is presented in response.\n    \n    - `species` - suggested plants are genus and species; default\n        \n    - `all` - suggested plants are genus, species and infraspecies\n        \n    - `genus` - suggested plants are only genus\n        \n- `classification_raw` - boolean (optional) - if `true`, suggestions of classification are kept in 3 original taxonomy levels (genus, species and infraspecies), without postprocessing. Please note that the response structure is changed, see the [example](https://www.postman.com/winter-shadow-932363/workspace/kindwise/example/24599534-7ea4e714-093e-4f0b-b435-58dcbe587f0b).\n    \n- `symptoms` - boolean (optional) - if `true,` returns heatmaps (as base64 images) and severity score for each identified disease symptom, and an overall defect score, see the [example](https://winter-shadow-932363.postman.co/workspace/Kindwise-private~84148215-9fd3-4627-8ef5-00f8bb91dcd1/example/25263203-b1934264-e4a2-4758-be9b-76dfb6ab061e?action=share&creator=25263203&ctx=documentation).\n    \n\n# Identification result\n\nHere we comment on important parts of the result. For a complete example of the results see the response examples below.\n\n- `access_token` - a unique identifier of the identification, can be used to access the identification results\n    \n- `result`\\->`is_plant` - prediction of the model about presence of a plant in the input image; see [this collection](https://plant.id/collection/wpusgmjyeDCXfXr) for examples\n    \n    - `binary` - if `false`, image probably does not contain a plant\n        \n    - `probability` - likelihood that image contains a plant\n        \n- `result`\\->`classification`\\->`suggestions` - predictions of the model containing [taxa](https://en.wikipedia.org/wiki/Taxon) (genus or species) suggestions and additional information; each `suggestion` consists of:\n    \n    - `id` - the id of the suggested taxon, which doesn't change over time\n        \n    - `name` - the name of the [taxon](https://en.wikipedia.org/wiki/Taxon) in our database (can change over time)\n        \n    - `probability` - the level of certainty that suggested taxon is the one in the image\n        \n    - `similar_images` - if `similar_images=true` is in request, list of representative images of the identified plant is returned; the images are selected to resemble the input image; they may contain license data that should be cited when using the image\n        \n    - `details` - additional info you requested, see below\n        \n\n## Health assessment result\n\nIf you request health assessment (via the `health` request attribute or the `health_assessment` endpoint), the response includes health block with a list of suggestions (classes). For a full example of the results, see the response examples below.\n\n- `result`\\->`is_healthy` - prediction about whether the plant in the input images is healthy\n    \n    - `binary` - boolean - `true` if the images are likely to contain a healthy plant\n        \n    - `probability` - probability that images contain a healthy plant\n        \n- `result`\\->`disease` -> `suggestions`\\- predictions of the model include disease suggestions or non-harmful classes, and additional information; each `suggestion` consists of:\n    \n    - `id` - string - stable identifier of the class (does not change over time)\n        \n    - `name` - string - name of the class, either a non-scientific name (e.g. water deficiency) or scientific name (e.g. Agrobacterium tumefaciens); may change over time\n        \n    - `probability` - number (0–1) - model confidence that this class is present in the image\n        \n    - `similar_images` - if `similar_images=true` is in request, list of representative images of the identified plant is returned; the images are selected to resemble the input image; they may contain license data that should be cited when using the image\n        \n    - `details` - additional requested information, see below\n        \n- `result`\\->`disease` -> `question`\\- follow-up questions designed to differentiate between the suggestions of the model (can be `null` when no question is needed). See [this article](https://www.kindwise.com/post/new-plant-health-feature-follow-up-questions) for details.\n    \n    - `text` - selected question\n        \n    - `options` - one of the model's suggestions for `yes` and `no` answers (with `suggestion_index`, `entity_id` and `name` referring to the list of disease suggestions)\n        \n\n# Details\n\nThere is a list of additional information about plant that you can get in identification result. To get specific information, include the detail's name in the GET parameters.\n\nThe default language is English; to get details in a different language include the language parameter in the GET parameters. ISO 639 two-letter language codes are used, except for Simplified Chinese (`zh`) and Traditional Chinese (`zh-hant`).\n\nIf a certain detail is unavailable, `null` is returned.\n\nSome details are **licensed**. If you want to use this detail, you should also cite the source.\n\n⚠️ We are not liable for damages or injury caused by actions based on inaccurate, misleading, incomplete or wrong information provided.\n\nThis is a basic description of the available details. To see examples of return values and their exact format, see [this example](https://www.postman.com/winter-shadow-932363/workspace/kindwise/example/24599534-6b255bc8-d037-49a3-852e-82ca9cf00041) (for [health assessment](https://www.postman.com/winter-shadow-932363/workspace/kindwise/example/24599534-cd90efd7-97f2-4258-8b2f-4188cf392be6)) with all details for a single language or [this example](https://www.postman.com/winter-shadow-932363/workspace/kindwise/example/24599534-b8a81cd0-592c-44cf-b7b7-a317eb1ca1b0) with multiple languages.\n\n### Taxa classification\n\n- **`common_names`** - list of strings - _localized_ - local, non-scientific name\n    \n- **`url`** - string - _localized_ - link to plant profile page (usually Wikipedia); if localized page not available, an English one is provided\n    \n- **`description`** - string - _localized, with license_ - short description from Wikipedia\n    \n- **`description_gpt`** - string - _localized_ - short description from GPT\n    \n- **`description_all`** - string - _localized, some with license_ - short description, combined Wikipedia and GPT. [Read more](https://kindwise.com/handbook#insect_descriptions).\n    \n- **`taxonomy`** - dict - scientific taxonomy\n    \n- **`name_authority`** - string - scientific name of the plant and authority, for example, Taraxacum officinale F.H.Wigg.\n    \n- **`rank`** - string - taxonomic rank\n    \n- **`gbif_id`** - integer - id in [GBIF database](https://www.gbif.org)\n    \n- **`inaturalist_id`** - int - id in [iNaturalist database](https://www.inaturalist.org)\n    \n- **`image`** - string - _with licence_ - URL of representative image\n    \n- **`images`** - list - _with licences_ - list of more URLs of representative images\n    \n- **`synonyms`** - list - other names of the plant\n    \n- **`edible_parts`** - list - edible/medicinal parts of the plant; read more in the [Handbook](https://www.kindwise.com/handbook#edible_medicinal)\n    \n- **`propagation_methods`** - list - propagation methods of the plant (eg. seeds, cuttings...); read more in the [Handbook](https://www.kindwise.com/handbook#propagation).\n    \n- **`watering`** - dict - minimum and maximum of how wet environment the plant prefers; read more in the [Handbook](https://www.kindwise.com/handbook#watering)\n    \n- **`best_watering`** - string - short paragraph on optimal watering practices, English only\n    \n- **`best_light_condition`** - string - short paragraph on optimal lighting, English only\n    \n- **`best_soil_type`** - string - short paragraph on optimal soil types for growing the plant, English only\n    \n- **`common uses`** - string - short paragraph on how the plant can be used, English only\n    \n- **`toxicity`** - string - short paragraph on whether the plant is poisonous to humans or animals, English only\n    \n- **`cultural_significance`** - string - short paragraph on the importance of the plant in human culture, English only\n    \n- **`gpt`** - list - categories to which the plant belongs. They can include taxonomy, region or plant type. The lists are available [here](https://plant.id/suggestion_filters). Generated by LLM.\n    \n\n### Diseases\n\n- **`local_name`** - string - _localized_ - name of a class in the requested language; typically translations of non-scientific classes, such as _water deficiency_.\n    \n- **`description`** - string - _localized_ - short description compiled from Wikipedia or drafted with an LLM and reviewed by a plant-health expert\n    \n- **`url`** - string - _localized_ - link to a profile page for the class (usually Wikipedia or iNaturalist); an English page is provided if the requested page is not available; [kindwise’s wiki-style knowledge base ](https://health.kindwise.com) when Wikipedia coverage is missing\n    \n- **`treatment`** - dict - treatments and prevention for diseases. Not AI-generated but carefully compiled by a domain expert. Biological or chemical treatments for the disease may not be present for all diseases, but prevention is always present. Read more in the [Handbook](https://www.kindwise.com/handbook#treatment).\n    \n    - **`biological`** - string - non-chemical/biocontrol options\n        \n    - **`chemical`** - string - chemical controls\n        \n    - **`prevention`** - string - cultural practices and preventative measures\n        \n- **`is_harmful`** - boolean - indicates whether a class is non-harmful (e.g., lichen/moss cover, flower buds, harmless insects) (non_harmful)\n    \n- **`classification`** - list - class higher in taxonomic hierarchy; may be empty for non-taxonomic or generalized classes.\n    \n- **`common_names`** - list - common names for the class\n    \n\nThe available languages are: English - `en`, German - `de`, Czech - `cs`, Spanish - `es`, French - `fr`, Italian - `it`, Dutch - `nl`, Polish - `pl`, Swedish - `sv`, Simplified Chinese - `zh`, Traditional Chinese - `zh-hant`, Danish - `da`, Turkish - `tr`, Hindi - `hi`, Arabic - `ar`, Brazilian Portuguese - `pt-BR`, Korean - `ko`.\n\n# Response codes\n\n| **Response code** | **Explanation** |\n| --- | --- |\n| 200 | Successful request |\n| 201 | Identification created |\n| 400 | Invalid input data - check error message for details |\n| 401 | Invalid API key |\n| 404 | Object not found, e.g. identification, conversation |\n| 429 | Not enough credits |\n| 500 | Server error, try again or contact support |\n\n# Endpoints","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":true,"owner":"24599534","collectionId":"c4a4048d-ed97-4532-8980-3159ddbfe629","publishedId":"2s93z5A4v2","public":true,"publicUrl":"https://documenter-api.postman.tech/view/24599534/2s93z5A4v2","privateUrl":"https://go.postman.co/documentation/24599534-c4a4048d-ed97-4532-8980-3159ddbfe629","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"c12432"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":"plant.id API v3"}],"appearance":{"default":"light","themes":[{"name":"dark","logo":"https://content.pstmn.io/4946d5cd-820a-4492-93b7-4e977c8c5946/UGxhbnQuaWQucG5n","colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"C12432"}},{"name":"light","logo":"https://content.pstmn.io/4946d5cd-820a-4492-93b7-4e977c8c5946/UGxhbnQuaWQucG5n","colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"c12432"}}]}},"version":"8.10.1","publishDate":"2023-06-22T14:33:26.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"plant.id API v3","description":""},"logos":{"logoLight":"https://content.pstmn.io/4946d5cd-820a-4492-93b7-4e977c8c5946/UGxhbnQuaWQucG5n","logoDark":"https://content.pstmn.io/4946d5cd-820a-4492-93b7-4e977c8c5946/UGxhbnQuaWQucG5n"}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/26f40c6e93a44c2dff2f36796f6c1fac72dfad0aae17cb25b5b7b4bff0441f95","favicon":""},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/2s93z5A4v2"}