Udvikler-API
Tilføj præcis konvertering af håndskrift til dit eget produkt - matematik, fysik, kemi og almindelig tekst, med rigtig typesat LaTeX, PDF og DOCX. Gratis at tilmelde sig, du betaler kun for de sider, du konverterer.
Hvorfor teams bruger det i stedet for at bygge deres egen OCR
Almindelig OCR gør håndskrift til ren tekst. Scrivenos pipeline bevarer den egentlige struktur - ligninger forbliver ligninger, håndtegnede diagrammer og kemiske strukturer bliver fundet og taget med i stedet for at blive smidt væk, og én transskription danner grundlag for rigtig typesat LaTeX, en kompileret PDF og en redigerbar DOCX med ægte Word-ligninger - ikke tre separate eksporter, der hver gør sit bedste.
- Asynkron indsendelse / status / download eller en webhook, når et job er færdigt
- HMAC-signerede webhook-data med en idempotensnøgle, så nye forsøg er sikre
- Output som PDF, DOCX, Markdown eller rå LaTeX fra samme forespørgsel
- Gratis at tilmelde sig - betal kun 0,003 US$ pr. konverteret side, intet månedligt minimum
Kom i gang
Send en fil, spørg efter status, og download derefter - samme pipeline som webappen bruger.
Send
curl -X POST https://api.scriveno.com/api/v1/convert \ -H "Authorization: Bearer isk_live_YOUR_API_KEY" \ -H "Idempotency-Key: <your-own-uuid>" \ -F "file=@notes.pdf" \ -F "webhookUrl=https://example.com/webhooks/scriveno"
Idempotency-Key er valgfri, men anbefales - send præcis samme forespørgsel igen efter en timeout eller netværksfejl, så får du det oprindelige job tilbage i stedet for en dobbelt indsendelse.
Tjek status
curl https://api.scriveno.com/api/v1/convert/{jobId} \
-H "Authorization: Bearer isk_live_YOUR_API_KEY"Download
curl https://api.scriveno.com/api/v1/convert/{jobId}/download/pdf \
-H "Authorization: Bearer isk_live_YOUR_API_KEY" \
-o result.pdfOgså tilgængelig: docx, markdown og latex i stedet for pdf.
Vis dine job
curl "https://api.scriveno.com/api/v1/convert?page=1&pageSize=20" \ -H "Authorization: Bearer isk_live_YOUR_API_KEY"
Annullér et job
curl -X POST https://api.scriveno.com/api/v1/convert/{jobId}/cancel \
-H "Authorization: Bearer isk_live_YOUR_API_KEY"Virker kun, mens jobbet stadig er queued eller processing - hele sidereservationen refunderes, ikke kun en forholdsmæssig rest.
Fuld interaktiv dokumentation: https://api.scriveno.com/swagger
Vil du hellere starte med noget, der kan køres? Download .NET-quickstarten - en enkelt konsolapp (ingen tredjepartspakker), der sender, spørger efter status, downloader, viser og annullerer. Din API-nøgle, inputfil, formater og downloadmappe står i appsettings.json - sæt dens BaseUrl til https://api.scriveno.com; bekræft én gang, så sender den, følger status på en løbende statuslinje og downloader resultatet af sig selv.
Foretrækker du Postman? Importér den færdige samling - alle forespørgsler ovenfor er sat op og peger på https://api.scriveno.com, du skal bare indsætte din API-nøgle i samlingens apiKey-variabel.
Webhooks
Angiv en webhookUrl, når du sender, så POSTer Scriveno dette til den, når jobbet når completed, failed eller cancelled - du behøver ikke at spørge efter status, hvis du ikke vil.
POST <your webhookUrl>
Content-Type: application/json
X-Scriveno-Signature: sha256=<hex-encoded HMAC-SHA256 of the raw body below>
X-Scriveno-Timestamp: <unix seconds when this delivery was signed>
X-Scriveno-Signature-V2: sha256=<hex-encoded HMAC-SHA256 of "<timestamp>.<raw body>">
{
"jobId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"status": "completed",
"totalPages": 3,
"completedPages": 3,
"errorMessage": null,
"downloads": {
"pdf": "https://api.scriveno.com/api/v1/convert/{jobId}/download/pdf",
"docx": "https://api.scriveno.com/api/v1/convert/{jobId}/download/docx",
"markdown": "https://api.scriveno.com/api/v1/convert/{jobId}/download/markdown",
"latex": "https://api.scriveno.com/api/v1/convert/{jobId}/download/latex"
}
}Ved fejl er status failed; efter en annullering er den cancelled. I begge tilfælde er errorMessage udfyldt, og downloads er null i stedet for objektet ovenfor.
Verificér signaturen, før du stoler på data - alle kan POSTe til dit endpoint. Beregn en HMAC-SHA256 af den præcise rå forespørgselskrop med din nøgles webhook-hemmelighed (vises én gang, når nøglen oprettes), hex-kod den, og sammenlign den med alt efter sha256= i headeren X-Scriveno-Signature med en sammenligning i konstant tid. Brug helst X-Scriveno-Signature-V2: den signerer også X-Scriveno-Timestamp, så du kan afvise en opsnappet levering, der sendes igen senere.
// pseudocode
ts = header["X-Scriveno-Timestamp"]
if abs(now_unix_seconds() - int(ts)) > 300: reject
expected = hex(hmac_sha256(webhookSecret, ts + "." + rawRequestBody))
received = header["X-Scriveno-Signature-V2"].removePrefix("sha256=")
if !constantTimeEquals(expected, received): rejectLevering: højst 2 forsøg i alt (1 nyt forsøg 2 sekunder senere), hvis dit endpoint ikke svarer med en 2xx eller ikke har svaret efter 10 sekunder. Mislykkes begge forsøg, prøves der ikke igen - spørg GET /api/v1/convert/{jobId} som reserve for et job, du ikke har fået en webhook for.