Install
$ agentstack add skill-deepread-tech-skills-id-documents ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
DeepRead ID Documents
Read passports, driver's licenses, and national ID cards — scans or phone photos — into clean, typed JSON for KYC and customer onboarding: name, document number, dates of birth/issue/expiry, and nationality. Every field carries a needs_review flag, because in identity verification, a confident-but-wrong character matters.
> Use responsibly. Only process identity documents you are authorized to handle, for legitimate KYC/onboarding/verification purposes, with the document holder's knowledge and applicable consent. This skill POSTs the document to https://api.deepread.tech and polls for results. No system files are modified. Review DeepRead's privacy policy for data handling.
What You Get Back
{
"schema_version": "dp02",
"status": "completed",
"extraction": {
"fields": [
{"key": "document_type", "value": "Passport", "needs_review": false, "location": {"page": 1}},
{"key": "full_name", "value": "PRIYA NAIR", "needs_review": false, "location": {"page": 1}},
{"key": "document_number", "value": "P1234567", "needs_review": true, "review_reason": "Glare on character 3", "location": {"page": 1}},
{"key": "date_of_birth", "value": "1992-07-14", "needs_review": false, "location": {"page": 1}},
{"key": "expiry_date", "value": "2031-05-02", "needs_review": false, "location": {"page": 1}},
{"key": "nationality", "value": "IND", "needs_review": false, "location": {"page": 1}},
{"key": "issuing_country", "value": "IND", "needs_review": false, "location": {"page": 1}}
]
}
}
Setup
open "https://www.deepread.tech/dashboard/?utm_source=clawhub"
export DEEPREAD_API_KEY="sk_live_your_key_here"
Schema
{
"type": "object",
"properties": {
"document_type": {"type": "string", "description": "Passport, Driver's License, National ID, etc."},
"full_name": {"type": "string", "description": "Full name as printed"},
"document_number":{"type": "string", "description": "Document / license number"},
"date_of_birth": {"type": "string", "description": "Date of birth (YYYY-MM-DD)"},
"issue_date": {"type": ["string","null"], "description": "Issue date (YYYY-MM-DD)"},
"expiry_date": {"type": ["string","null"], "description": "Expiry date (YYYY-MM-DD)"},
"nationality": {"type": ["string","null"], "description": "Nationality (ISO 3-letter if shown)"},
"issuing_country":{"type": ["string","null"], "description": "Issuing country / authority"},
"sex": {"type": ["string","null"], "description": "Sex/gender if printed"}
}
}
Extract + Expiry Check (Python)
import datetime
fields = {f["key"]: f["value"] for f in result["extraction"]["fields"]}
# Flag expired or soon-to-expire IDs
exp = fields.get("expiry_date")
if exp:
days = (datetime.date.fromisoformat(exp) - datetime.date.today()).days
if days < 0: print("⚠ EXPIRED document — reject")
elif days < 90: print(f"⚠ expires in {days} days")
# Route low-confidence fields (glare, worn print) to manual review
for f in result["extraction"]["fields"]:
if f.get("needs_review"):
print(f"REVIEW {f['key']}: {f.get('review_reason')}")
Use Cases
- KYC / customer onboarding — auto-fill identity fields from an uploaded ID
- Age / expiry verification — confirm DOB and that the document is valid
- Account recovery / fraud ops — structured ID data for verification workflows
- Travel / hospitality check-in — capture passport details quickly
Store Compliantly — Redact the Image
After extracting the fields you need, redact the raw ID image before archiving or sharing, so you're not storing full identity documents in the clear:
curl -X POST https://api.deepread.tech/v1/pii/redact -H "X-API-Key: $DEEPREAD_API_KEY" -F "file=@id.jpg"
Install: clawhub install uday390/deepread-pii
Tips
- Photos work — vision AI handles phone captures, but flat, glare-free, well-lit images extract best.
- Expect
needs_reviewon worn cards/glare — that's the feature; verify those manually. - Don't store more than you need — extract the minimum fields and redact the source.
Related DeepRead Skills
- deepread-form-fill — fill onboarding forms from extracted ID data —
clawhub install uday390/deepread-form-fill - deepread-pii — redact identity documents —
clawhub install uday390/deepread-pii - deepread-ocr — general extraction —
clawhub install uday390/deepread-ocr
Support
- Dashboard: https://www.deepread.tech/dashboard
- Email: support@deepread.tech
Get started free: https://www.deepread.tech/dashboard/?utm_source=clawhub
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: deepread-tech
- Source: deepread-tech/skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.