본문으로 건너뛰기

API 문서

REST API를 통해 PDF 분석을 애플리케이션에 통합하세요

API 토큰 관리

첫 번째 분석

계정 없이 PDF 분석을 사용해 보세요. 계정 한도를 적용하고 결과를 저장하려면 토큰을 추가하세요.

POST/api/v1/pdf/analyze
요청 예시
curl -X POST https://pdfcheck.online/api/v1/pdf/analyze \
  -H "Accept: application/json" \
  -F "file=@document.pdf"

복사하지 못했습니다. 코드를 선택해 직접 복사하세요.

인증
선택 사항
업로드 한도
50 MB
기본 URL
https://pdfcheck.online/api/v1

인증

PDF 분석에는 토큰이 선택 사항입니다. 계정 정보, 저장된 분석 및 토큰 관리에는 Bearer 토큰이 필요합니다.

토큰을 비밀로 관리하세요. 환경 변수를 사용하고, 사용하지 않는 토큰은 계정에서 폐기하세요. API 토큰 관리

요청 예시
curl -X POST https://pdfcheck.online/api/v1/pdf/analyze \
  -H "Accept: application/json" \
  -H "Authorization: Bearer $PDFCHECK_API_TOKEN" \
  -F "file=@document.pdf"

복사하지 못했습니다. 코드를 선택해 직접 복사하세요.

사용량과 한도

계정 없이 사용: IP 주소당 하루 10회 분석. Free: 하루 100회. Pro와 AI: 일일 한도 없음. 처리 엔드포인트에는 분당 30개 요청 한도도 적용됩니다. 분석 응답에는 남은 검사 횟수가 포함됩니다.

접근 권한일일 분석 횟수업로드 한도
토큰 불필요1050 MB
Free10050 MB
Pro / AI일일 한도 없음100 MB

처리 엔드포인트에는 분당 최대 30개 요청 한도도 적용됩니다. 429 응답은 일일 한도 또는 분당 한도에 도달했음을 의미할 수 있습니다.

POST/pdf/analyze

PDF 파일을 업로드하고 분석합니다. PDF에서 추출된 상세 메타데이터를 반환합니다.

이름유형설명
filemultipart/form-data필수. 분석할 PDF 파일: 계정 없이 사용하거나 Free 플랜을 사용하면 최대 50 MB, Pro와 AI 플랜은 100 MB입니다.

응답 예시입니다. 값은 문서마다 달라집니다.

응답 예시
{
    "success": true,
    "data": {
        "id": "example-analysis-token",
        "view_key": "example-view-key",
        "filename": "document.pdf",
        "file_size": 1048576,
        "file_size_formatted": "1.00 MB",
        "metadata": {
            "basic": {
                "pages": 10,
                "pdf_version": "1.7",
                "analysis_mode": "lightweight",
                "partial_analysis": true
            },
            "document": {
                "title": "Example document",
                "author": "Example author",
                "creator": "Microsoft Word",
                "producer": "Adobe PDF Library"
            }
        },
        "analyzed_at": "2026-09-29T12:00:00+00:00"
    },
    "remaining_checks": 9
}

복사하지 못했습니다. 코드를 선택해 직접 복사하세요.

API 메타데이터 분석은 처리 범위가 제한된 경량 모드를 사용합니다. 상세한 글꼴, 이미지 및 색상 분석은 생략되며 metadata.basic.partial_analysis는 true입니다.

메타데이터와 소프트웨어 지표는 작성자, 진위 또는 표준 준수를 입증하지 않습니다.

업로드한 파일의 데이터는 처리 후 삭제됩니다. 분석 결과와 메타데이터는 보관될 수 있습니다. 개인정보 처리방침을 확인하세요. 개인정보 처리방침

GET/user

일일 사용 제한을 포함한 인증된 사용자 정보를 가져옵니다.

토큰 필수. 응답 예시입니다. 값은 문서마다 달라집니다.

응답 예시
{
    "success": true,
    "data": {
        "name": "Example user",
        "email": "user@example.com",
        "daily_limit": 100,
        "remaining_checks": 99,
        "checks_used_today": 1
    }
}

복사하지 못했습니다. 코드를 선택해 직접 복사하세요.

GET/pdf

인증된 사용자의 모든 PDF 분석 결과를 페이지네이션과 함께 나열합니다.

토큰 필수

쿼리 매개변수기본값설명
per_page20페이지당 결과 수(1-100)
page1integer
응답 예시
{
    "success": true,
    "data": [
        {
            "id": "example-analysis-token",
            "filename": "document.pdf",
            "file_size": 1048576,
            "file_size_formatted": "1.00 MB",
            "analyzed_at": "2026-09-29T12:00:00+00:00"
        }
    ],
    "meta": {
        "current_page": 1,
        "last_page": 1,
        "per_page": 20,
        "total": 1
    }
}

복사하지 못했습니다. 코드를 선택해 직접 복사하세요.

GET/pdf/{token}

분석 ID(공유 토큰)로 상세 분석 결과를 가져옵니다.

토큰 필수

요청 예시
curl https://pdfcheck.online/api/v1/pdf/example-analysis-token \
  -H "Accept: application/json" \
  -H "Authorization: Bearer $PDFCHECK_API_TOKEN"

