API 參考
工作流程 API
除特別說明外,所有端點均需要已登入的工作階段(Cookie)。回應為 JSON:{ ok: true, data } 或 { ok: false, error }。常見錯誤:400 驗證失敗、401 未登入、403 無權限、404 不存在、429 觸發限流、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 | 還原至版本 |
觸發器與 Hook
| 方法 | 路徑 | 說明 |
|---|---|---|
| GET | /api/workflows/triggers | 觸發器列表 |
| POST | /api/workflows/triggers | 建立觸發器(webhook/排程/電子郵件/雲端硬碟) |
| POST | /api/workflows/triggers/:id/run | 立即執行觸發器 |
| DELETE | /api/workflows/triggers/:id | 刪除觸發器 |
| POST | /api/workflows/hook/:token | 入站 Webhook(權杖驗證,無需工作階段;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 | 設定/解除法務保留 |
| 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 Key 所屬使用者(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;ranges 如 "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 | 掃描檔 OCR 成可搜尋 PDF(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 | 真塗黑遮罩:依文字或區域刪除(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 |