Imbasan API

Imbasan API menukar PDF menjadi hasil imbasan yang meyakinkan melalui satu panggilan REST, sesuai untuk aliran kerja automatik dan penyepaduan aplikasi. Cipta tugas, muat naik PDF, kemudian tinjau statusnya atau tunggu webhook: tiga langkah, daripada mana-mana persekitaran atau bahasa yang boleh menghantar permintaan HTTP. Ruang warna, resolusi, putaran, kekaburan, hingar, kecerahan, kontras dan sempadan semuanya boleh ditetapkan.

Bagaimana satu panggilan berjalan

  1. Cipta tugas

    POST /v1/scan-jobs

    Hantar config anda dan, jika mahu, webhookUrl; anda menerima jobID dan uploadURL yang telah ditandatangani.

  2. Muat naik PDF

    PUT {uploadURL}

    Lakukan PUT fail terus ke alamat S3 bertandatangan daripada langkah sebelumnya — tanpa token.

  3. Ambil hasil imbasan

    GET /v1/scan-jobs/{jobID}

    Tinjau statusnya atau tunggu webhook; sebaik tugas berstatus completed, muat turun melalui downloadURL.

Sesuai untuk keadaan ini

Pengeluaran pukal di bahagian pelayan

Kontrak, invois dan laporan yang dijana pada pelayan terus melalui kesan imbasan, tanpa sesiapa mengulanginya secara manual di halaman web.

Dalam sistem sedia ada

Tambahkan tindakan «eksport hasil imbasan» pada CRM, ERP atau sistem tiket, dan biarkan ia memanggil API.

Rantaian automasi

CI, n8n, Zapier dan seumpamanya memulakan tugas apabila sesuatu berlaku, dan webhook menyerahkannya kepada langkah seterusnya setelah selesai.

Baris gilir fail yang besar

Tugas bersifat tak segerak: setelah dicipta, setiap satu diproses sendiri, dan kemajuannya boleh disemak melalui status dan createdAfter.

Bahasa dan persekitaran

TypeScriptfetch / axios
Node.jsfetch / undici
Pythonrequests / httpx
Gonet/http
PHPcURL / Guzzle
Rubynet/http
JavaHttpClient
cURLBaris arahan / CI
LagiMana-mana klien HTTP

API ini ialah HTTP dan JSON biasa, jadi mana-mana bahasa atau platform automasi yang boleh menghantar permintaan mampu memanggilnya.

Contoh kod

API Bearer Token

Token terikat pada akaun anda dan boleh dijana semula bila-bila masa. Imbasan API memerlukan akaun Pro: tanpa token yang sah API membalas 401, dan tanpa peranan Pro ia membalas 403.

Cuba

Tetapkan parameternya, lihat kandungan permintaan berubah mengikutnya, kemudian jalankan tiga panggilan ke API.

Parameter imbasan

Larian percubaan memanggil API dengan token anda dan memerlukan akaun Pro; parameter dan kandungan permintaan bebas dibaca.

POST/v1/scan-jobs
{
  "config": {
    "rotate": 1,
    "rotate_var": 0.5,
    "colorspace": "gray",
    "blur": 0,
    "noise": 0,
    "border": false,
    "brightness": 1.3,
    "contrast": 1.3,
    "resolution": 150,
    "output_format": "image/jpeg"
  }
}

Maklumat Tugas Imbasan

contoh
{
  "jobID": "3f9c1e64-0000-4000-8000-00000000a71b",
  "userID": "8f21c4b0-0000-4000-8000-000000004a17",
  "createdAt": 1724409600,
  "status": "completed",
  "inputUploadedAt": 1724409601,
  "completedAt": 1724409602,
  "numPages": 6,
  "downloadURL": "https://…/output/3f9c.pdf?X-Amz-…"
}

Rujukan API

KaedahLaluanKeterangan
POST/v1/scan-jobsMencipta tugas imbasan. Hantar config dan, jika perlu, webhookUrl; anda menerima objek tugas berstatus created serta uploadURL bertandatangan.
PUT{uploadURL}Alamat S3 bertandatangan daripada langkah sebelumnya, yang bukan di api.lookscanned.ioMemuat naik PDF sumber dengan Content-Type: application/pdf dan Content-Length. Alamat itu sudah membawa tandatangannya sendiri, jadi jangan tambah pengepala Authorization.
GET/v1/scan-jobs/{jobID}Membaca satu tugas, untuk tinjauan berkala. Pada created ia mengandungi uploadURL, pada completed pula downloadURL.
GET/v1/scan-jobsMenyenaraikan tugas anda sendiri, ditapis mengikut jobID, status atau createdAfter.
Statuscreatedprocessingcompletedfailed
  • 401 tiada token yang sah
  • 403 akaun bukan Pro
  • 404 tugas tidak wujud

