Chaves de API

Mantenha sua chave de API segura para evitar uso indevido

Como usar sua chave de API Mostrar detalhes Ocultar detalhes

Mantenha a chave no seu servidor e envie como token Bearer. Tudo abaixo é um início rápido para copiar e colar.

  1. Crie uma chave e guarde-a no gerenciador de segredos do servidor. Você pode copiá-la novamente na lista abaixo a qualquer momento.
  2. Envie uma requisição POST para /api/plant/identify com a chave como token Bearer e a imagem em um campo multipart.
  3. Leia a resposta JSON: os dados da planta no nível superior, mais credit_transaction e new_balance.

Requisição

Campo Obrigatório Tipo Descrição
image Obrigatório file JPEG, PNG, WebP ou GIF, até 10 MB.
lang Opcional string Idioma de saída: en, zh, es, ja, fr, de, pt, ko, it. Padrão en; valores desconhecidos voltam para en. Máximo de 12 caracteres.
context Opcional string Dica do assunto para maior precisão: plant, succulent, leaf, houseplant, poison_ivy. Padrão plant. Máximo de 32 caracteres.

Requisição de exemplo

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=pt" \
  -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": "pt", "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", "pt");
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());

Resposta de exemplo

HTTP 200. Campos podem faltar quando o modelo não tem certeza — trate todos como opcionais. care_level é um rótulo localizado, não um enum fixo.

{
  "success": true,
  "common_name": "Costela-de-adão",
  "scientific_name": "Monstera deliciosa",
  "family": "Araceae",
  "care_level": "Fácil",
  "light": "Luz indireta intensa",
  "watering": "Regue quando a camada superior estiver seca",
  "pet_safety": "Tóxica para animais se ingerida",
  "description": "Trepadeira tropical com folhas grandes e recortadas.",
  "identification_notes": "Bordas recortadas e raízes aéreas.",
  "lookalikes": "Monstera adansonii",
  "next_step": "Gire o vaso toda semana para um crescimento uniforme.",
  "confidence": 0.92,
  "credit_transaction": "PI2026110600001",
  "new_balance": 18
}

Respostas de erro

400 missing_image A requisição não contém o campo image.
400 invalid_file_type A imagem não é JPEG, PNG, WebP ou GIF.
400 file_too_large A imagem excede 10 MB.
401 authentication_required Chave de API ausente, inválida, inativa ou excluída.
402 insufficient_credits Créditos insuficientes. Nada é cobrado.
500 identification_failed Erro do provedor. Os créditos cobrados são reembolsados automaticamente.

Cobrança e segurança

Cada identificação bem-sucedida custa 2 créditos. Requisições com falha são reembolsadas automaticamente.
Nunca coloque uma chave de API em JavaScript do navegador ou no pacote de um app mobile. Desative ou exclua a chave assim que houver risco de exposição.
Carregando…