Claves API
Mantén segura tu clave API para evitar usos indebidos
Cómo usar tu clave API Ver detalles Ocultar detalles
Guarda la clave en tu servidor y envíala como token Bearer. Todo lo de abajo es un inicio rápido para copiar y pegar.
- Crea una clave y guárdala en el gestor de secretos de tu servidor. Puedes volver a copiarla desde la lista de abajo cuando quieras.
- Envía una petición POST a /api/plant/identify con tu clave como token Bearer y la imagen en un campo multipart.
- Lee la respuesta JSON: los datos de la planta en el nivel superior, más credit_transaction y new_balance.
Petición
| Campo | Obligatorio | Tipo | Descripción |
|---|---|---|---|
image |
Obligatorio | file |
JPEG, PNG, WebP o GIF, hasta 10 MB. |
lang |
Opcional | string |
Idioma de salida: en, zh, es, ja, fr, de, pt, ko, it. Por defecto en; los valores desconocidos usan en. Máximo 12 caracteres. |
context |
Opcional | string |
Pista del sujeto para mayor precisión: plant, succulent, leaf, houseplant, poison_ivy. Por defecto plant. Máximo 32 caracteres. |
Petición de ejemplo
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=es" \
-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": "es", "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", "es");
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());
Respuesta de ejemplo
HTTP 200. Los campos pueden faltar si el modelo no está seguro: trata todos como opcionales. care_level es una etiqueta localizada, no un enum fijo.
{
"success": true,
"common_name": "Costilla de Adán",
"scientific_name": "Monstera deliciosa",
"family": "Araceae",
"care_level": "Fácil",
"light": "Luz indirecta brillante",
"watering": "Riega cuando la capa superior esté seca",
"pet_safety": "Tóxica para mascotas si se ingiere",
"description": "Trepadora tropical de hojas grandes y hendidas.",
"identification_notes": "Bordes de hoja hendidos y raíces aéreas.",
"lookalikes": "Monstera adansonii",
"next_step": "Gira la maceta cada semana para un crecimiento uniforme.",
"confidence": 0.92,
"credit_transaction": "PI2026110600001",
"new_balance": 18
}
Respuestas de error
400 missing_image |
La petición no incluye el campo image. |
400 invalid_file_type |
La imagen no es JPEG, PNG, WebP ni GIF. |
400 file_too_large |
La imagen supera los 10 MB. |
401 authentication_required |
Clave API ausente, no válida, inactiva o eliminada. |
402 insufficient_credits |
Créditos insuficientes. No se cobra nada. |
500 identification_failed |
Error del proveedor. Los créditos cobrados se reembolsan automáticamente. |
Facturación y seguridad
Cada identificación correcta cuesta 2 créditos. Las peticiones fallidas se reembolsan automáticamente.
Nunca incluyas una clave API en JavaScript del navegador ni en una app móvil. Desactiva o elimina la clave en cuanto pueda haberse expuesto.
Cargando...