Technical Integration Guide

BytePlus ModelArk
API Guide

이미지 생성 · 영상 생성 · 인증 구조 · Endpoint 설정
Seedream / SeedEdit / Seedance 모델 전체 연동 가이드

Base URLhttps://ark.ap-southeast.bytepluses.com/api/v3
인증 방식Bearer API Key / AK·SK 서명
포맷application/json
Index

목차

01
ModelArk 개요 & 구조
Inference vs Management API, 동기/비동기 흐름
02
인증 방식
Bearer API Key · AK/SK HMAC-SHA256
03
Endpoint 구성
콘솔 설정 순서, Endpoint ID, 모델 매핑
04
이미지 생성 API
Seedream / SeedEdit — 요청·응답 예시
05
영상 생성 API — T2V
Seedance 텍스트→영상, 비동기 처리 흐름
06
영상 생성 API — I2V
Seedance 이미지→영상, 입력 이미지 규격
07
상태 조회 & 폴링
task 상태 코드, 권장 폴링 전략
08
에러 코드 & 공식 문서
HTTP 오류 처리, BytePlus 공식 Docs 링크
01

ModelArk 개요 & API 구조

ark.ap-southeast.bytepluses.com

API 종류

ModelArk는 두 종류의 API를 제공합니다

⚡ Inference API

이미지·영상 생성 실행 API.
인증: Authorization: Bearer <API Key>

Base URL
https://ark.ap-southeast.bytepluses.com/api/v3

📊 Management API

사용량 조회(GetUsage), Endpoint 관리 등 운영 API.
인증: AK / SK HMAC-SHA256 서명

Host
ark.ap-southeast-1.byteplusapi.com

호출 흐름

이미지 생성(동기) vs 영상 생성(비동기)

🖼️ 이미지 생성 — 동기 (Synchronous)

Request
POST
/images/generations
Process
BytePlus
즉시 처리
Response
Image URL
단일 응답

🎬 영상 생성 — 비동기 (Asynchronous)

Submit
POST tasks
task_id 반환
Poll
GET tasks/{id}
running...
Result
succeeded
Video URL
02

인증 방식

Bearer API Key · AK/SK HMAC-SHA256

Bearer Inference API 인증

이미지·영상 생성 요청 시 모든 호출에 포함

HTTP Header
# 모든 Inference 요청 공통 헤더
Authorization: Bearer ark-xxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/json
API Key 발급: BytePlus 콘솔 → ModelArk → API Key 관리 → 신규 발급
형식: ark-{32자리 hex}

AK/SK Management API 인증

GetUsage, ListEndpoints 등 운영 API 호출 시 사용

Authorization Header 구조
Authorization: HMAC-SHA256
  Credential={AK}/{date}/{region}/ark/request,
  SignedHeaders=host;x-content-sha256;x-date,
  Signature={HMAC-SHA256 서명값}

X-Date: 20260617T090000Z
X-Content-Sha256: {SHA256(request body)}
AK/SK 발급: BytePlus 콘솔 → 계정 → Access Key 관리
Region: ap-southeast-1

ℹ️ 인증 방식 정리

용도인증 방식키 종류적용 API
이미지·영상 생성Bearer Tokenark-xxx...POST /images/generations, POST/GET /contents/generations/tasks
사용량·Endpoint 조회AK/SK 서명AKLT... / SK...GetUsage, GetEndpoint, ListEndpoints
03

Endpoint 구성

BytePlus 콘솔 → ModelArk → Endpoint

Endpoint란?

모델과 Concurrency를 묶은 배포 단위

🔧 콘솔 설정 순서

1BytePlus 콘솔 → ModelArk 접속
2Endpoint 관리 → 모델 선택
3Concurrency / RPM 설정
4Endpoint ID 발급 → ep-xxx...
5API Key 발급 → ark-xxx...

📌 Endpoint ID 사용 위치

API 호출 시 "model" 필드에 Endpoint ID를 입력합니다.

// model 필드 = Endpoint ID
{
  "model": "ep-20260602093311-xxxxx",
  "prompt": "..."
}

