API Documentation

All-of-PDF API

인증, 변환, 플랜/사용량 조회에 필요한 핵심 API를 정리했습니다. 아래 예제로 바로 테스트할 수 있습니다.

사용 정책

변환 기능은 회원 전용입니다. Free는 하루 2회까지 사용 가능하며, Pro부터 API 사용이 가능합니다.

Plan월 요금일일 제한API
Free₩02/dayNo
Pro₩5,90015/dayYes
Pro+₩12,90050/dayYes
CustomContactCustomCustom

Base URL

https://api.all-of-pdf.com/api/v1

테스트 환경에서는 도메인만 개발 환경 주소로 변경해서 사용하세요.

POST/api/v1/auth/register

회원가입 후 JWT 토큰을 발급합니다.

요청 예제

curl -X POST "https://api.all-of-pdf.com/api/v1/auth/register" \
  -H "Content-Type: application/json" \
  -d '{"email":"user@example.com","password":"password123","name":"Jane"}'

응답 예제

{
  "success": true,
  "data": {
    "user": { "id": "...", "email": "user@example.com", "role": "user" },
    "token": "<JWT_TOKEN>"
  }
}
POST/api/v1/auth/login

로그인 후 JWT 토큰을 발급합니다.

요청 예제

curl -X POST "https://api.all-of-pdf.com/api/v1/auth/login" \
  -H "Content-Type: application/json" \
  -d '{"email":"user@example.com","password":"password123"}'

응답 예제

{
  "success": true,
  "data": {
    "token": "<JWT_TOKEN>"
  }
}
GET/api/v1/auth/me

현재 로그인한 사용자 정보를 조회합니다.

요청 예제

curl -X GET "https://api.all-of-pdf.com/api/v1/auth/me" \
  -H "Authorization: Bearer <JWT_TOKEN>"

응답 예제

{
  "success": true,
  "data": {
    "id": "...",
    "email": "user@example.com",
    "role": "user"
  }
}
GET/api/v1/plans

요금제 및 일일 사용량 정책을 조회합니다.

요청 예제

curl -X GET "https://api.all-of-pdf.com/api/v1/plans"

응답 예제

{
  "success": true,
  "data": {
    "currency": "KRW",
    "plans": [
      {"id":"free","monthly_price_krw":0,"daily_limit":2,"api_access":false},
      {"id":"pro","monthly_price_krw":5900,"daily_limit":15,"api_access":true},
      {"id":"pro_plus","monthly_price_krw":12900,"daily_limit":50,"api_access":true},
      {"id":"custom","contact_required":true}
    ]
  }
}
GET/api/v1/plans/me

내 요금제와 오늘 남은 사용량을 조회합니다.

요청 예제

curl -X GET "https://api.all-of-pdf.com/api/v1/plans/me" \
  -H "Authorization: Bearer <JWT_TOKEN>"

응답 예제

{
  "success": true,
  "data": {
    "plan_id": "free",
    "daily_limit": 2,
    "used_today": 1,
    "remaining_today": 1,
    "api_access": false
  }
}
POST/api/v1/office/pdf-to-docx

PDF를 DOCX로 변환합니다. 기본 provider는 Adobe입니다.

요청 예제

curl -X POST "https://api.all-of-pdf.com/api/v1/office/pdf-to-docx" \
  -H "Authorization: Bearer <JWT_TOKEN>" \
  -F "file=@sample.pdf" \
  -F "provider=adobe" \
  -F "mode=smart"

응답 예제

{
  "success": true,
  "data": {
    "job_id": "...",
    "filename": "output.docx",
    "url": "/api/v1/jobs/<job_id>/download/output.docx"
  }
}
POST/api/v1/convert/pdf-to-image

PDF 페이지를 이미지(PNG/JPEG)로 변환합니다.

요청 예제

curl -X POST "https://api.all-of-pdf.com/api/v1/convert/pdf-to-image" \
  -H "Authorization: Bearer <JWT_TOKEN>" \
  -F "file=@sample.pdf" \
  -F "format=png"

응답 예제

{
  "success": true,
  "data": {
    "job_id": "...",
    "files": [
      {
        "filename": "page_1.png",
        "url": "/api/v1/jobs/<job_id>/download/page_1.png"
      }
    ]
  }
}
POST/api/v1/convert/split

PDF를 페이지 범위 기준으로 분할합니다.

요청 예제

curl -X POST "https://api.all-of-pdf.com/api/v1/convert/split" \
  -H "Authorization: Bearer <JWT_TOKEN>" \
  -F "file=@sample.pdf" \
  -F "pages=1-3,7,10-12"

응답 예제

{
  "success": true,
  "data": {
    "job_id": "...",
    "files": [{ "filename": "part_1.pdf", "url": "/api/v1/jobs/<job_id>/download/part_1.pdf" }]
  }
}
GET/api/v1/jobs/{job_id}/download-all

다중 결과 파일을 ZIP으로 일괄 다운로드합니다.

요청 예제

curl -X GET "https://api.all-of-pdf.com/api/v1/jobs/<job_id>/download-all" -o result.zip

응답 예제

HTTP 200 (application/zip)
POST/api/v1/api-keys

API 키를 발급합니다. (Pro 이상만 가능)

요청 예제

curl -X POST "https://api.all-of-pdf.com/api/v1/api-keys" \
  -H "Authorization: Bearer <JWT_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"name":"production-key"}'

응답 예제

{
  "success": true,
  "data": {
    "key": "pk_live_xxx",
    "info": { "key_prefix": "pk_live_xxx" }
  }
}