Nano Banana API
Server routes for AI image generation using the Nano Banana service.
POST /api/nano-banana/jobs
Create a new image generation job.
Request Body
typescript
{
projectId: string
prompt: string
inputImageId?: string // FK to pip_ai_document_images
inputImagePath?: string // Direct storage path fallback
pageId?: string
materialIds?: string[]
materialPayload?: Array<{
id?: string
name?: string
imageUrl?: string
}>
options?: {
size?: string // e.g., '1024x1024'
seed?: number
safety?: string
}
}Response
json
{
"jobId": "uuid",
"status": "queued"
}GET /api/nano-banana/jobs
List jobs for a project.
Query Parameters
| Param | Type | Description |
|---|---|---|
projectId | string | Required. Project UUID |
status | string | Optional. Filter by status |
limit | number | Optional. Max results |
POST /api/nano-banana/messages
Send a refinement message to an existing job.
Request Body
typescript
{
jobId: string
prompt: string
variantId?: string // Reference variant to refine from
}GET /api/nano-banana/jobs/[jobId]/messages
Get chat history and variants for a job.
POST /api/nano-banana/callback
N8N callback with generation results (webhook secret protected).
Headers
x-webhook-secret: <N8N_NANO_BANANA_SECRET>Request Body
typescript
{
job_id: string
status: 'succeeded' | 'failed'
output_paths?: Array<{
variant_id: string
path: string
thumb_path?: string
meta?: Record<string, any>
}>
error?: string
}Source
server/api/nano-banana/