> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bibigpt.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Generate or edit an image with AI (chatimg.ai)

> Transform a source image with an AI model and prompt (e.g. style transfer, editing). Requires an API token (Authorization: Bearer <token>). Billing: charged from your chatimg.ai credits per image — openai: 25 credits, gpt-image-2: 50 credits, flux: 12 credits, gemini: 10 credits, nanobanana-pro: 30 credits, nanobanana-2-lite: 12 credits, nanobanana-2: 20 credits, grok: 30 credits, seedream: 15 credits, qwen: 8 credits, z-image-turbo: 5 credits, flux-2-flex: 25 credits. See GET /v1/imagePricing for machine-readable pricing. Generation is asynchronous: poll GET /v1/imageStatus with the same imageUrl until status is completed. Failed generations are automatically refunded.



## OpenAPI

````yaml https://api.bibigpt.co/api/openapi.json post /v1/generateImage
openapi: 3.1.0
info:
  title: BibiGPT OpenAPI 规范
  description: 音视频 AI 学习助理的开放 API，加速音视频内容的信息提取，借助 AI 直接采取行动。
  version: 1.1.0
servers:
  - url: https://api.bibigpt.co/api
security: []
externalDocs:
  url: https://docs.bibigpt.co/api
paths:
  /v1/generateImage:
    post:
      tags:
        - open
      summary: Generate or edit an image with AI (chatimg.ai)
      description: >-
        Transform a source image with an AI model and prompt (e.g. style
        transfer, editing). Requires an API token (Authorization: Bearer
        <token>). Billing: charged from your chatimg.ai credits per image —
        openai: 25 credits, gpt-image-2: 50 credits, flux: 12 credits, gemini:
        10 credits, nanobanana-pro: 30 credits, nanobanana-2-lite: 12 credits,
        nanobanana-2: 20 credits, grok: 30 credits, seedream: 15 credits, qwen:
        8 credits, z-image-turbo: 5 credits, flux-2-flex: 25 credits. See GET
        /v1/imagePricing for machine-readable pricing. Generation is
        asynchronous: poll GET /v1/imageStatus with the same imageUrl until
        status is completed. Failed generations are automatically refunded.
      operationId: generateImage
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                imageUrl:
                  type: string
                  minLength: 1
                  description: >-
                    URL of the source image to process. Supports http URLs and
                    base64 encoded images (with or without data:image/...
                    prefix)
                prompt:
                  description: >-
                    Prompt describing the desired transformation (default:
                    ghibli style)
                  type: string
                model:
                  default: nanobanana-2-lite
                  description: >-
                    AI model to use (default: nanobanana-2-lite). Pricing per
                    image: openai: 25 credits, gpt-image-2: 50 credits, flux: 12
                    credits, gemini: 10 credits, nanobanana-pro: 30 credits,
                    nanobanana-2-lite: 12 credits, nanobanana-2: 20 credits,
                    grok: 30 credits, seedream: 15 credits, qwen: 8 credits,
                    z-image-turbo: 5 credits, flux-2-flex: 25 credits
                  type: string
                  enum:
                    - openai
                    - gpt-image-2
                    - flux
                    - gemini
                    - nanobanana-pro
                    - nanobanana-2-lite
                    - nanobanana-2
                    - grok
                    - seedream
                    - qwen
                    - z-image-turbo
                    - flux-2-flex
              required:
                - imageUrl
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  taskId:
                    type: string
                    description: Unique identifier for the generation task
                  status:
                    type: string
                    enum:
                      - pending
                      - completed
                      - error
                      - unknown
                    description: Initial status of the generation task (pending)
                  imageUrl:
                    type: string
                    description: >-
                      The source image URL, used as the key when polling
                      /v1/imageStatus
                  timestamp:
                    type: number
                    description: Timestamp when the task was created
                  costCredits:
                    type: number
                    description: Credits charged for this generation
                  balanceRemaining:
                    type: number
                    description: Remaining credits balance after this charge
                required:
                  - taskId
                  - status
                  - imageUrl
                  - timestamp
                  - costCredits
                  - balanceRemaining
                additionalProperties: false
        '400':
          description: Invalid input data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.BAD_REQUEST'
        '401':
          description: Authorization not provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.UNAUTHORIZED'
        '403':
          description: Insufficient access
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.FORBIDDEN'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR'
      security:
        - Authorization: []
components:
  schemas:
    error.BAD_REQUEST:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Invalid input data
        code:
          type: string
          description: The error code
          example: BAD_REQUEST
        issues:
          description: An array of issues that were responsible for the error
          example: []
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
            additionalProperties: false
      required:
        - message
        - code
      additionalProperties: false
      title: Invalid input data error (400)
      description: The error information
      example:
        code: BAD_REQUEST
        message: Invalid input data
        issues: []
    error.UNAUTHORIZED:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Authorization not provided
        code:
          type: string
          description: The error code
          example: UNAUTHORIZED
        issues:
          description: An array of issues that were responsible for the error
          example: []
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
            additionalProperties: false
      required:
        - message
        - code
      additionalProperties: false
      title: Authorization not provided error (401)
      description: The error information
      example:
        code: UNAUTHORIZED
        message: Authorization not provided
        issues: []
    error.FORBIDDEN:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Insufficient access
        code:
          type: string
          description: The error code
          example: FORBIDDEN
        issues:
          description: An array of issues that were responsible for the error
          example: []
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
            additionalProperties: false
      required:
        - message
        - code
      additionalProperties: false
      title: Insufficient access error (403)
      description: The error information
      example:
        code: FORBIDDEN
        message: Insufficient access
        issues: []
    error.INTERNAL_SERVER_ERROR:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Internal server error
        code:
          type: string
          description: The error code
          example: INTERNAL_SERVER_ERROR
        issues:
          description: An array of issues that were responsible for the error
          example: []
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
            additionalProperties: false
      required:
        - message
        - code
      additionalProperties: false
      title: Internal server error error (500)
      description: The error information
      example:
        code: INTERNAL_SERVER_ERROR
        message: Internal server error
        issues: []
  securitySchemes:
    Authorization:
      type: http
      scheme: bearer

````