Patient نورة بنت عبدالله السبيعي, NID 1052338941, admitted at King Saud Medical City.
For Saudi organizations routing regulated text through frontier LLMs.
Patient Khalid Al-Otaibi, NID 1052338941, admitted 07 Shawwal 1446H, reachable at +966 50 221 8403.
PDPL and NCA controls require Saudi personal data to be processed inside the Kingdom. ChatGPT, Claude, and Gemini sit outside it. KINDI substitutes regulated identifiers with deterministic placeholders before the request crosses the border. The mapping is encrypted under your API key and unmasked in your client. The server stores nothing.
your application
Patient نورة … NID 1052338941 …
kindi.me
Patient PERSON_NAME_01 … NID NATIONAL_ID_01 …
your client
Reply restored locally under your API key.
hosted abroad
Same masked text. No citizen data crosses the border.
your application
kindi.me
hosted abroad
your client
Patient نورة بنت عبدالله السبيعي, NID 1052338941, admitted at King Saud Medical City.
Transfer to PERSON_NAME_01, IBAN SA44 2000 0001 2345 6789 1234; confirm to +966 50 221 8403.
Re: claimant PERSON_NAME_01, iqama 2391847562, filed 07 Shawwal 1446H.
Three steps. Detection runs on our side, masking is a deterministic substitution, and unmasking happens in your client.
Detection locates PII spans in the input: Saudi National IDs, Iqama, names in both scripts, IBANs, MRNs, dates, addresses, phones. You can scope a request to a subset of entity classes.
Each span is replaced by a stable placeholder. The mapping is encrypted client-side under a key derived from your API key and returned alongside the masked text. The server keeps no copy.
Your client decrypts the mapping with the same API key and substitutes the placeholders in the model’s response. The originals never leave your perimeter.
A single submission, marked, masked, and sealed. The same procedure described above, performed once on a sample case note. No request leaves your browser.
Patient أحمد بن سالم القحطاني, NID 1098234567, presented on 14 Ramadan 1446H. MRN KFMC-4429012. Reimbursement to IBAN SA03 8000 0000 6080 1016 7519.
Six entity classes detected by default. Pass classes on the request to scope detection to a subset.
| Class | AR | Examples | Placeholder form |
|---|---|---|---|
| PII | تعريف | Names in Latin or Arabic script, addresses on the Saudi national addressing system, telephones in E.164, email. | [P-…] · [A-…] · [T-…] |
| Identifiers | هوية | Saudi National ID (10-digit, leading 1), Iqama (leading 2), MRN, passport, CR (commercial registration). | [N-…] · [Iq-…] · [Pp-…] |
| PHI | صحي | Clinical content. Diagnoses, Hijri & Gregorian dates of service, facilities (KFMC, KFSH, NGHA, KAMC, JHAH). | [D-…] · [F-…] · [Dx-…] |
| Legal | قانوني | Parties to a matter (شركة, مؤسسة), jurisdictions, sums under dispute, dates of filing, CR numbers. | [Pty-…] · [J-…] · [§-…] |
| Financial | مالي | Saudi IBAN (SA-prefix, 24 chars), Tadawul tickers, account and policy numbers, sums in SAR. | [Acc-…] · [Pol-…] · [Sum-…] |
| Custodial | حفظ | Audit and chain-of-custody metadata. Who saw, when, under which key. | [Kh-…] · [Aud-…] |
Two endpoints over HTTPS, with a TypeScript SDK on top. Unmasking runs client-side; there is no /unmask endpoint by design.
One flat rate per thousand tokens, with a free daily quota. Pay only for what you mask. Prices in SAR, exclusive of VAT.
Evaluation
Production
Volume
Email
hello@kindi.me
support@kindi.me
Location
Riyadh, Kingdom of Saudi Arabia
Hours
Replies within one business day, Sunday through Thursday.