API Documentation

All-of-PDF API

Core APIs for authentication, conversion, and plan/usage checks. Use the examples below to test quickly.

Usage Policy

Conversion features are members-only. Free includes 2 conversions/day, and API access starts from Pro.

PlanMonthlyDaily LimitAPI
Free₩02/dayNo
Pro₩5,90015/dayYes
Pro+₩12,90050/dayYes
CustomContactCustomCustom

Base URL

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

In development, replace only the domain with your local/staging host.

POST/api/v1/auth/register

Create an account and issue a JWT token.

Request Example

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"}'

Response Example

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

Sign in and receive a JWT token.

Request Example

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"}'

Response Example

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

Get profile of the authenticated user.

Request Example

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

Response Example

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

Get plan catalog and daily usage policy.

Request Example

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

Response Example

{
  "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

Get current plan and remaining daily quota.

Request Example

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

Response Example

{
  "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

Convert PDF to DOCX. Default provider is Adobe.

Request Example

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"

Response Example

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

Convert PDF pages to PNG/JPEG images.

Request Example

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"

Response Example

{
  "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

Split a PDF by page ranges.

Request Example

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"

Response Example

{
  "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

Download all multi-file results as a single ZIP.

Request Example

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

Response Example

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

Issue an API key. (Pro and above only)

Request Example

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"}'

Response Example

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