Wan 3.0영상당$0.05부터

텍스트, 이미지, 효과를 한 스튜디오에서

Creovox AI
무료로 시작

홈/Creovox API

개발자 API · v1

Creovox API

Creovox 스튜디오를 구동하는 모델을 직접 작성한 코드에서 호출하세요. 버전 1은 텍스트-이미지 생성과 이미지 편집에 GPT Image 2.6을 지원합니다. 모든 요청은 비동기 작업입니다. 먼저 만들고, 이미지가 준비될 때까지 폴링합니다.

빠른 시작

  1. 01

    API 키 만들기

    로그인한 뒤 대시보드에서 API Keys를 엽니다. 앱마다 별도 키를 만들어 두면 하나를 비활성화해도 나머지는 그대로 동작합니다.

  2. 02

    크레딧 구매

    API는 구매한 크레딧만 사용합니다. 무료 크레딧과 보너스 크레딧은 웹사이트에서는 계속 쓸 수 있지만 API로는 사용할 수 없습니다.

  3. 03

    작업 생성 후 폴링

    프롬프트를 POST로 /api/v1/tasks에 보내고 task_id를 보관합니다. 그런 다음 상태가 succeeded 또는 failed가 될 때까지 몇 초마다 GET /api/v1/tasks/를 호출합니다.

인증

모든 요청의 Authorization 헤더에 키를 담아 보냅니다. 키는 Creovox 계정에 연결되며, 다른 사이트에서 만든 키는 거부됩니다. 키를 브라우저 코드나 공개 저장소에 넣지 마세요.

Authorization: Bearer YOUR_API_KEY

엔드포인트

메서드경로설명
POST/api/v1/tasks생성 작업 만들기
GET/api/v1/tasks/{task_id}작업 상태와 출력 가져오기
GET/api/v1/tasks이 키로 만든 작업 목록, 최신순
GET/api/v1/models모델의 입력 스키마와 가격 목록 (키 불필요)
GET/api/v1/account/credits키 소유자의 크레딧 잔액 확인
GET/api/v1/openapi.jsonOpenAPI 3.1 문서 (키 불필요)

작업 만들기

모델 id는 model에, 매개변수는 input에 넣습니다. 알 수 없는 매개변수 이름은 거부되므로 오타가 바로 오류로 드러납니다. 모든 생성 요청에 Idempotency-Key 헤더를 보내면 재시도해도 두 번째 작업이 만들어지거나 과금되지 않습니다.

curl -X POST https://creovox.ai/api/v1/tasks \
  -H "Authorization: Bearer $CREOVOX_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order-1234-fox" \
  -d '{
    "model": "gpt-image-2.6",
    "input": {
      "prompt": "A red fox in fresh snow, cinematic light",
      "variant": "flare",
      "aspect_ratio": "16:9",
      "resolution": "2k"
    }
  }'
{
  "code": 200,
  "message": "success",
  "data": {
    "task_id": "n42…gptimg",
    "model": "gpt-image-2.6",
    "status": "processing",
    "output": null,
    "credits_charged": 20,
    "refund_pending": false,
    "error": null,
    "created_at": "2026-11-07T08:00:00.000Z"
  }
}

GPT Image 2.6 매개변수

매개변수유형기본값설명
promptstring—무엇을 그릴지, 또는 참조 이미지를 어떻게 바꿀지. 최대 20,000자. 필수.
variantflare | sunburst | economyflareflare는 속도와 디테일의 기본 균형, sunburst는 디테일 우선, economy는 가장 저렴하고 1K로만 렌더링합니다.
aspect_ratiostringauto1:1, 16:9, 9:16 같은 화면 비율. auto는 모델이 고릅니다. economy는 지원 범위가 더 좁습니다.
resolution1k | 2k | 4k1k1k, 2k, 4k. economy는 항상 1k로 렌더링합니다.
output_formatpng | jpeg | webppngpng, jpeg, webp. economy는 항상 png를 반환합니다.
imagesstring[][]공개 HTTP(S) 이미지 URL 최대 16개. 지정하면 작업은 새로 그리지 않고 이 이미지들을 편집합니다.

결과 폴링

3~5초마다 폴링하고 상태가 succeeded 또는 failed가 되면 멈춥니다. 이미지는 보통 몇 초에서 몇 분 걸립니다. 10분이 지나도 processing 상태라면 폴링을 멈추고 task_id를 함께 적어 지원팀에 문의하세요. 작업이 성공하면 output.images에 이미지 URL이 들어 있습니다. 오래 보관하려면 직접 다운로드하세요.

curl https://creovox.ai/api/v1/tasks/TASK_ID \
  -H "Authorization: Bearer $CREOVOX_API_KEY"
{
  "code": 200,
  "message": "success",
  "data": {
    "task_id": "n42…gptimg",
    "model": "gpt-image-2.6",
    "status": "succeeded",
    "output": { "images": [{ "url": "https://…/image.png" }] },
    "credits_charged": 20,
    "refund_pending": false,
    "error": null,
    "created_at": "2026-11-07T08:00:00.000Z"
  }
}

작업 상태

processing
작업을 처리 중이거나 결제 또는 제공업체의 작업 접수 확인을 기다리고 있습니다.
succeeded
완료. output.images에 결과가 있고 credits_charged는 최종값입니다.
failed
생성에 실패했으며 error.message가 이유를 설명합니다. 청구된 크레딧은 자동으로 환불됩니다. 환불이 처리되는 동안 refund_pending은 true이고, 처리가 끝나면 credits_charged가 0으로 표시됩니다. 폴링은 멈춰도 됩니다.
// Node.js 18+
const API = 'https://creovox.ai/api/v1'
const headers = {
  Authorization: `Bearer ${process.env.CREOVOX_API_KEY}`,
  'Content-Type': 'application/json',
}

