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.

  1. 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.
  2. Senden Sie eine POST-Anfrage an /api/plant/identify mit dem Schlüssel als Bearer-Token und dem Bild in einem Multipart-Feld.
  3. 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…