process_document
Tujukan ia kepada URL dokumen dan dapatkan JSON berstruktur kembali. PDF menghasilkan teks, metadata terbenam, kiraan halaman dan jadual bergaris; CSV kembali sebagai baris; teks biasa dan HTML mengembalikan teksnya. Jenis fail dikesan daripada pengepala respons, URL dan bait ajaib fail itu sendiri, jadi anda tidak perlu mengetahuinya terlebih dahulu.
Kes Penggunaan
Pengingesan Laporan
Tukarkan PDF suku tahunan kepada teks dan jadual yang boleh anda bandingkan, indeks atau muatkan ke dalam gudang data.
RAG ke atas Dokumen
Ekstrak teks kertas kerja dan manual untuk pemotongan, dengan tajuk dan pengarang sudah diasingkan.
Penuaian Jadual
Keluarkan jadual bergaris daripada PDF sebagai tatasusunan baris, berserta halaman asal setiap satu.
Pemantauan Pemfailan
Pantau penerbitan PDF sesebuah pengawal selia dan hurai setiap yang baharu sebaik ia muncul.
Hujung CSV
Baca CSV yang diterbitkan di sesuatu URL sebagai teks mentah dan baris yang dihurai, tanpa memuat turunnya sendiri.
Audit Metadata
Kumpulkan tajuk, pengarang, penerbit dan tarikh terbenam merentas satu set dokumen untuk mencari fail yang lapuk atau tersalah label.
Endpoint
/api/v1/tools/process_documentParameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
url | string | Required | - | Dokumen yang akan diambil. Mestilah URL http atau https mutlak yang sah. Example: https://example.com/reports/q3-infrastructure.pdf |
document_type | string | Optional | auto | `auto`, `pdf`, `csv`, `txt`, `docx` atau `xlsx`. `auto` menentukannya daripada pengepala `Content-Type`, sambungan URL dan bait ajaib fail. `docx` dan `xlsx` diterima oleh pengesahan tetapi mengembalikan 501 pada hujung ini. Example: auto |
extract_text | boolean | Optional | true | Kembalikan teks dokumen sebagai `text`, berserta `text_length`. Dihadkan kepada 200,000 aksara dan, bagi PDF, 200 halaman pertama — satu nota menyatakannya apabila mana-mana had itu berkuat kuasa. Example: true |
extract_metadata | boolean | Optional | true | Kembalikan sifat dokumen yang terbenam. PDF memberi tajuk, pengarang, subjek, pencipta, penerbit dan kedua-dua tarikh; HTML memberi tajuk, penerangan dan pengarang; CSV dan TXT tidak membawa apa-apa. Example: true |
extract_tables | boolean | Optional | false | Kembalikan jadual bergaris sebagai tatasusunan baris. PDF memberi sehingga 20 jadual dengan 1,000 baris setiap satu; CSV kembali sebagai satu jadual; halaman HTML menerima nota yang menjelaskan bahawa jadual tidak diekstrak di sini. Example: true |
extract_images | boolean | Optional | false | Tidak tersedia pada API REST terhoskan. Menetapkannya mengembalikan `images: null` dan satu nota yang menghala kepada pelayan MCP CrawlForge, bukannya berpura-pura tidak menemui apa-apa. Example: false |
timeout | number | Optional | 30000 | Had masa pengambilan dalam milisaat, 1000-60000. Hujung ini berjalan dalam fungsi 30 saat, jadi pengambilan dihadkan kepada 20,000ms apa jua yang anda hantar. Example: 30000 |
respect_robots | boolean | Optional | true | Hormati robots.txt tapak sasaran. Dibiarkan pada `true`, laluan yang dilarang untuk `CrawlForge` ditolak dengan 403 sebelum apa-apa diambil dan tiada credits dicaj. Tetapkan kepada `false` hanya untuk sasaran yang anda mempunyai perjanjian sendiri dengannya — respons kemudiannya membawa entri `warnings` dan tindakan mengatasi itu direkodkan pada API key anda. Example: true |
Had Yang Perlu Diketahui
Setiap satu daripadanya mengumumkan dirinya dalam notes dan bukannya gagal secara senyap.
Content-Length dahulu, kemudian terhadap bait yang benar-benar diterima, jadi pengepala yang menipu tidak dapat lepas.page_count masih melaporkan panjang sebenar dokumen itu.notes.Contoh Permintaan
curl -X POST https://crawlforge.dev/api/v1/tools/process_document \
-H "X-API-Key: cf_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/reports/q3-infrastructure.pdf",
"extract_tables": true
}'Contoh Respons
{ "success": true, "data": { "url": "https://example.com/reports/q3-infrastructure.pdf", "document_type": "pdf", "content_type": "application/pdf", "file_size": 1842665, "processed_at": "2026-08-27T02:27:50.833Z", "page_count": 14, "text": "Q3 Infrastructure Review\n\nRequest volume grew 38% quarter over quarter while p95 latency held flat...", "text_length": 101, "metadata": { "title": "Q3 Infrastructure Review", "author": "Dana Reyes", "subject": "Quarterly capacity planning", "creator": "LaTeX with hyperref", "producer": "pdfTeX-1.40.25", "creation_date": "D:20260812141055Z", "modification_date": "D:20260814093012Z" }, "tables": [ { "page": 4, "rows": 3, "columns": 3, "data": [ [ "Region", "Requests", "p95 ms" ], [ "us-east", "18,204,551", "412" ], [ "eu-west", "9,118,340", "458" ] ] } ] }, "credits_used": 2, "credits_remaining": 998, "processing_time": 4210}data.document_typeJenis yang ditentukan oleh pengesanan, yang boleh berbeza daripada apa yang anda mintadata.content_typePengepala `Content-Type` yang dihantar pelayan, sebagaimana adanya — kerap salah, itulah sebabnya bait ajaib turut disemakdata.file_sizeBait yang benar-benar diterimadata.page_countHalaman dalam dokumen. PDF sahaja, dan dilaporkan sepenuhnya walaupun hanya 200 halaman pertama dibacadata.text_lengthAksara dalam `text` selepas sebarang pemotongan, bukan panjang penuh dokumendata.metadata.creation_dateRentetan tarikh PDF dikembalikan tepat seperti yang terbenam, dalam bentuk `D:YYYYMMDDHHmmSS`. Huraikannya sendiridata.tables[].pageHalaman tempat jadual itu ditemui, supaya hasilnya boleh dijejaki kembali kepada sumberdata.tables[].columnsDiterbitkan daripada garis menegak yang dilukis dalam PDF. Nilai 1 bermakna jadual itu tidak dibariskan kepada lajurcredits_used2 credits rata setiap dokumen, apa jua kiraan halamannyaPengendalian Ralat
URL Tidak Sah (400 Bad Request)
VALIDATION_ERROR. url diperlukan dan mesti dihurai sebagai URL mutlak. Status yang sama meliputi timeout di luar 1000-60000, document_type yang tidak dikenali, dan URL yang menghala ke alamat peribadi atau setempat.
docx atau xlsx (501 Not Implemented)
UNSUPPORTED_DOCUMENT_TYPE. Format Office tidak dihurai pada API REST terhoskan. Pelayan MCP CrawlForge (npm: crawlforge-mcp-server) mengendalikannya dengan API key yang sama.
Dokumen Terlalu Besar (413 Payload Too Large)
DOCUMENT_TOO_LARGE. Melebihi had 25MB. Disemak sebelum muat turun dan sekali lagi selepasnya, jadi Content-Length yang tidak tepat masih ditangkap.
Dokumen Tidak Dapat Dicapai (502 Bad Gateway)
DOCUMENT_FETCH_ERROR apabila URL mengembalikan status bukan 2xx — mesejnya menyertakannya — atau FETCH_FAILED apabila sambungan itu sendiri gagal.
Sasaran Tamat Masa (504 Gateway Timeout)
FETCH_TIMEOUT. Dokumen itu tidak tiba dalam bajet pengambilan.
Pemprosesan Gagal (500 Internal Server Error)
TOOL_ERROR. PDF yang rosak atau disulitkan berakhir di sini. Panggilan yang gagal tidak dicaj.
Disekat oleh robots.txt (403 Forbidden)
robots.txt tapak sasaran melarang laluan ini untuk CrawlForge. Tetapkan respect_robots: false untuk mengatasinya jika anda mempunyai perjanjian sendiri dengan sasaran — tindakan mengatasi itu direkodkan pada API key anda. Tindakan mengatasi itu tidak sampai kepada hos yang berada dalam senarai penarikan diri kekal CrawlForge, yang ditolak tanpa mengira nilai respect_robots.
page_count akan kelihatan betul sementara text_length menghampiri sifar. Tiada OCR pada hujung ini; periksa text_length sebelum mempercayai hasilnya.Kos Credit
Apa yang Disertakan:
Pengesanan jenis daripada pengepala, URL dan bait ajaib
Teks PDF sehingga 200 halaman dan 200,000 aksara
Metadata PDF terbenam, termasuk kedua-dua cap masa
Sehingga 20 jadual bergaris berserta nombor halamannya
Penghuraian CSV serta pengekstrakan teks biasa dan HTML
Cadangan Pelan:
Free Plan: 1,000 credits percubaan sekali sahaja = 500 dokumen
Hobby Plan: 5,000 credits = 2,500 dokumen ($19/mo)
Professional Plan: 50,000 credits = 25,000 dokumen ($99/mo)