API 레퍼런스
워크플로우 API
별도 안내가 없는 한 모든 엔드포인트는 로그인 세션(쿠키)이 필요합니다. 응답은 JSON 형식입니다: { ok: true, data } 또는 { ok: false, error }. 일반적인 오류 코드: 400 유효성 검증 실패, 401 미인증, 403 권한 없음, 404 찾을 수 없음, 429 요청 한도 초과(Rate limit), 502/503 업스트림 오류. 공개 /api/v1 엔드포인트는 Authorization: Bearer pdflean_…으로 인증하며 JSON 콘텐츠 타입을 전송해야 합니다.
워크플로우
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | /api/workflows | 워크플로우 목록 조회 |
| POST | /api/workflows | 워크플로우 생성 (초안) |
| GET | /api/workflows/:id | 워크플로우 상세 조회 |
| PUT | /api/workflows/:id | 워크플로우 업데이트 (초안, 버전 +1) |
| DELETE | /api/workflows/:id | 워크플로우 삭제 |
| POST | /api/workflows/:id/publish | 버전 게시 |
| GET | /api/workflows/:id/versions | 버전 목록 조회 |
| POST | /api/workflows/:id/versions/:version/restore | 이전 버전으로 복원 |
트리거 및 훅
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | /api/workflows/triggers | 트리거 목록 조회 |
| POST | /api/workflows/triggers | 트리거 생성 (웹훅/일정/이메일/드라이브) |
| POST | /api/workflows/triggers/:id/run | 트리거 즉시 실행 |
| DELETE | /api/workflows/triggers/:id | 트리거 삭제 |
| POST | /api/workflows/hook/:token | 인바운드 웹훅 (토큰 인증, 세션 불필요; JSON 본문) |
실행 및 검토
| 메서드 | 경로 | 설명 |
|---|---|---|
| POST | /api/workflows/runs | 실행 생성 (대기열 등록) |
| GET | /api/workflows/runs | 실행 목록 조회 |
| GET | /api/workflows/runs/:id | 실행 상세 및 단계별 상태 |
| POST | /api/workflows/runs/:id/retry | 실패/대기 중인 실행 재시도 |
| GET | /api/workflows/reviews | 수동 검토 대기 목록 |
| POST | /api/workflows/reviews/:id | 검토 승인/반려 |
클라우드 브릿지
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | /api/workflows/cloud/status | 독립형 VPS 브릿지 상태 |
| POST | /api/workflows/cloud/convert | Office → PDF 변환 (독립형 VPS, LibreOffice) |
| POST | /api/workflows/cloud/ocr | OCR 텍스트 추출 (독립형 VPS, Tesseract) |
| POST | /api/workflows/cloud/extract | PDF에서 인보이스/일반 필드 추출 (pdfjs + 규칙) |
보관 및 보존
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | /api/workflows/archive | 아카이브 문서 목록 및 해시 체인 무결성 |
| POST | /api/workflows/archive | 문서 아카이브 등록 (base64, SHA-256 해시 체인) |
| GET | /api/workflows/archive/:id/verify | 아카이브 해시 체인 검증 |
| GET | /api/workflows/archive/export | 아카이브 감사 CSV 내보내기 (삭제 표식 포함) |
| POST | /api/workflows/archive/:id/hold | 법적 보존(Legal Hold) 설정/해제 |
| POST | /api/workflows/archive/:id/compliance | 비가역적 WORM 잠금 활성화 |
| DELETE | /api/workflows/archive/:id | 아카이브 삭제 (법적 보존 시 차단) |
공개 API v1
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | /api/v1/openapi.json | OpenAPI 3.1 명세 (공개, 인증 없음) |
| GET | /api/v1/me | 현재 API 키 소유자 (Bearer 키) |
| GET | /api/v1/usage | 사용량 대시보드: 잔액, 30일 기록, 최근 호출 |
| GET | /api/v1/workflows | 워크플로 목록 (scope workflow.read) |
| GET | /api/v1/workflows/:id | 워크플로 조회 (scope workflow.read) |
| POST | /api/v1/workflows/:id/run | 실행 대기열 추가 (scope workflow.run) |
| GET | /api/v1/runs | 실행 목록 (scope workflow.read) |
| POST | /api/v1/pdf/merge | PDF 병합 (scope pdf.merge; 2~10개의 base64 파일) |
| POST | /api/v1/pdf/split | 선택한 페이지 유지 (scope pdf.split; "1-3,5"와 같은 범위) |
| POST | /api/v1/pdf/compress | PDF 구조적 압축 (scope pdf.compress) |
| GET | /api/v1/jobs/:id | 작업 상태 (무료) |
| GET | /api/v1/jobs/:id/download | 작업 결과 다운로드 (무료) |
| POST | /api/v1/convert/office | Office/ODF 문서 변환 (scope pdf.convert) |
| POST | /api/v1/convert/linearize | 웹 빠른 보기용 PDF 선형화 (scope pdf.convert) |
| POST | /api/v1/convert/typst | Typst/Markdown 소스를 PDF로 컴파일 (scope pdf.convert) |
| POST | /api/v1/ocr | 스캔된 PDF를 검색 가능한 PDF로 OCR (scope pdf.ocr) |
| POST | /api/v1/ocr/text | 단일 이미지를 텍스트로 OCR (scope pdf.ocr) |
| POST | /api/v1/validate/pdfa | PDF/A 규정 준수 검사 (scope pdf.validate) |
| POST | /api/v1/validate/pdfua | PDF/UA 접근성 검사 (scope pdf.validate) |
| POST | /api/v1/validate/signature | 디지털 서명 검증 보고서 (scope pdf.validate) |
| POST | /api/v1/sign | PAdES 디지털 서명 (scope pdf.sign; 선택적 PEM 키 쌍) |
| POST | /api/v1/redact | 텍스트 일치 또는 영역의 완전 삭제 (true redaction) (scope pdf.redact) |
| POST | /api/v1/extract | 텍스트 및 규칙 기반 필드 추출 (scope pdf.extract) |
| POST | /api/v1/docling | Docling을 통한 구조화된 레이아웃 파싱 (scope pdf.extract) |
| POST | /api/v1/scan/pii | 개인정보 포함 텍스트 스캔 (scope pii.detect) |
Credit consumption
Member credits refresh each billing cycle (no rollover) and are spent before purchased credits. Credits are $0.001 each.
Top up API credits in your account (from $5, never expires)
| Method | Endpoint | Credits |
|---|---|---|
| GET | /jobs/:id | 0 per call |
| GET | /jobs/:id/download | 0 per call |
| GET | /me | 0 per call |
| GET | /runs | 0 per call |
| GET | /usage | 0 per call |
| GET | /workflows | 0 per call |
| GET | /workflows/:id | 0 per call |
| POST | /ai/chat | 3 per call |
| POST | /ai/extract | 5 per call |
| POST | /ai/pii-detect | 4 per call |
| POST | /ai/summarize | 3 per call |
| POST | /ai/translate | 3 per call |
| POST | /convert/linearize | 1 per call |
| POST | /convert/office | 2 per call |
| POST | /convert/typst | 1 per call |
| POST | /docling | 3 per call |
| POST | /extract | 2 per call |
| POST | /ocr | 3 per page |
| POST | /ocr/text | 1 per call |
| POST | /pdf/compress | 1 per call |
| POST | /pdf/merge | 1 per call |
| POST | /pdf/split | 1 per call |
| POST | /redact | 3 per call |
| POST | /scan/pii | 2 per call |
| POST | /sign | 5 per envelope |
| POST | /validate/pdfa | 2 per call |
| POST | /validate/pdfua | 2 per call |
| POST | /validate/signature | 2 per call |
| POST | /workflows/:id/run | 1 per call |
| ai.chat | 2 per call | |
| convert.html_to_pdf | 4 per page | |
| convert.office_to_pdf | 10 per page | |
| convert.pdf_to_office | 12 per page | |
| convert.pdfa | 8 per page | |
| esign.envelope | 750 per envelope | |
| pdf.ocr | 3 per page | |
| pdf.ocr.high | 8 per page |