Quick start
- Sign in and open your Dashboard, then API & Automation → API Keys → Create New Key.
- Copy the key (shown once) — it looks like
mxs_xxxxxxxx_xxxxxxxxxxxx. - Send it as a Bearer token on every request:
Authorization: Bearer YOUR_API_KEY.
curl -X POST https://maxscanner.app/api/v1/convert \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/report.docx","filename":"report.docx","format":"pdf"}' \
--output report.pdfTry the API right now
This calls the real /api/v1/sandbox/convert endpoint and converts a small demo document generated on the fly. No API key needed — and it only works from this page on maxscanner.app, so it can't be embedded or scraped elsewhere.
Rate limits & free credits
FREE PLAN
10 / day
and 100 requests / month, forever free. No credit card needed.
PAID PLANS
2,000 – unlimited
Starter (2,000 credits/mo), Pro (10,000/mo), Business (unlimited).
Paid plans spend credits per operation:
Endpoints
Base URL: https://maxscanner.app/api/v1
/healthfree, no keyCheck the API is up — useful for Zapier's "Test connection" step.
RESPONSE
{ "status": "ok", "service": "MAXScanner Public API", "version": "v1" }/usagefreeSee your current plan and remaining quota for the key you send.
RESPONSE
{ "plan": "Free", "limits": { "per_day": 10, "per_month": 100 },
"remaining": { "today": 7, "this_month": 84 } }/convert2 creditsConvert a document at a URL to another format (pdf, docx, xlsx, pptx, txt, html, png, ...).
REQUEST BODY
{ "url": "https://example.com/report.docx",
"filename": "report.docx", "format": "pdf" }RESPONSE
Binary file (Content-Type matches the requested format)/merge1 creditMerge 2-20 PDFs (given as URLs) into one PDF, in the order provided.
REQUEST BODY
{ "files": ["https://.../page1.pdf", "https://.../page2.pdf"] }RESPONSE
Binary file (application/pdf)/ocr3 creditsExtract text from a scanned image or PDF via real OCR — works even with no text layer at all.
REQUEST BODY
{ "url": "https://.../scan.pdf", "filename": "scan.pdf", "language": "eng" }RESPONSE
{ "text": "...", "pages": 3, "language": "eng" }/documents/import1 creditPush a file INTO your MAXScanner library from an automation — the other direction from /convert.
REQUEST BODY
{ "url": "https://.../invoice.pdf", "filename": "invoice.pdf" }RESPONSE
{ "id": "...", "filename": "invoice.pdf", "downloadUrl": "..." }/hooks/subscribefreeRegister a webhook URL to receive future events of one type. See "Webhooks, Zapier & n8n" below.
REQUEST BODY
{ "event": "scan.created", "targetUrl": "https://hooks.zapier.com/..." }RESPONSE
{ "id": "...", "event": "scan.created", "targetUrl": "..." }/hooks/unsubscribefreeRemove a webhook subscription by its id.
REQUEST BODY
{ "id": "..." }RESPONSE
{ "success": true }/hooksfreeList your active webhook subscriptions, including each one's last delivery status.
RESPONSE
{ "subscriptions": [{ "id": "...", "event": "scan.created", "targetUrl": "..." }] }/convert SUPPORTS (NOT JUST OFFICE FORMATS)
Zapier, Make, n8n & webhooks
Connect the MAXScanner Android app to 5,000+ apps. In the app, open Settings → Zapier & Automation(or the API & Automation tile in Tools) to subscribe and get your integration key, then use it as your MAXScanner API key in Zapier's connection step — the same key also works for direct REST calls above.
AVAILABLE TRIGGERS
New Scanned Documentscan.createdAll plans
Fires whenever a new document is scanned in the app.
New PDF Exportpdf.exportedAll plans
Fires when a document group is exported to PDF.
New GeoTagged Scangeotag.capturedPro & above
Fires for scans tagged with location data (address, city, coordinates).
New Timestamp Capturetimestamp.capturedBusiness
Fires for timestamp-stamped captures.
New OCR Text Extractedocr.completedPro & above
Fires when on-device OCR text is available for a scan.
New QR Code Scannedqr.scannedAll plans
Fires the moment a QR code is scanned in the app, with the decoded text.
Make.com
Visual automation scenarios
n8n
Self-hosted workflow automation
Webhooks
Direct HTTP callbacks for anything else
All three platforms work the same way here: they give you a URL, and you tell MAXScanner to POST to it via /hooks/subscribe. No native Zapier app to install yet — this uses Zapier's own generic Webhooks by Zapier action, which works today.
⚡ Zapier step-by-step
- Create a Zap → search for the Webhooks by Zapier app → choose trigger event Catch Hook.
- Zapier shows you a custom webhook URL (e.g.
https://hooks.zapier.com/hooks/catch/...). Copy it. - Call MAXScanner's
/hooks/subscribeonce with that URL and the event you want (see the curl example below). - Back in Zapier, trigger a test event from the app (e.g. scan a document) — the Catch Hook step should show sample data. Continue building your Zap's action step from there (Google Drive, Sheets, Slack, email, anything).
🔄 n8n step-by-step
- Add a Webhook trigger node to a new workflow. Set it to accept POST requests.
- Copy the node's Production URL (activate the workflow first so it's live).
- Call
/hooks/subscribewith that URL and your chosen event. - Trigger a test event from the app — the Webhook node captures the payload, ready to wire into the rest of your workflow.
Subscribe via curl
curl -X POST https://maxscanner.app/api/v1/hooks/subscribe \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"event":"scan.created","targetUrl":"https://hooks.zapier.com/hooks/catch/.../..."}'