API-Schlüssel
Halten Sie Ihren API-Schlüssel sicher, um Missbrauch zu verhindern
API-Schlüssel verwenden Details anzeigen Details ausblenden
Bewahren Sie den Schlüssel auf Ihrem Server auf und senden Sie ihn als Bearer-Token. Alles unten ist ein Schnellstart zum Kopieren.
- Erstellen Sie einen Schlüssel und speichern Sie ihn im Secret Store Ihres Servers. Sie können ihn jederzeit aus der Liste unten erneut kopieren.
- Senden Sie eine POST-Anfrage an /api/plant/identify mit dem Schlüssel als Bearer-Token und dem Bild in einem Multipart-Feld.
- Lesen Sie die JSON-Antwort: Pflanzendaten auf der obersten Ebene, dazu credit_transaction und new_balance.
Anfrage
| Feld | Pflicht | Typ | Beschreibung |
|---|---|---|---|
image |
Pflicht | file |
JPEG, PNG, WebP oder GIF, bis 10 MB. |
lang |
Optional | string |
Ausgabesprache: en, zh, es, ja, fr, de, pt, ko, it. Standard en; unbekannte Werte fallen auf en zurück. Maximal 12 Zeichen. |
context |
Optional | string |
Hinweis zum Motiv für bessere Genauigkeit: plant, succulent, leaf, houseplant, poison_ivy. Standard plant. Maximal 32 Zeichen. |
Beispielanfrage
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=de" \
-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": "de", "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", "de");
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());
Beispielantwort
HTTP 200. Felder können fehlen, wenn das Modell unsicher ist — behandeln Sie alle als optional. care_level ist ein lokalisierter Anzeigetext, kein festes Enum.
{
"success": true,
"common_name": "Monstera",
"scientific_name": "Monstera deliciosa",
"family": "Araceae",
"care_level": "Einfach",
"light": "Helles indirektes Licht",
"watering": "Gießen, wenn die obere Erdschicht trocken ist",
"pet_safety": "Für Haustiere giftig beim Verzehr",
"description": "Tropische Kletterpflanze mit großen, geschlitzten Blättern.",
"identification_notes": "Geschlitzte Blattränder und Luftwurzeln.",
"lookalikes": "Monstera adansonii",
"next_step": "Den Topf wöchentlich drehen für gleichmäßiges Wachstum.",
"confidence": 0.92,
"credit_transaction": "PI2026110600001",
"new_balance": 18
}
Fehlerantworten
400 missing_image |
Der Anfrage fehlt das Feld image. |
400 invalid_file_type |
Das Bild ist kein JPEG, PNG, WebP oder GIF. |
400 file_too_large |
Das Bild ist größer als 10 MB. |
401 authentication_required |
API-Schlüssel fehlt, ist ungültig, inaktiv oder gelöscht. |
402 insufficient_credits |
Nicht genügend Credits. Es wird nichts abgebucht. |
500 identification_failed |
Fehler beim Anbieter. Abgebuchte Credits werden automatisch erstattet. |
Abrechnung und Sicherheit
Jede erfolgreiche Identifizierung kostet 2 Credits. Fehlgeschlagene Anfragen werden automatisch erstattet.
Legen Sie einen API-Schlüssel niemals in Browser-JavaScript oder ein Mobile-App-Bundle. Deaktivieren oder löschen Sie den Schlüssel, sobald er offengelegt sein könnte.
Wird geladen…