Imagefactory Generate API
The Generate API from Imagefactory — 2 operation(s) for generate.
The Generate API from Imagefactory — 2 operation(s) for generate.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/imagefactory-co-kr:imagefactory-co-kr-generate-api"
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.
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: 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.