Files
gateway-ComfyUI-Kie-API/docs/KIE_API_NANOBANANA_SPEC.md
T

14 KiB

Credits (official)

GET https://api.kie.ai/api/v1/chat/credit Header: Authorization: Bearer YOUR_API_KEY

Response: { "code": 200, "msg": "success", "data": 100 }

  • data = remaining credits (integer)

KIE Nano Banana Pro API (Pinned)

  • API key loaded from config/kie_key.txt
  • Create task: POST /api/v1/jobs/createTask
  • Poll task: GET /api/v1/jobs/recordInfo?taskId=
  • Credits: GET https://api.kie.ai/api/v1/chat/credit with header Authorization: Bearer <token>; expects JSON { "code": 200, "msg": "success", "data": <remaining_credits_int> } and treat non-200 code as error.

Nano Banan Pro API endpoint info and docs do not use anything other than whats below

Request Parameters The API accepts a JSON payload with the following structure:

Request Body Structure { "model": "string", "callBackUrl": "string (optional)", "input": { // Input parameters based on form configuration } } Root Level Parameters model Required string The model name to use for generation

Example:

"nano-banana-pro" callBackUrl Optional string Callback URL for task completion notifications. Optional parameter. If provided, the system will send POST requests to this URL when the task completes (success or failure). If not provided, no callback notifications will be sent.

Example:

"https://your-domain.com/api/callback" Input Object Parameters The input object contains the following parameters based on the form configuration:

input.prompt Required string A text description of the image you want to generate

Max length: 10000 characters Example:

"Comic poster: cool banana hero in shades leaps from sci-fi pad. Six panels: 1) 4K mountain landscape, 2) banana holds page of long multilingual text with auto translation, 3) Gemini 3 hologram for search/knowledge/reasoning, 4) camera UI sliders for angle focus color, 5) frame trio 1:1-9:16, 6) consistent banana poses. Footer shows Google icons. Tagline: Nano Banana Pro now on Kie AI." input.image_input Optional array(URL) Input images to transform or use as reference (supports up to 8 images)

File URL after upload, not file content; Accepted types: image/jpeg, image/png, image/webp; Max size: 30.0MB input.aspect_ratio Optional string Aspect ratio of the generated image

Available options:

1:1

1:1 2:3

2:3 3:2

3:2 3:4

3:4 4:3

4:3 4:5

4:5 5:4

5:4 9:16

9:16 16:9

16:9 21:9

21:9 auto

Auto Example:

"1:1" input.resolution Optional string Resolution of the generated image

Available options:

1K

1K 2K

2K 4K

4K Example:

"1K" input.output_format Optional string Format of the output image

Available options:

png

PNG jpg

JPG Example:

"png" Request Example

cURL

JavaScript

Python curl -X POST "https://api.kie.ai/api/v1/jobs/createTask"
-H "Content-Type: application/json"
-H "Authorization: Bearer YOUR_API_KEY"
-d '{ "model": "nano-banana-pro", "callBackUrl": "https://your-domain.com/api/callback", "input": { "prompt": "Comic poster: cool banana hero in shades leaps from sci-fi pad. Six panels: 1) 4K mountain landscape, 2) banana holds page of long multilingual text with auto translation, 3) Gemini 3 hologram for search/knowledge/reasoning, 4) camera UI sliders for angle focus color, 5) frame trio 1:1-9:16, 6) consistent banana poses. Footer shows Google icons. Tagline: Nano Banana Pro now on Kie AI.", "aspect_ratio": "1:1", "resolution": "1K", "output_format": "png" } }' Response Example { "code": 200, "message": "success", "data": { "taskId": "task_12345678" } } Response Fields code Status code, 200 for success, others for failure message Response message, error description when failed data.taskId Task ID for querying task status Callback Notifications When you provide the callBackUrl parameter when creating a task, the system will send POST requests to the specified URL upon task completion (success or failure).

Success Callback Example { "code": 200, "data": { "completeTime": 1755599644000, "consumeCredits": 100, "costTime": 8, "createTime": 1755599634000, "model": "nano-banana-pro", "param": "{"callBackUrl":"https://your-domain.com/api/callback","model":"nano-banana-pro","input":{"prompt":"Comic poster: cool banana hero in shades leaps from sci-fi pad. Six panels: 1) 4K mountain landscape, 2) banana holds page of long multilingual text with auto translation, 3) Gemini 3 hologram for search/knowledge/reasoning, 4) camera UI sliders for angle focus color, 5) frame trio 1:1-9:16, 6) consistent banana poses. Footer shows Google icons. Tagline: Nano Banana Pro now on Kie AI.","image_input":[],"aspect_ratio":"1:1","resolution":"1K","output_format":"png"}}", "remainedCredits": 2510330, "resultJson": "{"resultUrls":["https://example.com/generated-image.jpg"]}", "state": "success", "taskId": "e989621f54392584b05867f87b160672", "updateTime": 1755599644000 }, "msg": "Playground task completed successfully." } Failure Callback Example { "code": 501, "data": { "completeTime": 1755597081000, "consumeCredits": 0, "costTime": 0, "createTime": 1755596341000, "failCode": "500", "failMsg": "Internal server error", "model": "nano-banana-pro", "param": "{"callBackUrl":"https://your-domain.com/api/callback","model":"nano-banana-pro","input":{"prompt":"Comic poster: cool banana hero in shades leaps from sci-fi pad. Six panels: 1) 4K mountain landscape, 2) banana holds page of long multilingual text with auto translation, 3) Gemini 3 hologram for search/knowledge/reasoning, 4) camera UI sliders for angle focus color, 5) frame trio 1:1-9:16, 6) consistent banana poses. Footer shows Google icons. Tagline: Nano Banana Pro now on Kie AI.","image_input":[],"aspect_ratio":"1:1","resolution":"1K","output_format":"png"}}", "remainedCredits": 2510430, "state": "fail", "taskId": "bd3a37c523149e4adf45a3ddb5faf1a8", "updateTime": 1755597097000 }, "msg": "Playground task failed." }

KIE AI FILE UPLOAD Stream endpoint to use..

File Stream Upload

OpenAPI

openapi: 3.0.0
info:
  title: File Upload API
  description: >-
    File Upload Service API Documentation - Supporting multiple file upload
    methods, uploaded files are temporary and automatically deleted after 3 days
  version: 1.0.0
  contact:
    name: Technical Support
    email: support@kie.ai
servers:
  - url: https://kieai.redpandaai.co
    description: API Server
security:
  - BearerAuth: []
paths:
  /api/file-stream-upload:
    post:
      summary: File Stream Upload
      operationId: upload-file-stream
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
                  description: File to upload (binary data)
                uploadPath:
                  type: string
                  description: File upload path, without leading or trailing slashes
                  example: images/user-uploads
                fileName:
                  type: string
                  description: >-
                    File name (optional), including file extension. If not
                    provided, a random file name will be generated. If the same
                    file name is uploaded again, the old file will be
                    overwritten, but changes may not take effect immediately due
                    to caching
                  example: my-image.jpg
              required:
                - file
                - uploadPath
      responses:
        '200':
          $ref: '#/components/responses/SuccessResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '500':
          $ref: '#/components/responses/ServerError'
components:
  responses:
    SuccessResponse:
      description: File uploaded successfully
      content:
        application/json:
          schema:
            type: object
            properties:
              success:
                type: boolean
                description: Whether the request was successful
              code:
                type: integer
                enum:
                  - 200
                  - 400
                  - 401
                  - 405
                  - 500
                description: >-
                  Response Status Code


                  | Code | Description |

                  |------|-------------|

                  | 200 | Success - Request has been processed successfully |

                  | 400 | Bad Request - Request parameters are incorrect or
                  missing required parameters |

                  | 401 | Unauthorized - Authentication credentials are missing
                  or invalid |

                  | 405 | Method Not Allowed - Request method is not supported |

                  | 500 | Server Error - An unexpected error occurred while
                  processing the request |
              msg:
                type: string
                description: Response message
                example: File uploaded successfully
              data:
                $ref: '#/components/schemas/FileUploadResult'
            required:
              - success
              - code
              - msg
              - data
          example:
            success: true
            code: 200
            msg: File uploaded successfully
            data:
              fileName: uploaded-image.png
              filePath: images/user-uploads/uploaded-image.png
              downloadUrl: >-
                https://tempfile.redpandaai.co/xxx/images/user-uploads/uploaded-image.png
              fileSize: 154832
              mimeType: image/png
              uploadedAt: '2025-01-01T12:00:00.000Z'
    BadRequestError:
      description: Request parameter error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiResponse'
          examples:
            missing_parameter:
              summary: Missing required parameter
              value:
                success: false
                code: 400
                msg: 'Missing required parameter: uploadPath'
            invalid_format:
              summary: Format error
              value:
                success: false
                code: 400
                msg: 'Base64 decoding failed: Invalid Base64 format'
    UnauthorizedError:
      description: Unauthorized access
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiResponse'
          example:
            success: false
            code: 401
            msg: 'Authentication failed: Invalid API Key'
    ServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiResponse'
          example:
            success: false
            code: 500
            msg: Internal server error
  schemas:
    FileUploadResult:
      type: object
      properties:
        fileName:
          type: string
          description: File name
          example: uploaded-image.png
        filePath:
          type: string
          description: Complete file path in storage
          example: images/user-uploads/uploaded-image.png
        downloadUrl:
          type: string
          format: uri
          description: File download URL
          example: >-
            https://tempfile.redpandaai.co/xxx/images/user-uploads/uploaded-image.png
        fileSize:
          type: integer
          description: File size in bytes
          example: 154832
        mimeType:
          type: string
          description: File MIME type
          example: image/png
        uploadedAt:
          type: string
          format: date-time
          description: Upload timestamp
          example: '2025-01-01T12:00:00.000Z'
      required:
        - fileName
        - filePath
        - downloadUrl
        - fileSize
        - mimeType
        - uploadedAt
    ApiResponse:
      type: object
      properties:
        success:
          type: boolean
          description: Whether the request was successful
        code:
          $ref: '#/components/schemas/StatusCode'
        msg:
          type: string
          description: Response message
          example: File uploaded successfully
      required:
        - success
        - code
        - msg
    StatusCode:
      type: integer
      enum:
        - 200
        - 400
        - 401
        - 405
        - 500
      description: >-
        Response Status Code


        | Code | Description |

        |------|-------------|

        | 200 | Success - Request has been processed successfully |

        | 400 | Bad Request - Request parameters are incorrect or missing
        required parameters |

        | 401 | Unauthorized - Authentication credentials are missing or invalid
        |

        | 405 | Method Not Allowed - Request method is not supported |

        | 500 | Server Error - An unexpected error occurred while processing the
        request |
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: >-
        All APIs require authentication via Bearer Token.


        Get API Key:

        1. Visit [API Key Management Page](https://kie.ai/api-key) to get your
        API Key


        Usage:

        Add to request header:

        Authorization: Bearer YOUR_API_KEY


To find navigation and other pages in this documentation, fetch the llms.txt file at: https://docs.kie.ai/llms.txt.