모델별 Endpoint 분리 권장

용도예시 Endpoint ID모델
이미지 생성ep-img-xxxSeedream 5.0 Lite
이미지 편집ep-edit-xxxSeedEdit 3.0
영상 생성 Fastep-vid-f-xxxSeedance 2.0 Fast
영상 생성 Stdep-vid-s-xxxSeedance 2.0

⚠️ 429 처리 전략

Concurrency 한도 초과 시 BytePlus는 429 Too Many Requests를 반환합니다.

호출 유형권장 처리
이미지 생성Exponential Backoff 재시도 (1s → 2s → 4s)
영상 생성60초 후 재제출 (Task 재큐잉)
04

이미지 생성 API

POST /images/generations · Seedream · SeedEdit
🎨
seedream-5-0-lite-260128
Seedream 5.0 Lite — 빠른 고품질 생성
Text→Image
seedream-4-5-251128 / seedream-4-0-250828
Seedream 4.5 / 4.0 — 범용 고품질
Text→Image
🖌️
seededit-3-0-i2i-250628
SeedEdit 3.0 — 이미지 편집 (Image-to-Image)
Image→Image
📐
지원 출력 사이즈
정사각형 / 세로 / 가로 모두 지원
512×5121024×1024 1280×720720×1280
POST https://ark.ap-southeast.bytepluses.com/api/v3/images/generations
{
  "model": "ep-20260602093311-xxxxx", ← Endpoint ID
  "prompt": "A luxury perfume bottle on marble,
            studio lighting, editorial photography",
  "negative_prompt": "blurry, watermark, low quality",
  "size": "1024x1024",
  "n": 1,               ← 최대 4장
  "response_format": "url",
  "seed": 42,          ← 재현성 고정 (선택)
  "watermark": false,
  "image": "https://..." ← i2i 시 참조 이미지
}
Response 200
{
  "id": "img-20260617-abc123",
  "created": 1750147200,
  "data": [
    {
      "url": "https://cdn.byteplus.com/...result.png",
      "revised_prompt": "A luxury perfume bottle..."
    }
  ],
  "usage": {
    "prompt_tokens": 0,
    "completion_tokens": 0
  }
}
05

영상 생성 API — T2V (Text to Video)

POST /contents/generations/tasks · Seedance 2.0
🎬
dreamina-seedance-2-0-260128
Seedance 2.0 — 고품질 영상
720p / 1080p5 / 10초
dreamina-seedance-2-0-fast-260128
Seedance 2.0 Fast — 빠른 생성
720p5 / 10초
🎵
seedance-1-5-pro-251215
Seedance 1.5 Pro — 오디오 생성 지원
720p / 1080p오디오
POST /api/v3/contents/generations/tasks
{
  "model": "ep-20260602093311-yyyyy",
  "content": [
    {
      "type": "text",
      "text": "A cinematic drone shot over
               the Han River at sunset, 4K"
    }
  ],
  "parameters": {
    "duration": 5,         ← 5 또는 10 (초)
    "resolution": "1080p", ← "720p"|"1080p"|"2k"
    "ratio": "16:9",       ← "16:9"|"9:16"|"1:1"
    "generate_audio": false,
    "watermark": false,
    "seed": 0
  }
}
Response 200 — task 제출
{
  "id": "t2v-20260617T093100-xxxxx",
  "status": "queued",
  "created_at": 1750147200,
  "model": "ep-20260602093311-yyyyy"
}

📐 지원 파라미터

파라미터설명
duration5, 10영상 길이 (초)
resolution"720p" | "1080p" | "2k"출력 해상도
ratio"16:9" | "9:16" | "1:1"종횡비
generate_audiotrue / false오디오 자동 생성 (1.5 Pro)
watermarktrue / false워터마크 삽입 여부
06

영상 생성 API — I2V (Image to Video)

POST /contents/generations/tasks · 이미지 입력 포함

I2V 요청 구조

content 배열에 image_url 타입을 먼저 추가

