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.
- Crie uma chave e guarde-a no gerenciador de segredos do servidor. Você pode copiá-la novamente na lista abaixo a qualquer momento.
- Envie uma requisição POST para /api/plant/identify com a chave como token Bearer e a imagem em um campo multipart.
- 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…