
Smart ID, front
The card most South Africans carry. Eight fields off the front face.
/api/v1/ocr/sa-id-smart-front
Six endpoints covering every South African identity document, plus any passport that follows the ICAO standard.
The card most South Africans carry. Eight fields off the front face.

{ "success": true, "documentType": "sa-id-smart-front", "confidence": "high", "data": { "surname": "MOKOENA", "names": "LERATO PRECIOUS", "sex": "F", "dateOfBirth": "1991-03-14", "idNumber": "9103140000088", "countryOfBirth": "RSA", "citizenshipStatus": "Citizen", "nationality": "RSA" }, "meta": { "processedAt": "2026-03-12T09:41:07.412Z", "latencyMs": 2614 }}Every endpoint returns the same envelope, so the parsing code you write once works for all of them. Fields that cannot be read come back as null rather than a guess.

The card most South Africans carry. Eight fields off the front face.
/api/v1/ocr/sa-id-smart-front

The reverse carries the card number and when it was issued.
/api/v1/ocr/sa-id-smart-back

The older green barcoded book. Still in wide circulation.
/api/v1/ocr/sa-id-greenbook

Vehicle codes, restrictions and the professional-driving expiry, alongside the identity fields.
/api/v1/ocr/sa-drivers-front

The barcode itself is encrypted and cannot be decoded. The printed fields can.
/api/v1/ocr/sa-drivers-back

Read through the ICAO Doc 9303 machine-readable zone, so it is not limited to South Africa.
/api/v1/ocr/passport
Send the image as multipart form data or base64 JSON. You get back the extracted fields, a confidence level of high, medium or low, and the real time the request took in meta.latencyMs.
curl -X POST https://jongaocr.co.za/api/v1/ocr/sa-id-smart-front \
-H "Authorization: Bearer $JONGA_TOKEN" \
-F "image=@id-card.jpg"Identity documents are the most sensitive thing your users will ever hand you. Jonga is built so that holding onto them is not possible rather than merely discouraged.
Images are never written to disk, object storage or a database. The buffer is discarded the moment extraction finishes.
We record the token, the endpoint, the status, the latency and the file size. Response payloads are never logged, not in traces and not in error reports.
API tokens are kept as SHA-256 hashes. The raw token is shown to you once, at creation, and never again.
Written for the Protection of Personal Information Act from the start. Every sub-processor we use is named on the privacy page.

Everyone in this category leads with one. Ninety-nine point something percent, measured on a set nobody outside the company has seen, on documents that are not yours.
We have not run that benchmark, so we are not going to quote it. What we can tell you is exactly what happens when a field is unreadable: it comes back as null, never as a guess, and the response carries a confidence level derived from how many fields came back empty.
Fifty requests a month are free, and every response reports its own real latency. Point it at your own documents and find out.
50 requests a month, 1 API token, and all six document types. No card, no call, no trial clock.
R0a month, indefinitely
The free tier runs on the same engine and the same accuracy as everything else. Nothing is held back to make you upgrade.
Paid plans are priced and specified, but billing is not switched on yet. Join the waitlist and you will be told the day it is, before anyone else.
If yours is not here, ask it. A person reads that inbox, usually within a business day.
Ask a questionYou can, and for one document type it is a reasonable afternoon. The work that follows is the part people underestimate: a prompt per document side, a schema per document, handling the cases where a field is genuinely unreadable rather than hallucinating one, image preprocessing so a phone photo does not blow your token budget, rate limiting, and never letting any of it touch a log. That is what is behind these endpoints.
Any passport that follows ICAO Doc 9303, which is the machine-readable standard essentially every country issues to. The two MRZ lines come back raw as well as parsed, so you can run the check digits yourself. The X gender marker is supported.
It returns null. Nothing is ever filled in by inference. The response also carries a confidence level of high, medium or low, which is derived from how many fields came back null, so a worn green book with an unreadable barcode will tell you so rather than quietly returning something plausible.
No. Images are processed in memory and the buffer is discarded once extraction completes. Nothing is written to disk or object storage. What is retained is request metadata: which token, which endpoint, the status, the latency and the file size.
Not today. The database and hosting run in EU and US regions, and every sub-processor is named on the privacy page. South African data residency is on the Enterprise roadmap rather than something we currently offer, and we would rather say so than imply otherwise.
No. Jonga reads what is printed on the document and returns it as structured data. It does not check that person against any government database, and it is not a fraud or liveness check. Pair it with a verification provider if that is what you need.
Create a token and make your first call in the next ten minutes.