Imagefactory Generate API

The Generate API from Imagefactory — 2 operation(s) for generate.

GitHub OpenAPI

Operations 2

POST /api/external/v1/images/generate Generate using prompt, card or references #
GET /api/external/v1/images/styles List the nine style card IDs #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/imagefactory-co-kr:imagefactory-co-kr-generate-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

imagefactory-co-kr-generate-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Imagefactory External Generate API
  version: 1.2.0
  description: Team usage, resize, and image generation. Team integration keys are issued in My Page → API Keys. Approved team members can issue and use image keys; team-wide usage requires an admin or owner. Unapproved teams cannot issue image keys or submit new jobs. Removing team approval preserves accepted jobs and their settlement. Generate outputs are 1024×1024; use resize for exact dimensions. Reference instructions are optional per image. Pair mode requires count = reference count; roundrobin permits 1–5 outputs. Product images and design references have separate roles. Safe zones use output pixels from the top-left. Private input blobs are deleted on completion or timeout.
  contact:
    name: Imagefactory Support
    url: https://www.imagefactory.co.kr
servers:
- url: https://www.imagefactory.co.kr
  description: Production
security:
- bearerAuth: []
tags:
- name: Generate
paths:
  /api/external/v1/images/generate:
    post:
      tags:
      - Generate
      summary: Generate using prompt, card or references
      description: 'Requires a team integration key with the matching permission. Reserves 100 points per output atomically; failures are refunded. Maximum 5 outputs, 2 active tasks per team. Poll the returned task ID. Source images: PNG/JPEG/WebP, 5 MB / 16 million pixels each. Total JSON body: 24 MB. Never retry with a new Idempotency-Key after a lost response.'
      parameters:
      - name: Idempotency-Key
        in: header
        required: true
        schema:
          type: string
          minLength: 8
          maxLength: 128
          pattern: ^[a-zA-Z0-9_-]+$
        example: example-request-001
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $schema: https://json-schema.org/draft/2020-12/schema
              oneOf:
              - type: object
                properties:
                  prompt:
                    type: string
                    maxLength: 6000
                  images:
                    default: []
                    maxItems: 5
                    type: array
                    items:
                      type: object
                      properties:
                        url:
                          type: string
                          maxLength: 2048
                          format: uri
                        base64:
                          type: string
                          minLength: 4
                          maxLength: 7000000
                      additionalProperties: false
                  count:
                    default: 1
                    type: integer
                    minimum: 1
                    maximum: 5
                  locale:
                    default: ko
                    type: string
                    pattern: ^[a-z]{2}(?:-[A-Z]{2})?$
                  placement:
                    type: string
                    maxLength: 200
                  sourcePageUrl:
                    type: string
                    maxLength: 2048
                    format: uri
                  externalUserId:
                    type: string
                    pattern: ^[a-zA-Z0-9_.@-]{1,128}$
                  copy:
                    oneOf:
                    - type: object
                      properties:
                        mode:
                          type: string
                          const: none
                      required:
                      - mode
                      additionalProperties: false
                    - type: object
                      properties:
                        mode:
                          type: string
                          const: exact
                        headline:
                          type: string
                          minLength: 1
                          maxLength: 200
                        subcopy:
                          type: string
                          maxLength: 500
                        cta:
                          type: string
                          maxLength: 100
                      required:
                      - mode
                      - headline
                      additionalProperties: false
                  mode:
                    type: string
                    const: prompt
                required:
                - prompt
                - images
                - count
                - locale
                - mode
                additionalProperties: false
              - type: object
                properties:
                  prompt:
                    default: ''
                    type: string
                    maxLength: 6000
                  images:
                    default: []
                    maxItems: 5
                    type: array
                    items:
                      type: object
                      properties:
                        url:
                          type: string
                          maxLength: 2048
                          format: uri
                        base64:
                          type: string
                          minLength: 4
                          maxLength: 7000000
                      additionalProperties: false
                  count:
                    default: 1
                    type: integer
                    minimum: 1
                    maximum: 5
                  locale:
                    default: ko
                    type: string
                    pattern: ^[a-z]{2}(?:-[A-Z]{2})?$
                  placement:
                    type: string
                    maxLength: 200
                  sourcePageUrl:
                    type: string
                    maxLength: 2048
                    format: uri
                  externalUserId:
                    type: string
                    pattern: ^[a-zA-Z0-9_.@-]{1,128}$
                  copy:
                    oneOf:
                    - type: object
                      properties:
                        mode:
                          type: string
                          const: none
                      required:
                      - mode
                      additionalProperties: false
                    - type: object
                      properties:
                        mode:
                          type: string
                          const: exact
                        headline:
                          type: string
                          minLength: 1
                          maxLength: 200
                        subcopy:
                          type: string
                          maxLength: 500
                        cta:
                          type: string
                          maxLength: 100
                      required:
                      - mode
                      - headline
                      additionalProperties: false
                  mode:
                    type: string
                    const: card
                  cardId:
                    type: string
                    enum:
                    - cutout
                    - color_block
                    - studio
                    - model
                    - lifestyle
                    - concept
                    - minimal
                    - offer
                    - explain
                required:
                - prompt
                - images
                - count
                - locale
                - mode
                - cardId
                additionalProperties: false
              - type: object
                properties:
                  prompt:
                    default: ''
                    type: string
                    maxLength: 6000
                  images:
                    default: []
                    maxItems: 5
                    type: array
                    items:
                      type: object
                      properties:
                        url:
                          type: string
                          maxLength: 2048
                          format: uri
                        base64:
                          type: string
                          minLength: 4
                          maxLength: 7000000
                      additionalProperties: false
                  count:
                    default: 1
                    type: integer
                    minimum: 1
                    maximum: 5
                  locale:
                    default: ko
                    type: string
                    pattern: ^[a-z]{2}(?:-[A-Z]{2})?$
                  placement:
                    type: string
                    maxLength: 200
                  sourcePageUrl:
                    type: string
                    maxLength: 2048
                    format: uri
                  externalUserId:
                    type: string
                    pattern: ^[a-zA-Z0-9_.@-]{1,128}$
                  copy:
                    oneOf:
                    - type: object
                      properties:
                        mode:
                          type: string
                          const: none
                      required:
                      - mode
                      additionalProperties: false
                    - type: object
                      properties:
                        mode:
                          type: string
                          const: exact
                        headline:
                          type: string
                          minLength: 1
                          maxLength: 200
                        subcopy:
                          type: string
                          maxLength: 500
                        cta:
                          type: string
                          maxLength: 100
                      required:
                      - mode
                      - headline
                      additionalProperties: false
                  mode:
                    type: string
                    const: reference
                  referenceImages:
                    minItems: 1
                    maxItems: 5
                    type: array
                    items:
                      type: object
                      properties:
                        url:
                          type: string
                          maxLength: 2048
                          format: uri
                        base64:
                          type: string
                          minLength: 4
                          maxLength: 7000000
                        instructions:
                          type: string
                          maxLength: 6000
                      additionalProperties: false
                  referenceFill:
                    default: pair
                    type: string
                    enum:
                    - pair
                    - roundrobin
                required:
                - prompt
                - images
                - count
                - locale
                - mode
                - referenceImages
                - referenceFill
                additionalProperties: false
            examples:
              prompt:
                value:
                  mode: prompt
                  prompt: 흰 배경에 녹색 화장품 용기를 배치해 주세요
                  count: 1
                  copy:
                    mode: none
              card:
                value:
                  mode: card
                  cardId: studio
                  prompt: 여름 신제품 광고
                  images:
                  - url: https://example.com/product.png
                  count: 1
              reference:
                value:
                  mode: reference
                  prompt: 우리 제품 광고
                  images:
                  - url: https://example.com/product.png
                  referenceImages:
                  - url: https://example.com/reference.png
                    instructions: 색감과 여백만 참고하고 제품과 문구는 복제하지 마세요
                  referenceFill: pair
                  count: 1
      responses:
        '202':
          description: Existing or newly queued task
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      taskId:
                        type: string
                      status:
                        type: string
                        enum:
                        - pending
                        - processing
                        - completed
                        - failed
                      kind:
                        type: string
                        enum:
                        - generate
                        - resize
                      count:
                        type: integer
                        minimum: 1
                        maximum: 5
                      successCount:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      failedCount:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      errorCode:
                        type: string
                      pointsReserved:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      pointsCharged:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      pointsRefunded:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      images:
                        type: array
                        items:
                          type: object
                          properties:
                            index:
                              type: integer
                              minimum: 0
                              maximum: 9007199254740991
                            url:
                              type: string
                              format: uri
                            width:
                              type: integer
                              minimum: 0
                              maximum: 9007199254740991
                            height:
                              type: integer
                              minimum: 0
                              maximum: 9007199254740991
                          required:
                          - index
                          - url
                          - width
                          - height
                          additionalProperties: false
                    required:
                    - taskId
                    - status
                    - kind
                    - count
                    - successCount
                    - failedCount
                    - pointsReserved
                    - pointsCharged
                    - pointsRefunded
                    - images
                    additionalProperties: false
                required:
                - success
                - data
                additionalProperties: false
              example:
                success: true
                data:
                  taskId: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
                  status: pending
                  kind: generate
                  count: 1
                  successCount: 0
                  failedCount: 0
                  pointsReserved: 100
                  pointsCharged: 100
                  pointsRefunded: 0
                  images: []
        '400':
          description: Request rejected; inspect errorCode.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    const: false
                  errorCode:
                    type: string
                  requestId:
                    type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
        '401':
          description: Request rejected; inspect errorCode.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    const: false
                  errorCode:
                    type: string
                  requestId:
                    type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
        '402':
          description: Insufficient team points. No job or debit created.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    const: false
                  errorCode:
                    type: string
                  requestId:
                    type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
        '403':
          description: Request rejected; inspect errorCode.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    const: false
                  errorCode:
                    type: string
                  requestId:
                    type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
        '409':
          description: Request rejected; inspect errorCode.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    const: false
                  errorCode:
                    type: string
                  requestId:
                    type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
        '413':
          description: Request rejected; inspect errorCode.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    const: false
                  errorCode:
                    type: string
                  requestId:
                    type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
        '429':
          description: Request rejected; inspect errorCode.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    const: false
                  errorCode:
                    type: string
                  requestId:
                    type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
        '500':
          description: Request rejected; inspect errorCode.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    const: false
                  errorCode:
                    type: string
                  requestId:
                    type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
        '503':
          description: Request rejected; inspect errorCode.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    const: false
                  errorCode:
                    type: string
                  requestId:
                    type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
      operationId: postApiExternalV1ImagesGenerate
      x-operation-id-source: derived
  /api/external/v1/images/styles:
    get:
      tags:
      - Generate
      summary: List the nine style card IDs
      security: []
      responses:
        '200':
          description: Card IDs and names
      operationId: getApiExternalV1ImagesStyles
      x-operation-id-source: derived
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: imf_<token>:<secret>
      description: API keys are issued from the Imagefactory account dashboard (My Page → API Keys). Team owners and admins can issue integration keys with usage:read permission.