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.

  1. Crea una chiave e salvala nel gestore di secret del server. Puoi copiarla di nuovo dall'elenco qui sotto in qualsiasi momento.
  2. Invia una richiesta POST a /api/plant/identify con la chiave come token Bearer e l'immagine in un campo multipart.
  3. 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…