async function call(path, init = {}) {
  const res = await fetch(API + path, { ...init, headers: { ...headers, ...init.headers }, signal: AbortSignal.timeout(30_000) })
  const body = await res.json().catch(() => ({ code: res.status, message: res.statusText }))
  if (body.code !== 200) {
    const error = new Error(body.message)
    Object.assign(error, { status: res.status, type: body.error_type, data: body.data, retryAfter: res.headers.get('retry-after') })
    throw error
  }
  return body.data
}

// Reuse the same key when you retry this request: you get the same task and pay once.
const idempotencyKey = crypto.randomUUID()
let task
try {
  task = await call('/tasks', {
    method: 'POST',
    headers: { 'Idempotency-Key': idempotencyKey },
    body: JSON.stringify({ model: 'gpt-image-2.6', input: { prompt: 'A red fox in fresh snow' } }),
  })
} catch (error) {
  if (!error.data?.task_id || !['billing_unconfirmed', 'submission_unconfirmed'].includes(error.type)) throw error
  task = { task_id: error.data.task_id, status: 'processing' }
}

const deadline = Date.now() + 10 * 60_000
while (task.status === 'processing') {
  if (Date.now() > deadline) throw new Error(`Task ${task.task_id} is still processing; contact support.`)
  await new Promise(resolve => setTimeout(resolve, 4000))
  try {
    task = await call(`/tasks/${task.task_id}`)
  } catch (error) {
    // 429 and 5xx are temporary: wait and poll again. Anything else is final.
    if (error.status !== 429 && error.status < 500) throw error
    await new Promise(resolve => setTimeout(resolve, (Number(error.retryAfter) || 5) * 1000))
  }
}
console.log(task.status, task.output?.images, task.error, task.refund_pending)

가격

가격은 크레딧 단위이며 웹사이트와 정확히 같습니다. 1 크레딧 = US$0.01. 참조 이미지마다 소액이 추가됩니다. GET /api/v1/models는 항상 최신 가격표를 반환합니다.

변형해상도이미지당 크레딧참조 이미지당
flare1k10+2
flare2k20+2
flare4k36+2
sunburst1k10+2
sunburst2k20+2
sunburst4k36+2
economy1k5—

오류

오류는 HTTP 상태 코드와 동일한 JSON 구조(code, message, error_type, data)를 사용합니다.

HTTPerror_type의미
400invalid_request매개변수가 없거나 올바르지 않습니다. message에 어떤 매개변수인지 나옵니다.
401invalid_api_key키가 없거나, 틀렸거나, 비활성화되었거나, 삭제되었습니다.
402insufficient_credits이 작업에 쓸 구매 크레딧이 부족합니다.
403key_not_allowed, account_suspended키가 다른 사이트 소속이거나 계정이 정지되었습니다.
404not_found작업이 없거나 다른 키로 만들어졌습니다.
409idempotency_conflict이 Idempotency-Key는 이미 다른 요청에 사용되었습니다.
429rate_limited이 키의 요청, 실행 중 작업 또는 상태 확인이 너무 많습니다. Retry-After 초만큼 기다리세요.
5xxprovider_error, billing_unconfirmed, upstream_unavailableprovider_error가 발생하면 확인된 차감액은 환불됩니다. billing_unconfirmed 또는 submission_unconfirmed가 발생하면 data.task_id를 보관하고 결과 확인이 진행되는 동안 해당 작업을 계속 조회하세요. 일시적인 오류는 같은 Idempotency-Key로 재시도하세요.

제한과 권장 사항

  • 키마다 분당 요청 한도와 실행 중 작업 한도가 있습니다. 유료 플랜은 한도가 더 높습니다.
  • 모든 생성 요청에 Idempotency-Key 헤더를 보내세요. 요청이 시간 초과되면 같은 Idempotency-Key로 다시 보내세요. 같은 작업이 돌아오고 두 번 청구되지 않습니다.
  • 참조 이미지는 공용 인터넷에서 접근할 수 있어야 합니다. 서명된 URL도 몇 분간 유효하면 됩니다.
  • 작업은 비공개입니다. 키는 자기가 만든 작업만 읽을 수 있습니다.

자주 묻는 질문

무료 크레딧을 API에서 쓸 수 있나요?

아니요. API는 구매한 크레딧만 사용합니다. 무료 크레딧과 보너스 크레딧은 웹사이트에서 계속 쓸 수 있습니다.

작업이 실패하면 요금이 청구되나요?

아니요. 실패한 작업은 자동으로 환불됩니다. 환불이 처리되는 동안 refund_pending은 true이고, 처리가 끝나면 credits_charged는 0입니다.

어떤 모델을 쓸 수 있나요?

버전 1은 GPT Image 2.6을 제공합니다. 더 많은 이미지·영상 모델이 추가될 예정이며, GET /api/v1/models에서 지금 쓸 수 있는 모델을 확인할 수 있습니다.

브라우저에서 API를 호출할 수 있나요?

API는 교차 출처 요청을 허용하지만, 페이지를 볼 수 있는 사람은 누구나 키를 읽을 수 있습니다. 대신 서버에서 호출하세요.

이것은 OpenAI 공식 API인가요?

아니요. Creovox AI는 자체 API와 크레딧으로 GPT Image 2.6에 접근할 수 있게 해 주는 독립 서비스입니다.