POST /api/v3/contents/generations/tasks
{
  "model": "ep-20260602093311-yyyyy",
  "content": [
    {
      "type": "image_url",
      "image_url": {
        "url": "https://cdn.example.com/product.jpg"
      }
    },
    {
      "type": "text",
      "text": "Animate this product smoothly,
               soft lighting, 4K cinematic"
    }
  ],
  "parameters": {
    "duration": 5,
    "resolution": "1080p",
    "ratio": "16:9",
    "generate_audio": false,
    "watermark": false
  }
}

입력 이미지 규격

BytePlus I2V 권장 사항

항목권장값
포맷JPEG, PNG, WebP
최소 해상도300 × 300 px
권장 해상도1280 × 720 이상
종횡비출력 ratio와 맞추면 크롭 없음
파일 크기10 MB 이하
입력 방식공개 URL 또는 Base64 data URL

💡 Base64 이미지 입력 예시

"image_url": {
  "url": "data:image/jpeg;base64,/9j/4AAQ..."
}
주의: 배경이 단순한 제품 사진 / 인물 정면 사진에서 결과 품질이 가장 높습니다.
07

영상 작업 상태 조회 & 폴링 전략

GET /contents/generations/tasks/{task_id}
GET /api/v3/contents/generations/tasks/{task_id}
# queued — 대기 중
{ "id": "t2v-xxx", "status": "queued" }

# running — 처리 중
{ "id": "t2v-xxx", "status": "running" }

# succeeded — 완료
{
  "id": "t2v-20260617T093100-xxxxx",
  "status": "succeeded",
  "content": [
    {
      "type": "video_url",
      "video_url": {
        "url": "https://cdn.byteplus.com/...result.mp4"
      }
    }
  ]
}

# failed — 실패
{
  "id": "t2v-xxx",
  "status": "failed",
  "error": { "message": "Content policy violation" }
}

상태 코드

status의미다음 액션
queuedBytePlus 큐 대기 중계속 폴링
running영상 생성 중계속 폴링
succeeded완료 — URL 유효content[].video_url.url 저장
failed실패error.message 확인 후 재시도

⏱️ 권장 폴링 전략

해상도 / 길이예상 처리 시간폴링 간격
720p / 5초20 ~ 60초5초 간격
1080p / 5초40 ~ 90초8초 간격
1080p / 10초60 ~ 180초10초 간격
결과 URL 만료 주의: BytePlus CDN URL은 일정 시간 후 만료됩니다. 결과 수신 즉시 서버에 다운로드 후 보관을 권장합니다.
08

에러 코드 & 공식 문서

docs.byteplus.com/en/docs/ModelArk

HTTP 에러 코드

Status의미대응
400요청 파라미터 오류error.message 확인
401API Key 인증 실패Bearer 헤더 / Key 확인
403권한 없음Endpoint 접근 권한 확인
404Endpoint / Task 없음ID 확인
429Concurrency 한도 초과Backoff 후 재시도
500BytePlus 내부 오류잠시 후 재시도
Error Response 구조
{
  "error": {
    "code": "InvalidParameter",
    "message": "model field is required",
    "param": "model",
    "type": "invalid_request_error"
  }
}

공식 문서 링크

문서URL
🔑 Base URL & Authenticationdocs.byteplus.com/.../1298459
🗝️ API Key 발급 & 설정docs.byteplus.com/.../1541594
🖼️ 이미지 생성 APIdocs.byteplus.com/.../1541523
🎬 영상 생성 Task 생성docs.byteplus.com/.../1520757
🔍 영상 Task 상태 조회docs.byteplus.com/.../1521309
📖 Seedance 2.0 튜토리얼docs.byteplus.com/.../2291680
전체 목록 페이지: docs.byteplus.com/en/docs/ModelArk
BytePlus ModelArk

감사합니다

추가 문의는 기술 담당자에게 연락 주세요

Base URL: https://ark.ap-southeast.bytepluses.com/api/v3  |  Docs: docs.byteplus.com/en/docs/ModelArk