복사하지 못했습니다. 코드를 선택해 직접 복사하세요.

엔드포인트 참조

POST/pdf/extract-text

PDF에서 텍스트를 추출합니다. pdf 필드로 파일을 보내세요. 이 엔드포인트의 업로드 한도는 50 MB이며 data.pages를 반환합니다.

요청 예시
curl -X POST https://pdfcheck.online/api/v1/pdf/extract-text \
  -H "Accept: application/json" \
  -F "pdf=@document.pdf"

복사하지 못했습니다. 코드를 선택해 직접 복사하세요.

POST/pdf/to-markdown

PDF를 Markdown으로 변환합니다. pdf 필드로 파일을 보내세요(50 MB 한도). 별도 할당량: 계정 없이 사용하거나 Free 플랜을 사용하면 하루 10회, Pro와 AI 플랜은 하루 100회 변환할 수 있습니다. 스캔된 페이지에는 외부 AI OCR이 사용될 수 있습니다. 응답에는 remaining_conversions가 포함됩니다.

요청 예시
curl -X POST https://pdfcheck.online/api/v1/pdf/to-markdown \
  -H "Accept: application/json" \
  -F "pdf=@document.pdf"

복사하지 못했습니다. 코드를 선택해 직접 복사하세요.

토큰 관리

API로 토큰을 만들려면 기존 토큰이 필요합니다. 첫 번째 토큰은 계정에서 만드세요. API 토큰 관리

엔드포인트설명
GET /tokens인증된 사용자의 모든 API 토큰을 나열합니다.
POST /tokens새 API 토큰을 생성합니다. 토큰은 응답에서 한 번만 표시됩니다. name: string (max: 255)
DELETE /tokens/{tokenId}API 토큰을 영구적으로 폐기(삭제)합니다.
요청 예시
curl -X POST https://pdfcheck.online/api/v1/tokens \
  -H "Accept: application/json" \
  -H "Authorization: Bearer $PDFCHECK_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"My integration"}'

복사하지 못했습니다. 코드를 선택해 직접 복사하세요.

오류 코드

HTTP 코드오류 코드설명
401Unauthenticated.유효하지 않거나 누락된 API 토큰
404not_found리소스를 찾을 수 없거나 접근이 거부됨
422message / errors
corrupted_pdf
password_protected
analysis_failed
잘못된 요청 또는 PDF 처리 실패. 지원되지 않는 파일, 너무 큰 업로드, 손상된 PDF 또는 비밀번호 보호 등이 포함됩니다
429daily_limit_exceeded
message
일일 한도 또는 분당 한도를 초과했습니다. 해당 한도가 초기화되면 다시 시도하세요

코드 예시

data.metadata.basic.pages에서 결과를 읽으세요. 모든 응답 예시는 설명용입니다.

Node.js 20 이상. 기본 fetch, FormData 및 Blob을 사용합니다.

analyze-pdf.mjs
import { readFile } from 'node:fs/promises';

const form = new FormData();
form.append('file', new Blob([await readFile('document.pdf')], {
  type: 'application/pdf'
}), 'document.pdf');

const headers = { Accept: 'application/json' };
if (process.env.PDFCHECK_API_TOKEN) {
  headers.Authorization = `Bearer ${process.env.PDFCHECK_API_TOKEN}`;
}

const response = await fetch('https://pdfcheck.online/api/v1/pdf/analyze', {
  method: 'POST', headers, body: form
});
const result = await response.json();
if (!response.ok || !result.success) throw new Error(JSON.stringify(result));
console.log(result.data.metadata.basic.pages);
console.log(result.remaining_checks);

복사하지 못했습니다. 코드를 선택해 직접 복사하세요.

Python (requests)
Python
import os
import requests

headers = {'Accept': 'application/json'}
if os.getenv('PDFCHECK_API_TOKEN'):
    headers['Authorization'] = f"Bearer {os.environ['PDFCHECK_API_TOKEN']}"

with open('document.pdf', 'rb') as pdf:
    response = requests.post(
        'https://pdfcheck.online/api/v1/pdf/analyze',
        headers=headers,
        files={'file': ('document.pdf', pdf, 'application/pdf')},
        timeout=120,
    )
response.raise_for_status()
result = response.json()
print(result['data']['metadata']['basic']['pages'])
print(result['remaining_checks'])

복사하지 못했습니다. 코드를 선택해 직접 복사하세요.

PHP (cURL)
PHP
<?php
$headers = ['Accept: application/json'];
if ($token = getenv('PDFCHECK_API_TOKEN')) {
    $headers[] = 'Authorization: Bearer ' . $token;
}
$curl = curl_init('https://pdfcheck.online/api/v1/pdf/analyze');
curl_setopt_array($curl, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_POSTFIELDS => ['file' => new CURLFile('document.pdf', 'application/pdf')],
]);
$body = curl_exec($curl);
if ($body === false) throw new RuntimeException(curl_error($curl));
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
$result = json_decode($body, true, flags: JSON_THROW_ON_ERROR);
if ($status >= 400 || !($result['success'] ?? false)) {
    throw new RuntimeException($body);
}
echo $result['data']['metadata']['basic']['pages'];

복사하지 못했습니다. 코드를 선택해 직접 복사하세요.