Chiavi API
Mantieni la tua chiave API al sicuro per evitare abusi
Come usare la chiave API Mostra dettagli Nascondi dettagli
Conserva la chiave sul tuo server e inviala come token Bearer. Tutto qui sotto è un avvio rapido da copiare e incollare.
- Crea una chiave e salvala nel gestore di secret del server. Puoi copiarla di nuovo dall'elenco qui sotto in qualsiasi momento.
- Invia una richiesta POST a /api/plant/identify con la chiave come token Bearer e l'immagine in un campo multipart.
- Leggi la risposta JSON: i dati della pianta al primo livello, più credit_transaction e new_balance.
Richiesta
| Campo | Obbligatorio | Tipo | Descrizione |
|---|---|---|---|
image |
Obbligatorio | file |
JPEG, PNG, WebP o GIF, fino a 10 MB. |
lang |
Facoltativo | string |
Lingua di output: en, zh, es, ja, fr, de, pt, ko, it. Predefinita en; i valori sconosciuti tornano a en. Massimo 12 caratteri. |
context |
Facoltativo | string |
Suggerimento sul soggetto per maggiore precisione: plant, succulent, leaf, houseplant, poison_ivy. Predefinito plant. Massimo 32 caratteri. |
Richiesta di esempio
curl -X POST https://api.plantidentify.org/api/plant/identify \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "image=@/path/to/plant.jpg;type=image/jpeg" \
-F "lang=it" \
-F "context=houseplant"
import requests
with open("plant.jpg", "rb") as f:
r = requests.post(
"https://api.plantidentify.org/api/plant/identify",
headers={"Authorization": "Bearer YOUR_API_KEY"},
files={"image": ("plant.jpg", f, "image/jpeg")},
data={"lang": "it", "context": "houseplant"},
timeout=90,
)
print(r.status_code, r.json())
import { readFile } from "node:fs/promises";
const form = new FormData();
form.append("image", new Blob([await readFile("plant.jpg")], { type: "image/jpeg" }), "plant.jpg");
form.append("lang", "it");
form.append("context", "houseplant");
const res = await fetch("https://api.plantidentify.org/api/plant/identify", {
method: "POST",
headers: { Authorization: "Bearer YOUR_API_KEY" },
body: form,
});
console.log(res.status, await res.json());
Risposta di esempio
HTTP 200. Alcuni campi possono mancare se il modello non è sicuro: trattali tutti come facoltativi. care_level è un'etichetta localizzata, non un enum fisso.
{
"success": true,
"common_name": "Monstera",
"scientific_name": "Monstera deliciosa",
"family": "Araceae",
"care_level": "Facile",
"light": "Luce indiretta intensa",
"watering": "Annaffia quando lo strato superiore è asciutto",
"pet_safety": "Tossica per gli animali se ingerita",
"description": "Rampicante tropicale con grandi foglie incise.",
"identification_notes": "Bordi fogliari incisi e radici aeree.",
"lookalikes": "Monstera adansonii",
"next_step": "Ruota il vaso ogni settimana per una crescita uniforme.",
"confidence": 0.92,
"credit_transaction": "PI2026110600001",
"new_balance": 18
}
Risposte di errore
400 missing_image |
La richiesta non contiene il campo image. |
400 invalid_file_type |
L'immagine non è JPEG, PNG, WebP o GIF. |
400 file_too_large |
L'immagine supera i 10 MB. |
401 authentication_required |
Chiave API mancante, non valida, inattiva o eliminata. |
402 insufficient_credits |
Crediti insufficienti. Non viene addebitato nulla. |
500 identification_failed |
Errore del provider. I crediti addebitati vengono rimborsati automaticamente. |
Fatturazione e sicurezza
Ogni identificazione riuscita costa 2 crediti. Le richieste non riuscite vengono rimborsate automaticamente.
Non inserire mai una chiave API nel JavaScript del browser o in un bundle di app mobile. Disattiva o elimina la chiave non appena potrebbe essere stata esposta.
Caricamento…