Self-hosted · PHP + Python/OpenCV

Scan OMR sheets with a single API call

OMRScan API turns photos of OMR answer sheets into structured, scored results in seconds. Perspective correction, roll-number & booklet detection, multi/blank bubble handling, and answer-key scoring — all behind one secure REST endpoint.

✓ 10 free credits on signup ✓ ₹0.70 per scan ✓ Credits never expire
OMR ANSWER SHEET
ROLL NO.
1 A B C D
2 A B C D
3 A B C D
4 A B C D
5 A B C D
6 A B C D
7 A B C D
8 A B C D
Scored: 7 / 8 · 87.5%
RESTSimple JSON API
OpenCVComputer-vision engine
60/minRate limit per key
10 MBMax upload size
JPEG/PNG/PDFSupported formats

Everything you need to process OMR sheets

A complete pipeline from raw photo to scored result, with billing and security built in.

🎯

Accurate detection

Perspective correction, shadow removal, and bubble detection handle real-world phone photos, not just clean scans.

🔢

Roll & booklet reading

Automatically reads roll numbers and booklet/set codes, and flags multi-mark or blank responses.

✅

Answer-key scoring

Provide an answer key and get per-question correctness plus a final score in the same response.

🔑

Per-user API keys

Secure, sha256-hashed API keys with per-key rate limiting. Regenerate anytime from your dashboard.

💳

Credit wallet

Pay only for what you scan. 10 free credits to start, top up via PhonePe, credits never expire.

🛡️

Secure by default

CSRF protection, XSS escaping, prepared statements, real-MIME upload validation, and audit logging.

How it works

Four steps from sign-up to scored results.

1

Create an account

Sign up and instantly get 10 free credits plus your first API key.

2

Send an OMR image

POST a JPEG, PNG, or PDF to /api/v1/scan with your API key and a template.

3

Get structured results

Receive JSON with roll number, detected answers, and (optionally) a score.

4

Top up when needed

Buy more credits via PhonePe. 1 credit = 1 scan. Track everything in your dashboard.

A REST API developers actually enjoy

One endpoint, JSON in, JSON out. Authenticate with a Bearer API key.

Request

curl -X POST https://omr.webinit.in/api/v1/scan \
  -H "Authorization: Bearer omr_live_xxx" \
  -F "template=template_01" \
  -F "image=@sheet.jpg"

Response

{
  "success": true,
  "roll_number": "123456",
  "booklet": "A",
  "answers": { "1": "A", "2": "C", "3": "B" },
  "score": { "correct": 7, "total": 8, "percent": 87.5 }
}

Health check: GET https://omr.webinit.in/api/v1/health. Full reference is available in your dashboard after login.

Simple, credit-based pricing

No subscriptions. Pay per scan. Credits never expire.

Free

10 credits

On every new signup

  • Full API access
  • Your own API key
  • Scan history + CSV export
Get started

API Integration

You own it

1 credit = 1 scan

  • Add Own Website
  • Simple JSON API
  • Admin panel & audit logs
Learn more

Frequently asked questions

What is OMR scanning?

OMR (Optical Mark Recognition) reads marks — like filled bubbles on an exam answer sheet — from an image and converts them into data you can score and store.

Do I need clean scans?

No. The OpenCV engine does perspective correction and shadow removal, so clear phone photos work well. Accuracy improves with a template tuned to your sheet.

How is billing calculated?

1 credit per scan, charged even for unreadable files. If our server errors out (HTTP 500), that credit is automatically refunded.

What formats are supported?

JPEG, PNG, WebP, and PDF, up to 10 MB per file.

How do I authenticate?

Every request uses your per-user API key as a Bearer token. Requests are rate limited to 60 per minute per key.

Do credits expire?

No. Purchased credits stay in your wallet until you use them.

Start scanning OMR sheets today

Create an account and get 10 free credits — no card required.

Create free account