Proctoring and Biometric Data: DPDP, GDPR Article 9, and BIPA

The facial images a proctored exam captures, and the face template derived from them to match a candidate, are biometric data under India’s DPDP Act, GDPR Article 9, and Illinois BIPA. Before the first frame is captured you need explicit, purpose-specific consent. You also need a retention period you have chosen, a way to honour deletion requests, and a documented list of sub-processors. This page explains what each law asks of an institution running proctored exams, and how the ProctorLink architecture is built to support those obligations. It is guidance, not legal advice: your regulator and counsel decide what applies to you.

Schedule a Demo

Why proctoring data is biometric data

A proctored exam does more than take a photo. To tell whether the person on camera is the registered candidate, ProctorLink derives a face template from each keyframe and matches it against a reference photo. That template, a mathematical representation of a face used to identify a specific person, is what the law treats as biometric data, and it is held to a higher standard than an ordinary photograph. The ProctorLink API reference states the position plainly: facial images are biometric data under India’s DPDP Act, GDPR Article 9, and similar laws, and you must obtain the candidate’s explicit consent before starting a session.

Because the classification attaches at the moment of capture, you cannot treat a frame as ordinary data and reclassify it later. The reference photo, every captured keyframe, and the match scores in the report are all biometric from the start. For what those frames can and cannot actually establish, read what browser-based proctoring can and cannot detect, and for how the match becomes a verdict, read how to design an exam integrity score.

Which laws apply, and what each one asks

Three regimes cover most proctoring deployments. They overlap but are not identical, and which ones apply depends on where your candidates sit the exam, not where your servers are. A single exam with candidates in India, the EU, and Illinois has to satisfy all three at once, so scope your consent language and retention policy to the strictest regime that touches your cohort.

LawWho it coversHow it classifies face dataWhat it requires
India DPDP ActCandidates in IndiaFace data is personal data processed only on a lawful basis, normally consent.Consent before processing, purpose limitation, and honouring erasure requests.
GDPR Article 9Candidates in the EU/EEABiometric data for uniquely identifying a person is a special category.Processing is prohibited unless an Article 9(2) condition applies, usually explicit consent.
Illinois BIPACandidates in Illinois, USA face template is a biometric identifier.Informed written consent, a published retention and destruction schedule, and limits on disclosure. Statutory damages per violation.

BIPA is the one that most often surprises institutions: it carries a private right of action and statutory damages assessed per violation, which is why it drives the bulk of biometric-privacy litigation in the United States. If any candidate sits from Illinois, informed written consent and a published retention schedule are not optional.

Consent has to come before the first frame

Every one of these laws treats consent as the usual lawful basis for processing biometric data, and all of them want it before capture, not after. The trap is to lean on the browser’s camera permission prompt as if it were consent. It is not. A candidate clicking Allow grants the browser camera access; it records nothing about whether they understood what is collected, why, and for how long. That understanding is what consent means, and it is yours to obtain and to log.

In practice this means a consent step in your own flow, before you call start() on the SDK. Capture, and the face template, only begin once start() runs, so the consent gate sits cleanly in front of it.

// Legal consent is yours to collect and record, before capture begins.
// The camera permission prompt is not consent — it only grants access.
if (!candidate.hasGivenBiometricConsent) {
  return showConsentScreen();   // explain what, why, how long; record the answer
}

const session = ProctorLink.createSession({ jwt, sessionId });
await session.start();   // first frame — and the face template — only after consent

Keep a record of the consent you collected, tied to the same attempt. If a candidate declines, do not start the session. For how a session is minted and run end to end, see proctoring SDK vs API vs LMS plugin.

Collect less: data minimisation by design

The cheapest biometric data to govern is the data you never collected. Two choices at integration time cut how much personal data leaves the candidate’s browser. First, the external_user_id you send when minting a session is opaque to ProctorLink, so pass an internal identifier you already hold rather than a name or an email. The report then ties back to a candidate through your records, not through identifying data sitting in ours.

// On your backend. Keep candidate identity out of ProctorLink
// by sending an opaque ID you already hold, never a name or email.
POST /v1/sessions
access-token: <YOUR_ACCESS_TOKEN>
secret-token: <YOUR_SECRET_TOKEN>
content-type: application/json

{
  "external_user_id": "user-9f3c1a",        // your internal ID, opaque to us
  "exam_id": "math-101-final",
  "attempt_id": "attempt-789",
  "allowed_origins": ["https://exams.yourcompany.com"]
}

Second, the capture model is already minimal. ProctorLink records keyframes on an interval, one per minute by default, rather than a continuous video or audio stream, and those frames upload directly from the browser to object storage instead of passing through the API. You are storing periodic stills needed for identity checks, not hours of footage. That is a smaller, more defensible biometric footprint to retain and, when the time comes, to delete.

If you do supply a reference photo at mint, verify it then and there. An unusable photo, one with no clear single face, silently disables identity matching for the whole attempt, which leaves you holding a stored face template that is never actually used. Setting verify_reference_face rejects it at mint so nothing unusable is kept.

