API-skanning

API-skanning gjør en PDF om til en troverdig skannet kopi med ett REST-kall, noe som passer automatiserte prosesser og integrasjoner i apper. Opprett jobben, last opp PDF-en og poll statusen eller vent på webhooken: tre steg, fra ethvert miljø og språk som kan sende en HTTP-forespørsel. Fargerom, oppløsning, rotasjon, uskarphet, støy, lysstyrke, kontrast og kantlinje kan alle stilles inn.

Slik foregår et kall

  1. Opprett jobben

    POST /v1/scan-jobs

    Send din config og eventuelt en webhookUrl; du får tilbake en jobID og en forhåndssignert uploadURL.

  2. Last opp PDF-en

    PUT {uploadURL}

    Gjør PUT av filen rett til den forhåndssignerte S3-adressen fra forrige steg — uten token.

  3. Hent den skannede kopien

    GET /v1/scan-jobs/{jobID}

    Poll statusen eller vent på webhooken; når jobben er completed, laster du den ned fra downloadURL.

Der det passer

Masseproduksjon i backend

Avtaler, fakturaer og rapporter som lages på serveren går rett gjennom skanneeffekten, uten at noen gjentar det samme for hånd på nettsiden.

I et eksisterende system

Legg til en handling for å eksportere en skannet kopi i et CRM, et ERP eller et saksbehandlingssystem, og la den kalle API-et.

Automatiseringskjeder

CI, n8n, Zapier og lignende starter en jobb ved en hendelse, og webhooken sender stafettpinnen videre når den er ferdig.

Store filkøer

Jobbene er asynkrone: når de først er opprettet, behandles hver for seg, og framdriften kan følges via status og createdAfter.

Språk og miljøer

TypeScriptfetch / axios
Node.jsfetch / undici
Pythonrequests / httpx
Gonet/http
PHPcURL / Guzzle
Rubynet/http
JavaHttpClient
cURLKommandolinje / CI
MerEnhver HTTP-klient

API-et er vanlig HTTP og JSON, så ethvert språk eller enhver automatiseringsplattform som kan sende en forespørsel, kan kalle det.

Kodeeksempler

API Bearer Token

Tokenet hører til kontoen din og kan lages på nytt når som helst. API-skanning krever en Pro-konto: uten et gyldig token svarer API-et 401, og uten Pro-rollen svarer det 403.

Prøv det

Still inn parameterne, se hvordan innholdet i forespørselen følger med, og kjør så de tre kallene mot API-et.

Skanneparametere

En prøvekjøring kaller API-et med tokenet ditt og krever en Pro-konto; parameterne og innholdet i forespørselen er fritt å se på.

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

Skann Jobbinformasjon

eksempel
{
  "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-…"
}

API-referanse

MetodeStiBeskrivelse
POST/v1/scan-jobsOppretter en skannejobb. Send config og eventuelt webhookUrl; du får tilbake jobbobjektet med statusen created og en forhåndssignert uploadURL.
PUT{uploadURL}Den forhåndssignerte S3-adressen fra forrige steg, som ikke ligger på api.lookscanned.ioLaster opp kilde-PDF-en med Content-Type: application/pdf og Content-Length. Adressen bærer sin egen signatur, så ikke legg til en Authorization-header.
GET/v1/scan-jobs/{jobID}Leser én jobb, til polling. Ved created inneholder den uploadURL, ved completed downloadURL.
GET/v1/scan-jobsLister dine egne jobber, filtrert på jobID, status eller createdAfter.
Statuscreatedprocessingcompletedfailed
  • 401 ingen gyldig token
  • 403 kontoen er ikke Pro
  • 404 jobben finnes ikke

Innholdet i forespørselen

FeltTypeStandardBeskrivelse
webhookUrlstring · —Kalles én gang når jobben er ferdig, så du slipper å polle etter den.
config.colorspace'gray' | 'sRGB' · graygrayFargerommet til bildet som lages; gray gir en svart-hvit skannet kopi.
config.resolutionnumber · 7272Oppløsningen til bildet som lages, i dpi.
config.rotatenumber · —Rotasjon av hele dokumentet, i grader.
config.rotate_varnumber · —Spennet for den tilfeldige rotasjonen per side, i grader — inntrykket av et ark lagt skjevt.
config.blurnumber · 00Mengden uskarphet.
config.noisenumber · 00Mengden støy.
config.brightnessnumber · 11Lysstyrke; 1 lar den stå uendret.
config.contrastnumber · 11Kontrast; 1 lar den stå uendret.
config.borderboolean · falsefalseOm siden skal få en kantlinje fra skanningen.
config.output_format'image/png' | 'image/jpeg' · image/jpegimage/jpegBildeformatet sidene gjengis til.

Alle felt kan utelates. Startverdiene i «Prøv det» — oppløsning 150, rotasjon 1, lysstyrke og kontrast 1,3 — er kombinasjonen nettappen anbefaler, ikke API-ets standardverdier.

Felt i jobbobjektet det er verdt å følge med på

status
created / processing / completed / failed — avgjør om de to adressene nedenfor er med.
uploadURL
Bare mens jobben er created. En forhåndssignert opplastingsadresse som utløper.
downloadURL
Først når jobben er completed. En forhåndssignert nedlastingsadresse som utløper.
inputUploadedAt / completedAt
Når opplastingen av kilden var ferdig og når jobben var ferdig; differansen er behandlingstiden.

Ofte stilte spørsmål

Krever API-skanning Pro?

Ja. Uten et gyldig token svarer API-et 401, og en konto uten Pro-rollen får 403. Når du har oppgradert og logget inn, ligger tokenet på denne siden.

Hvordan vet jeg at en jobb er ferdig?

På to måter: poll GET /v1/scan-jobs/{jobID}, eller send med en webhookUrl når du oppretter jobben og la tjenesten kalle deg opp én gang.

Blir resultatet det samme som når man skanner på nettsiden?

Ja. Begge bruker den samme implementasjonen av skanneeffekten, og fargerom, oppløsning, rotasjon, uskarphet, støy, lysstyrke, kontrast og kantlinje i config svarer til de likelydende valgene på nettsiden: samme parametere gir samme resultat. Det eneste som skiller, er hvor arbeidet skjer — lokalt på siden, eksternt via API-et.

Kan jeg lagre opplastings- og nedlastingsadressene og bruke dem om igjen?

Helst ikke. uploadURL og downloadURL er forhåndssignerte adresser med begrenset levetid; når de har utløpt, må du lese jobben på nytt for å få ferske.

Hvor lang tid tar en jobb?

Det kommer an på sidetallet og oppløsningen. Noen få sider er som regel ferdige på sekunder, mens høyere oppløsning og lengre dokumenter tar lengre tid. Differansen mellom inputUploadedAt og completedAt gir den faktiske tiden.

Hva gjør jeg hvis en jobb feiler?

Statusen blir failed. De vanlige årsakene er en fil som ikke er en gyldig PDF, kryptering som sperrer filen, eller en avbrutt opplasting. Sjekk at filen lar seg åpne, og opprett en ny jobb.

Kan jeg se tidligere jobber?

Ja. GET /v1/scan-jobs lister dine egne jobber og kan filtreres på jobID, status og createdAfter, noe som holder til avstemming eller en ny nedlasting.