BURST.

API 문서

엔드포인트는 셋뿐입니다. 인증은 Authorization: Bearer <키>.

작은 묶음 — 그 자리에서 결과 받기 (≤120장)

# 보낸 그 요청에서 결과가 바로 돌아옵니다
curl -X POST https://burst.teamplut.com/v1/batch \
  -H "Authorization: Bearer bk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "sync": true,
    "ops": { "width": 800, "format": "webp", "quality": 82 },
    "images": [
      { "id": "a1", "url": "https://example.com/1.jpg" },
      { "id": "a2", "b64": "data:image/png;base64,iVBOR..." }
    ]
  }'

큰 묶음 — 접수하고 흘려받기 (최대 1,000장)

# ① 접수 — 즉시 job_id 를 돌려줍니다
curl -X POST https://burst.teamplut.com/v1/batch -H "Authorization: Bearer bk_..." \
  -H "Content-Type: application/json" \
  -d '{"ops":{"width":1200,"format":"avif"},"images":[ ... 1000개 ... ]}'

# → 202 {"job_id":"job_ab12...","stream_url":"..."}

# ② 끝나는 장부터 한 줄씩 (NDJSON)
curl -N https://burst.teamplut.com/v1/batch/job_ab12.../stream -H "Authorization: Bearer bk_..."

# ③ 또는 다 끝난 뒤 한 번에
curl https://burst.teamplut.com/v1/batch/job_ab12... -H "Authorization: Bearer bk_..."

작업 옵션 ops

이름설명
width / height1–8000둘 중 하나만 줘도 됩니다. 원본보다 크게 늘리지 않습니다.
fitinside · cover · contain · fill · outside기본 inside
formatwebp · avif · jpeg · png기본 webp
quality1–100기본 82
striptrue / false기본 true — EXIF 를 텁니다. 촬영 위치가 들어 있기 때문입니다.
autorotatetrue / false기본 true — 촬영 방향대로 세웁니다.

응답 한 장

{
  "ok": true,
  "id": "a1",
  "url": "https://burst.teamplut.com/f/9f2c...-3a1b.webp",
  "bytes": 48213, "width": 800, "height": 533,
  "cached": false,        // 이미 만들어 둔 것이면 true
  "ms": 84.2,            // 이 한 장에 걸린 전체
  "fetch_ms": 61.8       // 그중 내려받기
}

fetch_msms 의 대부분이라면 병목은 저희가 아니라 원본 서버입니다. 그럴 땐 b64 로 직접 보내시는 편이 빠릅니다.

지키는 것

원본 보관하지 않습니다. 변환이 끝나면 메모리에서 버립니다.
내부 주소사설·링크로컬 IP 를 가리키는 URL 은 거절합니다. 이름이 아니라 풀어낸 실제 IP로 판정합니다.
형식 판별확장자를 믿지 않고 앞머리 바이트로 봅니다.
크기 제한원본 25MB · 6천만 화소. 압축폭탄을 막기 위한 값입니다.
결과 주소이름에 내용 해시가 들어 있어 내용이 바뀌면 주소도 바뀝니다. 캐시를 오래 걸어도 안전합니다.

오류

401키가 없거나 올바르지 않음
402이번 달 한도 초과
413한 번에 보낼 수 있는 장수 초과
429초당 요청 초과 — Retry-After 를 보고 잠시 뒤 재시도

한 장이 실패해도 나머지는 그대로 처리됩니다. 실패한 장은 {"ok":false,"error":"..."} 로 같은 자리에 돌아옵니다.