Guia do Desenvolvedor da API Ketchup (Google Nano Banana 2)
Desenvolva rapidamente com tutoriais, exemplos de payload e melhores práticas criadas para fluxos de trabalho de imagens da API Ketchup.
Visão Geral da API Ketchup
A API Ketchup oferece fotos de produtos, fundos de UI e gráficos para redes sociais com qualidade de renderização previsível. O design REST mantém as integrações simples, enquanto a plataforma escala desde criadores solo até lançamentos empresariais.
Capacidades da API Ketchup
- Geração de texto para imagem ajustada para cenários de produção com modelos da API Ketchup.
- Edição guiada por referência com até cinco imagens em uma única solicitação da API Ketchup.
- Fila de trabalhos assíncrona para que seu app permaneça responsivo enquanto a API Ketchup renderiza.
- Callbacks de webhook que permitem à API Ketchup enviar mudanças de status em tempo real.
- Esquemas JSON consistentes que mantêm as respostas da API Ketchup fáceis de analisar.
- Segurança de token Bearer gerenciada no painel da API Ketchup.
overview.base_url
https://api.defapi.orgoverview.api_version
v1.0.0Começando com a API Ketchup
- Abra um workspace da API Ketchup e crie um token de acesso.
- Adicione o token Bearer da API Ketchup ao cabeçalho Authorization para cada chamada.
- Faça POST para o endpoint de geração de imagens da API Ketchup com prompts, modo e referências.
- Armazene o ID do trabalho retornado e consulte o endpoint de status ou assine webhooks.
- Baixe os arquivos finais quando a API Ketchup marcar o trabalho como sucesso.
Autenticação
Toda requisição da API Ketchup precisa de um token Bearer válido. Rotacione as chaves por ambiente e audite o uso frequentemente.
Método de Token Bearer
Anexe seu token da API Ketchup ao cabeçalho Authorization como mostrado abaixo:
Authorization: Bearer <your-api-key>Exemplo de Formato de Token
Authorization: Bearer dk-1234567890abcdefRequisição de Exemplo
curl -X POST "https://api.defapi.org/api/image/gen" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-api-key-here" \
-d '{
"model": "google/gempix2",
"prompt": "A beautiful landscape"
}'Lista de Verificação de Token Válido
- ✅ Token está ativo e não expirou.
- ✅ Workspace tem acesso à API Ketchup habilitado.
- ✅ Conta tem cota restante ou crédito.
Problemas Comuns
- ❌ Cabeçalho Authorization ausente.
- ❌ Valor de token Bearer mal formatado.
- ❌ Workspace suspenso ou token revogado.
Geração de Imagem da API Ketchup
Crie renders novos, revise assets existentes ou misture mood boards com o endpoint de geração da API Ketchup.
Endpoint
POST /api/image/genParâmetros da Requisição
| Parameter | Type | Required | Description |
|---|---|---|---|
| model | string | Yes | Model identifier (e.g., "google/gempix2") |
| prompt | string | Yes | Text prompt describing the image |
| images | array | No | Reference image URLs (max 4) |
| callback_url | string | No | Webhook URL for completion notifications |
Exemplos de Código
Prompt Básico da API Ketchup
{
"model": "google/gempix2",
"prompt": "A beautiful girl dancing in a garden"
}Remix da API Ketchup com Referências
{
"model": "google/gempix2",
"prompt": "Put them in a basket",
"images": [
"https://cdn.openai.com/API/docs/images/body-lotion.png",
"https://cdn.openai.com/API/docs/images/soap.png"
],
"callback_url": "https://example.com/webhook/image-callback"
}Esquema de Resposta
{
"code": 0,
"message": "ok",
"data": {
"task_id": "ta12345678-1234-1234-1234-123456789abc"
}
}Tratamento de Erros
400 - Bad Request
{"code": 1, "message": "failed", "detail": "prompt is required"}401 - Unauthorized
{"code": 1, "message": "Invalid API key"}Status do Job da API Ketchup
Monitore o progresso de renderização e obtenha URLs de entrega usando o endpoint de status.
Endpoint
GET /api/task/query?task_id=<task_id>Parâmetros de Consulta
| Parameter | Type | Required | Description |
|---|---|---|---|
| task_id | string | Yes | Unique task identifier returned from generation endpoint |
Requisição de Exemplo
curl -X GET "https://api.defapi.org/api/task/query?task_id=ta823dfb-eaac-44fd-aec2-3e2c7ba8e071" \ -H "Authorization: Bearer your-api-key-here"
Códigos de Status
pending - A API Ketchup aceitou a requisição e colocou o job na fila.submitted - A API Ketchup agendou o job para processamento.in_progress - A API Ketchup está renderizando assets agora.success - A API Ketchup terminou de renderizar e os assets estão prontos para download.failed - A API Ketchup não conseguiu renderizar o job devido a um erro.Códigos de Erro
404 - Task Not Found
{"code": 1, "message": "task not found"}401 - Unauthorized
{"code": 401, "message": "Invalid API key"}Modelos de Dados da API Ketchup
Esquemas detalhados para payloads de requisição, respostas de trabalhos e corpos de webhook usados em integrações da API Ketchup.
ImageGenResult
Represents a generated image result.
{
"image": "https://google.datas.systems/fileSystem/response_images/287/2025/08/29/1756432513771985292_2989.png"
}| Field | Type | Description |
|---|---|---|
| image | string | Image URL or base64 data URI |
CallbackPayload
Payload sent to the callback_url when task status changes to final states.
{
"result": [
{
"image": "https://google.datas.systems/fileSystem/response_images/287/2025/08/29/1756432513771985292_2989.png"
}
],
"status": "success",
"task_id": "ta5c9705-b8ae-4cb9-aa6f-97c4fee88c8d",
"consumed": "0.500000",
"status_reason": {
"message": null
}
}| Field | Type | Description |
|---|---|---|
| result | array | Array of ImageGenResult objects (null if failed) |
| status | string | Final task status (success/failed) |
| task_id | string | Unique task identifier |
| consumed | string | Credits consumed by the task |
| status_reason | object | Status details including error message if failed |
Esquemas de Modelos
google/gempix2Nano Banana image generation modelgoogle/gemini-2.5-flash-imageGemini 2.5 Flash image modelResolução de Problemas
Entenda os formatos de erro da API Ketchup, regras de retry e quando escalar para o suporte.
Códigos de Status HTTP
OK
Request was successful
Bad Request
Invalid request parameters or malformed JSON
Unauthorized
Invalid, missing, or expired API key
Not Found
Task not found or endpoint doesn't exist
Internal Server Error
Server-side error occurred
Melhores Práticas
- Verifique o código de status HTTP antes de analisar o payload.
- Use backoff exponencial ao tentar novamente trabalhos da API Ketchup após erros 500.
- Registre o ID da requisição para que a equipe de suporte da API Ketchup possa rastrear problemas.
- Valide prompts e URLs de imagem localmente para evitar respostas 400.
- Rotacione os tokens da API Ketchup se a autenticação começar a falhar.
- Consulte o status do trabalho no máximo uma vez por segundo para respeitar os limites de taxa.
- Prefira webhooks para execuções de alto volume para que a API Ketchup possa enviar atualizações.
Exemplo de Tratamento de Erros (JavaScript)
async function generateImage(prompt, apiKey) {
try {
const response = await fetch('https://api.defapi.org/api/image/gen', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${apiKey}`
},
body: JSON.stringify({
model: 'google/gempix2',
prompt: prompt
})
});
if (!response.ok) {
const errorData = await response.json();
throw new Error(`API Error ${response.status}: ${errorData.message}`);
}
const data = await response.json();
return data.data.task_id;
} catch (error) {
console.error('Image generation failed:', error.message);
throw error;
}
}