{ "info": { "name": "ID OCR Engine - HF Spaces", "description": "OCR microservice deployed on Hugging Face Spaces.\n\nSupports 3 document types:\n- SA Smart Card (sa_id_card)\n- SA Green Book (sa_id_book)\n- Passport (passport)\n\nSet the `base_url` variable to your HF Space URL.", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" }, "variable": [ { "key": "base_url", "value": "https://itkes-id-ocr-engine.hf.space", "type": "string" }, { "key": "api_key", "value": "", "type": "string", "description": "Leave empty if OCR_API_KEY is not set on the server" } ], "auth": { "type": "apikey", "apikey": [ { "key": "key", "value": "X-API-Key", "type": "string" }, { "key": "value", "value": "{{api_key}}", "type": "string" }, { "key": "in", "value": "header", "type": "string" } ] }, "item": [ { "name": "Health & Status", "item": [ { "name": "Health Check", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/health", "host": ["{{base_url}}"], "path": ["health"] }, "description": "Check if the service is healthy. No auth required." } }, { "name": "Warm Up Models", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/warm", "host": ["{{base_url}}"], "path": ["warm"] }, "description": "Warm up VLM, PaddleOCR, and MRZ models. Call before first OCR request to avoid cold start. No auth required." } }, { "name": "Dashboard (HTML)", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/", "host": ["{{base_url}}"], "path": [""] }, "description": "Load the web dashboard UI." } } ] }, { "name": "OCR - SA Smart Card", "item": [ { "name": "SA Smart Card - Front Only", "request": { "method": "POST", "header": [], "body": { "mode": "formdata", "formdata": [ { "key": "front", "type": "file", "src": "", "description": "Front of SA smart card (required)" }, { "key": "doc_type", "value": "sa_id_card", "type": "text" } ] }, "url": { "raw": "{{base_url}}/api/ocr", "host": ["{{base_url}}"], "path": ["api", "ocr"] }, "description": "Process front of SA smart card. Returns: id_number, surname, names, date_of_birth, sex, nationality, country_of_birth, citizenship_status." } }, { "name": "SA Smart Card - Front + Back", "request": { "method": "POST", "header": [], "body": { "mode": "formdata", "formdata": [ { "key": "front", "type": "file", "src": "", "description": "Front of SA smart card (required)" }, { "key": "back", "type": "file", "src": "", "description": "Back of SA smart card with PDF417 barcode (optional)" }, { "key": "doc_type", "value": "sa_id_card", "type": "text" } ] }, "url": { "raw": "{{base_url}}/api/ocr", "host": ["{{base_url}}"], "path": ["api", "ocr"] }, "description": "Process front + back of SA smart card. Back image provides PDF417 barcode for 100% accurate extraction. Returns barcode_data in response." } } ] }, { "name": "OCR - SA Green Book", "item": [ { "name": "SA Green Book", "request": { "method": "POST", "header": [], "body": { "mode": "formdata", "formdata": [ { "key": "front", "type": "file", "src": "", "description": "Front page of SA green ID book (required)" }, { "key": "doc_type", "value": "sa_id_book", "type": "text" } ] }, "url": { "raw": "{{base_url}}/api/ocr", "host": ["{{base_url}}"], "path": ["api", "ocr"] }, "description": "Process SA green ID book. No back image accepted (green books have no barcode). Returns: id_number, surname, names, date_of_birth, sex, nationality, country_of_birth, citizenship_status." } } ] }, { "name": "OCR - Passport", "item": [ { "name": "Passport", "request": { "method": "POST", "header": [], "body": { "mode": "formdata", "formdata": [ { "key": "front", "type": "file", "src": "", "description": "Passport photo page (required)" }, { "key": "doc_type", "value": "passport", "type": "text" } ] }, "url": { "raw": "{{base_url}}/api/ocr", "host": ["{{base_url}}"], "path": ["api", "ocr"] }, "description": "Process passport (any country). Uses MRZ + VLM extraction. Returns: passport_number, surname, given_names, date_of_birth, sex, nationality, expiry_date, issuing_country. SA passports also return id_number." } } ] }, { "name": "Error Cases", "item": [ { "name": "Missing doc_type", "request": { "method": "POST", "header": [], "body": { "mode": "formdata", "formdata": [ { "key": "front", "type": "file", "src": "" } ] }, "url": { "raw": "{{base_url}}/api/ocr", "host": ["{{base_url}}"], "path": ["api", "ocr"] }, "description": "Should return 400: doc_type is required." } }, { "name": "Invalid doc_type", "request": { "method": "POST", "header": [], "body": { "mode": "formdata", "formdata": [ { "key": "front", "type": "file", "src": "" }, { "key": "doc_type", "value": "drivers_license", "type": "text" } ] }, "url": { "raw": "{{base_url}}/api/ocr", "host": ["{{base_url}}"], "path": ["api", "ocr"] }, "description": "Should return 400: Invalid doc_type." } }, { "name": "Back image with non-sa_id_card", "request": { "method": "POST", "header": [], "body": { "mode": "formdata", "formdata": [ { "key": "front", "type": "file", "src": "" }, { "key": "back", "type": "file", "src": "" }, { "key": "doc_type", "value": "passport", "type": "text" } ] }, "url": { "raw": "{{base_url}}/api/ocr", "host": ["{{base_url}}"], "path": ["api", "ocr"] }, "description": "Should return 400: Back image is only accepted for doc_type=sa_id_card." } }, { "name": "No image uploaded", "request": { "method": "POST", "header": [], "body": { "mode": "formdata", "formdata": [ { "key": "doc_type", "value": "sa_id_card", "type": "text" } ] }, "url": { "raw": "{{base_url}}/api/ocr", "host": ["{{base_url}}"], "path": ["api", "ocr"] }, "description": "Should return 400: No front image uploaded." } }, { "name": "Legacy 'file' key (backwards compat)", "request": { "method": "POST", "header": [], "body": { "mode": "formdata", "formdata": [ { "key": "file", "type": "file", "src": "", "description": "Legacy key name — treated as 'front'" }, { "key": "doc_type", "value": "sa_id_card", "type": "text" } ] }, "url": { "raw": "{{base_url}}/api/ocr", "host": ["{{base_url}}"], "path": ["api", "ocr"] }, "description": "Test backwards compatibility: 'file' key is accepted as alias for 'front'." } } ] } ] }