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

# Create an image

> Generates an image from a prompt. The call is synchronous: Nano Banana usually takes 10 to 60 seconds, GPT Image 2.5 about 30 to 70 seconds. Set your client timeout to at least 180 seconds; 600 is safest.



## OpenAPI

````yaml openapi.yaml POST /v1/images/generations
openapi: 3.1.0
info:
  title: Orvado API
  version: '1.0'
  description: OpenAI-compatible image API. Prices in USD, charged from a prepaid balance.
servers:
  - url: https://orvado.dev
security:
  - bearerAuth: []
paths:
  /v1/images/generations:
    post:
      summary: Create an image
      description: >-
        Generates an image from a prompt. The call is synchronous: Nano Banana
        usually takes 10 to 60 seconds, GPT Image 2.5 about 30 to 70 seconds.
        Set your client timeout to at least 180 seconds; 600 is safest.
      operationId: createImage
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - model
                - prompt
              properties:
                model:
                  $ref: '#/components/schemas/ModelId'
                prompt:
                  type: string
                  description: What to draw
                  example: amethyst perfume bottle on plum velvet, studio light
                size:
                  type: string
                  description: >-
                    Any pixel size, such as `1024x1024` or `2048x1152`. The
                    longest side sets the price tier: under 1800 (or `auto`) is
                    1K, 1800 and up is 2K, 3000 and up is 4K. `1k`, `2k` and
                    `4k` give a square image
                  default: 1024x1024
                  example: 1024x1024
                quality:
                  type: string
                  description: GPT Image 2.5 only. Does not change the price
                  enum:
                    - low
                    - medium
                    - high
                    - xhigh
                    - max
                    - auto
                response_format:
                  type: string
                  enum:
                    - url
                    - b64_json
                  default: url
                'n':
                  type: integer
                  description: >-
                    Images per request. Send 1 and run requests in parallel for
                    more
                  default: 1
      responses:
        '200':
          $ref: '#/components/responses/ImageOk'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/NoBalance'
        '502':
          $ref: '#/components/responses/JobFailed'
        '503':
          $ref: '#/components/responses/Unavailable'
components:
  schemas:
    ModelId:
      type: string
      enum:
        - gpt-image-2.5-flare
        - gpt-image-2.5-sunburst
        - nano-banana-pro
        - nano-banana-2.1
        - nano-banana
        - nano-banana-2-lite
    ImageResponse:
      type: object
      properties:
        created:
          type: integer
          description: Unix time in seconds
          example: 1792500000
        data:
          type: array
          items:
            type: object
            properties:
              url:
                type: string
                description: >-
                  Temporary link to the image. Present when `response_format` is
                  `url`
              b64_json:
                type: string
                description: Base64 image. Present when `response_format` is `b64_json`
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            message:
              type: string
              example: 'No token provided (request id: 2026102015161442847504045555018)'
            type:
              type: string
              example: one_api_error
  responses:
    ImageOk:
      description: The finished image
      headers:
        X-Oneapi-Request-Id:
          $ref: '#/components/headers/RequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ImageResponse'
    BadRequest:
      description: Unsupported size, model or field. Not charged
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Missing or invalid key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NoBalance:
      description: >-
        `insufficient_user_quota`: not enough balance on the account or key. Not
        charged
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    JobFailed:
      description: '`async_image_failed`: the model refused or failed the job. Not charged'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unavailable:
      description: No capacity for this model right now. Not charged. Retry after a minute
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  headers:
    RequestId:
      description: ID of this request. Use it to look up the cost or to ask support
      schema:
        type: string
        example: '2026102015161442847504045555018'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Your `td-` key from **Tokens**

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.