// If you supply a reference photo, verify it at mint.
// An unusable photo silently disables identity matching otherwise,
// so you store a face template that is never used.
{
  "external_user_id": "user-9f3c1a",
  "attempt_id": "attempt-789",
  "reference_image_base64": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ...",
  "verify_reference_face": true   // 400 if no single clear face; nothing stored
}

Retention, deletion, and sub-processors: who owns what

Collecting biometric data lawfully is the start; what you do with it afterwards is the rest. Three obligations sit with you as the institution running the exam, and the architecture is built to support each. Retention is configurable, and ProctorLink supports deletion on request, but the period you choose and the deletion requests you honour are decisions you own, scoped to your regulator and your appeals window.

ObligationWhat you must doHow the architecture supports it
Explicit pre-capture consentCollect and record consent before the first frame.Capture does not begin until you call start(); run your consent gate before it.
Data minimisationSend as little personal data as the exam needs.external_user_id is opaque; keyframes (one per minute) replace continuous video; no audio or video stream.
Set a retention periodChoose and document how long frames and templates are kept.Retention is configurable. Specifics are set with sales, not asserted here.
Honour deletion requestsAct on a candidate's erasure request.ProctorLink supports deletion on request; route the specifics through sales.
Document sub-processorsRecord who processes the data on your behalf.Frames upload direct to object storage; request the current sub-processor list and a DPA from sales.

One detail worth knowing for data handling: when you fetch the report, each evidence frame’s image_url is a short-lived signed URL, not a permanent link. Fetch or copy the image promptly rather than storing the URL, and treat the images you pull down as biometric data inside your own retention policy. For the specific retention options, a data processing agreement, and the current sub-processor list, talk to sales. This page does not assert certifications or a named data-residency region, because those are commitments that belong in a contract, confirmed in writing, not on a knowledge page.

Describe what was measured, not what you infer

Compliance is also about how you describe a result. Face analysis is probabilistic, so the report records frames where no face was detected, not “the candidate left the room”, and a low similarity score is a signal for review, not proof of impersonation. When you communicate a flagged session to a candidate or an exam board, mirror that language. An institution that overstates what the system knows invites both an unfair outcome and a challenge it cannot defend.

This restraint is the same reason the integrity verdict is built from what face analysis measured and weighted deliberately so ordinary browser activity cannot manufacture a flag. A candidate always has the right to contest a decision made about them, and your evidence has to survive that. Keep the frames, the match scores, and the reasons; present them as evidence for human review rather than as a verdict the machine handed down.

Common mistakes

  • Treating the camera prompt as consent. Clicking Allow grants browser access, not informed consent. Fix: collect explicit, purpose-specific consent in your own flow and record it before you call start().
  • Sending names or emails as the user ID. It puts identifying data where it does not need to be. Fix: pass an opaque internal identifier as external_user_id and resolve it to a candidate in your own records.
  • Leaving retention undefined. “Keep it indefinitely” is not a policy and fails under all three laws. Fix: choose a retention period scoped to your appeals window, document it, and configure it with sales.
  • Scoping only to GDPR when candidates sit from Illinois. BIPA’s per-violation statutory damages apply regardless of where you are based. Fix: scope consent and retention to the strictest regime your cohort touches.
  • Overstating what a flag proves. Reporting “the candidate cheated” from a probabilistic score invites a challenge you cannot win. Fix: report frames where no face was detected and match scores as evidence for human review.

How this fits a defensible deployment

The compliance picture and the technical design reinforce each other. Consent before start() gives you a lawful basis. An opaque external_user_id, keyframes instead of continuous video, and direct-to-storage uploads keep the biometric footprint small. A chosen retention period and deletion on request close the lifecycle. And describing findings as measured signals, reviewed by a human, keeps an outcome defensible if a candidate contests it.

For how these obligations play out in one jurisdiction in practice, including DPDP, read online exam proctoring in India. Across published deployments, ProctorLink has supported more than one million proctored exam sessions (methodology note below). Full cohort sizes and outcomes are on the case studies page.

What customers say on G2

Institutions evaluating proctoring tools often look for independent feedback outside vendor case studies. ProctorLink is listed on G2, where Moodle administrators and training teams share verified product reviews.

Read ProctorLink reviews on G2 →

Frequently Asked Questions

Yes. A proctored exam captures facial images, and the face template derived from them to match a candidate against a reference photo is biometric data. That classification applies under India's DPDP Act, GDPR Article 9, and Illinois BIPA. It is the face template used for identification, not the raw snapshot alone, that triggers the strictest rules, so treat every captured frame and the reference photo as biometric from the moment of capture rather than something you can reclassify later.

Sources & references

Deployment statistics and product behaviour described in this guide link to the sources below.

Next steps

Want to see exactly what a session captures and stores before you write your consent and retention policy? Sign up at app.proctorlink.com to get your API keys, run a session, and read the report end to end.

More Proctoring Guides

Run Proctoring You Can Defend

Consent before capture, a small biometric footprint, a retention period you chose, and findings described as measured signals. See exactly what a session collects before you write your policy.