DGExams is a study tool for medical exam preparation. This policy explains what personal data it holds about you, who else processes it, where that processing happens, what it keeps in your browser, and how to get a copy of your data or have it deleted.
Who is responsible
DGExams is the controller of the personal data described here.
Questions, requests and complaints go to support@dgexams.com.
What we hold
- Your account — username, your password (stored only as a one-way cryptographic digest — not encrypted, because encryption can be reversed and this cannot), your email address if the account has one, and — if the account is ever suspended under the Terms — when and why.
- Your acceptance of these documents — which version of the Terms of Use and of this policy you accepted, and when.
- Your request for offers by email, if you made one — when you made it and the wording you agreed to.
- Your problem reports, if you send any from the app — what you wrote, when, and the page you sent each one from (see Problem reports).
- Your question bank — the material you upload or paste, the questions extracted from it, your own notes, and the file names it came from.
- Your study record — which questions you answered, your exam attempts, flags and tags.
- A usage log — one row per AI request: which feature, which model, how many tokens, how long it took and what it cost. It records no question content.
- Your settings — theme, display and exam preferences.
- Your own AI provider key, if you add one. It is encrypted before storage, and the key itself is never shown back to you or to anyone else; only its last four characters are kept readable, so you can recognise which key is set.
- Activity timestamps — when you last signed in and, updated at most once every 15 minutes, when you last used the app.
- Plan records — which plan your account is on, its billing period, a ledger of the AI processing allowance spent and granted, how much AI processing it used free in each period, and when its free week started.
- Payment records — for each payment: what you bought and for which period, the amount and currency, whether it went through, when you paid, our receipt number, the kind of payment method (such as mada or Visa), Tap's reference for the charge, any refund, and which versions of the Terms of Use, this policy and the Refund Policy were in force. Your card number, expiry date and security code never reach us, and a payment record holds no name, email address or network address of its own.
- Logs — our hosting provider keeps standard request logs, which include network addresses, to operate the service; our own application log records your account id for a few events, such as accepting these documents or deleting the account. Neither is used to profile you.
- Operator records — a record of each action our operators take, such as changing an account's plan or refunding a payment: who took it, what it was, the account, payment or problem report it touched, and when. We keep it for accountability and to answer disputes.
We do not ask for and do not want health information about you or anyone else. The medical content in your bank is study material, not patient data — please do not upload documents containing real patients' details.
Problem reports
If you send a report with Report a problem in the app, we keep what you wrote in it, the account it was sent from, when it was sent, and the page of the app you sent it from. The page is recorded only as its pattern — the app's main page, for instance — never as its full address or anything in it. A stored report holds nothing else from your device: no network address and no browser details.
We use a report only to understand the problem you describe and to fix it. Only our operators see reports, in DGExams's own administration pages. A report is not sent to an AI model or passed to anyone else: like the rest of your account, it is kept in our database, with our hosting provider (see Who else processes it, and where).
Our operators can mark a report seen, and remove the mark again. The mark records which operator made it and when; it changes nothing else about the report or how long it is kept.
We keep each report for 180 days from the day you send it, then delete it, whether or not it has been marked seen. If you delete your account before then, your reports are deleted with it. A nightly backup taken before the deletion keeps what it held until it expires, as described under How long we keep it.
Please do not put health information about yourself or a patient, or anyone else's personal data, in a report.
Why we hold it
To provide the service you asked for: to store your bank so it follows you between devices, to turn uploaded material into questions, to generate explanations, and to let you sign in and recover your account. To keep the service working: counting page views in aggregate, receiving error reports, and limiting abuse, as the sections below describe. And to run the plan your account is on. And, when you buy a plan, to take your payment, issue your receipt, handle refunds and disputes, and keep a record of the payment. And to email you our offers and deals, only if you ask for them (see Offers by email). And to read the problems you report from the app and fix them (see Problem reports).
Who else processes it, and where
DGExams is not self-contained. To do what it does, it sends data to the following processors. The business.sa seal's requests go to a server on a Saudi government domain, and we make no claim about where that server stores what it receives. Tap Payments has not stated the country where it holds what it receives, so we make no claim about that either (see its entry below). Every other processor below operates outside the Kingdom of Saudi Arabia:
- Anthropic (United States) — the text and page images of material you upload, so questions and explanations can be generated from it and sorted into topics. We ask Anthropic to run this processing on United States infrastructure specifically, rather than wherever happens to be fastest.
- Datalab (United States) — every PDF you upload is sent there whole, as a file, to be read. It is our primary text extractor rather than a fallback for scanned documents, so this happens on every upload, not only when a page resists reading.
- Resend (United States) — your email address, your username in some messages, and a verification code, when you register, reset a password or change your address, and, if you asked for them, offers.
- Railway (United States) — hosting for the application, its database, its object storage and the nightly database backups. This is where your account and your bank are stored at rest, along with any PDF awaiting background processing, stored figures, and the backups.
- Cloudflare — serves a PDF-reading script to your browser. It receives your IP address and browser details, and none of your content.
- business.sa — the Saudi Business Center's e-store verification service, which issued our seal. The seal appears in the footer of the home page. When that page loads, your browser fetches the seal's script from eauthenticate.saudibusiness.gov.sa; when the footer comes into view, or is about to, it fetches the seal's badge from the same server. That server receives what every such request carries: your IP address, your browser details, and our site's domain as the referrer. The seal's script also sends its own token, the page's language and the badge's position, and the seal's address carries that token, so the server can log it together with your IP address. The seal appears only on the home page, so its request also tells business.sa that someone loaded that page. We do not know how long that server keeps what it receives, you cannot opt out of it except by blocking the script or that host or by turning off JavaScript, and we cannot access or delete what it holds. It sends nothing you type, answer or do on DGExams, and no account details. Any cookie the badge sets is business.sa's, not ours.
- Tap Payments — when you buy a plan: your username, the verified email address on your account, the plan you are buying, the amount, and our reference for the payment. To pay, your browser is taken to Tap's own payment page, where you enter your card details; they go to Tap and never reach us. That page receives your IP address and browser details. What Tap itself keeps about a payment is set out in Tap's own privacy notice. Tap states that merchant data is held in its internal systems under the oversight of the Saudi Central Bank (SAMA). Tap has not stated the country where it is held.
Transfers outside the Kingdom
We make no claim either way about business.sa: the seal's requests go to a server on a Saudi government domain, and we do not know where that server stores what it receives. Nor do we make any claim either way about Tap Payments, since it has not stated the country where it holds what it receives (see Who else processes it, and where). Every other processor above means your personal data is transferred outside Saudi Arabia. We do this to provide the service to you — you cannot get questions out of a PDF without the file reaching the system that reads it — and, if you ask for them, to email you offers. We send the minimum needed for each purpose. We do not sell your data, and we do not use it for advertising beyond those offers.
Offers by email
DGExams emails its own offers and deals only to an account that has asked for them, by ticking the box at sign-up or in Settings → Account. Asking is optional, and this rests on your consent alone.
We keep that you asked, when, and the wording you agreed to, until you withdraw or delete your account.
You can withdraw at any time by unticking the box in Settings → Account, and any offers email we send will carry a link to stop them. Withdrawing stops offers only: mail about your account, such as verification codes and password resets, is still sent.
Site statistics and error reports
To see how the site is used, DGExams keeps a count of views of its public pages — the landing, sign-in and legal pages, never the app you use signed in or a share link. Each view records only the day, the page's path, the domain of the site that linked to us (if any), any campaign tags in the link you followed, and whether the page was shown at a phone, tablet or desktop width — a size class taken from the width of the page as shown, not from any device identifier. It stores no cookie, no identifier, no network address and no browser details, so it cannot tell one visitor from another. Our page counter sends nothing at all when your browser asks not to be tracked. This does not apply to the business.sa seal (see Who else processes it, and where), whose requests your browser sends to the seal's server even when your browser asks not to be tracked. The counts are kept for 400 days. They are ours alone: they are not shared and not used for advertising.
If the app runs into an error in your browser, it sends us a report. A report records the error message; where in our code it happened; the page it was on, recorded as the page's pattern rather than its exact address — a share link, for instance, is recorded only as the share page, never as the link itself — with any query string removed; the kind of error; and, for an error that arose while our server was rendering the page, a reference code our framework generates so we can find its line in our own log. Once stored, a report also carries when that error was first and last seen and how many times. Quoted text, email addresses, links' query strings and token-like strings are masked out of the message before it leaves your browser and again on our server, so that a report does not carry question text or bank content; it carries no account, network address or browser details either. Reports are kept for 30 days.
Limits against abuse
To protect the service, the accounts on it and the mailbox behind them, some requests are counted per network address — registering, asking for a code by email, and changing the address on your account. The address itself is never stored, in our database or in our own application log: it is held in the server's memory only as a keyed hash, a one-way code that only our server can produce, for up to 24 hours, and then dropped. It is used for nothing else.
Sign-up and code-request forms also carry automated checks that discard submissions made by bots. Those checks store nothing.
How long we keep it
Your account and bank are kept until you delete them, and a request for offers by email until you withdraw it or delete your account. Sign-in sessions end 30 days after sign-in and are then removed. An unverified sign-up, a password reset code and an email-change code each expire 15 minutes after the code is sent, and the expired rows are removed by the sweeps that follow.
Copies and derived data have their own clocks:
- Nightly backups of the whole database are kept for up to 30 days and then deleted. A backup is a fixed copy: it is not edited when you delete something, so what you deleted survives in it until that copy expires. Our hosting provider also keeps its own recovery copies of the database, for disaster recovery only.
- A PDF uploaded for background processing is kept, with its job record, for up to 7 days after the job finishes, then removed. When Re-consolidate sorts your questions on our server, the topic the AI chose for each question, and the list of your topic names it was shown, are kept for up to 7 days after the sort finishes, then removed. When Generate missing writes explanations on our server, the list of questions it was asked to explain, the name of the section it was started from, and how far it got, are kept for up to 7 days after it finishes, then removed.
- The usage log above is kept; deleting your account unlinks its rows from you.
- A payment record is kept for 10 years from the date of the payment, as the business record of the sale. Deleting your account does not delete it; it unlinks it from your account.
- Operator records are kept for a year from each action, then removed. One that names an account can remain for up to a year after that account is deleted.
- Problem reports you send from the app are kept for 180 days from the day each one is sent, then removed, whether or not an operator has marked them seen. Deleting your account removes them sooner.
- Shared-cache entries go 90 days after their last use, page-view counts after 400 days, error reports after 30 days, and the abuse-limit hashes within 24 hours, as the sections above say.
Your rights
- Get a copy — write to support@dgexams.com from the email address on your account, and we will send you your entire bank as a file within 30 days.
- Correct it — your bank, your notes, your email address and your password are editable in the app. The username is fixed once chosen.
- Delete it — Settings → Danger deletes your account, erasing your bank and every server-side copy of it kept for you, your shares, jobs and their uploaded PDFs, problem reports, plan records, settings and sessions, and clearing this browser's local copy and cache. Four things stay: the usage log rows above, kept but unlinked from you; the shared cache, which has no owner to search by; the record of any payment you made, kept for 10 years from the payment, unlinked from your account and with no card details; and any operator record naming your account, kept for a year from the action. A stored figure that another account also uploaded stays too, as theirs. A backup taken before the deletion keeps what it held until it expires, as described under how long we keep it.
- Withdraw consent — if you asked for offers by email, untick the box in Settings → Account at any time.
- Object, or ask us anything — write to support@dgexams.com.
The correction and deletion controls above are in the app itself, so you do not need to ask us to use them.
For anything else, write to support@dgexams.com and we will respond within 30 days.
If you are not satisfied with how your personal data is handled, you may complain to the Saudi Data & Artificial Intelligence Authority (SDAIA).
Changes
If this policy changes in substance, we update the date and version at the top, and the next time you open the app we ask you to read and accept the new version before you continue.