Kandungan permintaan

MedanJenisLalaiKeterangan
webhookUrlstring · —Dipanggil sekali sebaik tugas selesai, jadi anda tidak perlu meninjau statusnya.
config.colorspace'gray' | 'sRGB' · graygrayRuang warna imej keluaran; gray bermaksud hasil imbasan hitam putih.
config.resolutionnumber · 7272Resolusi imej keluaran, dalam DPI.
config.rotatenumber · —Putaran seluruh dokumen, dalam darjah.
config.rotate_varnumber · —Julat putaran rawak bagi setiap halaman, dalam darjah — kesan kertas yang diletakkan senget.
config.blurnumber · 00Tahap kekaburan.
config.noisenumber · 00Tahap hingar.
config.brightnessnumber · 11Kecerahan; 1 bermakna tiada perubahan.
config.contrastnumber · 11Kontras; 1 bermakna tiada perubahan.
config.borderboolean · falsefalseSama ada halaman diberi sempadan imbasan.
config.output_format'image/png' | 'image/jpeg' · image/jpegimage/jpegFormat imej semasa halaman diterjemah.

Setiap medan boleh ditinggalkan. Nilai permulaan dalam bahagian «Cuba» — resolusi 150, putaran 1, kecerahan dan kontras 1.3 — ialah gabungan yang disyorkan aplikasi web, bukan nilai lalai API.

Medan dalam objek tugas yang perlu diberi perhatian

status
created / processing / completed / failed — menentukan sama ada dua alamat di bawah muncul.
uploadURL
Hanya semasa berstatus created. Alamat muat naik bertandatangan yang ada tempoh sah.
downloadURL
Hanya setelah berstatus completed. Alamat muat turun bertandatangan yang ada tempoh sah.
inputUploadedAt / completedAt
Bila muat naik sumber selesai dan bila tugas selesai; bezanya ialah masa pemprosesan.

Soalan lazim

Adakah imbasan API memerlukan Pro?

Ya. Tanpa token yang sah API membalas 401, dan akaun tanpa peranan Pro menerima 403. Selepas menaik taraf dan log masuk, token itu ada pada halaman ini.

Bagaimana saya tahu tugas sudah selesai?

Dua cara: tinjau GET /v1/scan-jobs/{jobID}, atau hantar webhookUrl semasa mencipta tugas dan biarkan perkhidmatan menghubungi anda sekali.

Adakah hasilnya sama seperti mengimbas di halaman web?

Sama. Kedua-duanya menggunakan pelaksanaan kesan imbasan yang sama, dan ruang warna, resolusi, putaran, kekaburan, hingar, kecerahan, kontras serta sempadan dalam config ialah pilihan bernama sama di halaman web: parameter sama memberi keluaran sama. Yang berbeza hanyalah tempat pemprosesan — setempat pada halaman, jauh melalui API.

Bolehkah saya menyimpan alamat muat naik dan muat turun untuk digunakan semula?

Lebih baik jangan. uploadURL dan downloadURL ialah alamat bertandatangan yang ada tempoh sah; setelah tamat tempoh anda perlu membaca semula tugas itu untuk mendapat yang baharu.

Berapa lama satu tugas diproses?

Bergantung pada bilangan halaman dan resolusi. Dokumen beberapa halaman biasanya siap dalam beberapa saat; resolusi lebih tinggi dan dokumen lebih panjang mengambil masa lebih lama. Beza antara inputUploadedAt dan completedAt memberi masa sebenar.

Bagaimana jika sesuatu tugas gagal?

Statusnya bertukar kepada failed. Puncanya lazimnya fail yang bukan PDF sah, sekatan penyulitan, atau muat naik yang terputus. Pastikan fail itu boleh dibuka, kemudian cipta tugas baharu.

Bolehkah saya menyemak tugas lampau?

Boleh. GET /v1/scan-jobs menyenaraikan tugas anda sendiri dan boleh ditapis mengikut jobID, status dan createdAfter — memadai untuk penyesuaian rekod atau muat turun semula.