Submit now, get notified when done
No polling loops HMAC webhook verification Auto-retry on failure
Built for production workloads
Async processing with reliable delivery, security, and automatic retries.
Non-Blocking Submissions
Get a jobId back immediately. Your application keeps running while Parselyze processes in the background.
Job Status Polling
Check the status and progress of any job at any time via a simple GET request using the jobId.
Webhook Delivery
Receive the full extraction result at your endpoint the moment processing completes.
HMAC Signature Verification
Every webhook delivery is signed with HMAC-SHA256. Verify authenticity in one SDK call.
Automatic Retry
Failed deliveries are retried. No dropped results.
Full Result in Payload
The complete extraction result is included in the webhook body. No second API call needed.
Integration in minutes
Two patterns: poll for the result, or let the webhook deliver it to you.
Submit and poll
Node.js / SDK
import { Parselyze } from 'parselyze-node';
const parselyze = new Parselyze('plz_your_api_key');
// Submit asynchronously — returns immediately
const job = await parselyze.documents.parseAsync({
file: './invoice.pdf',
templateId: 'tpl_your_template_id',
});
console.log(job.jobId); // "job_abc123"
console.log(job.status); // "pending"
// Poll for result
const result = await parselyze.jobs.get(job.jobId);
if (result.status === 'completed') {
console.log(result.result);
}Receive via webhook
Express.js webhook handler
import express from 'express';
import { Parselyze } from 'parselyze-node';
const parselyze = new Parselyze('plz_your_api_key', 'your_webhook_secret');
const app = express();
app.post(
'/webhook',
express.raw({ type: 'application/json' }),
(req, res) => {
const signature = req.headers['x-parselyze-signature'] as string;
const isValid = parselyze.webhooks.verifySignature(req.body, signature);
if (!isValid) {
return res.status(400).send('Invalid signature');
}
const event = JSON.parse(req.body.toString());
console.log('Job completed:', event.jobId);
console.log('Result:', event.result);
res.status(200).send('OK');
},
);Ship background document processing today
50 pages/month free · No credit card required