us_state_idUS state ID card
Non-driver ID cards issued by state agencies: AAMVA barcode, expiry and age.
- Category
- Identity
- Country
- United States
- Extracted fields
- 23 fields
- Cost
- 1 credit
us_state_idspecimen- Document number
- Issuing state
- First name
- Middle name
- Last name
- Name suffix
- Date of birth
- Issue date
- Expiry date
State ID cards are issued by the same agencies as driver licenses and carry the same AAMVA barcode. Constaia reads them with the same rules, so you can accept either one in a single expect.
- Pass ["us_driver_license", "us_state_id"] in expect when both are acceptable.
- The REAL ID marking is returned as real_id_compliant. You do not need it for age or identity checks unless your process requires it.
What it checks
- PDF417 barcode (AAMVA). The back is decoded and compared with the front.
- National identifiers. Official checksum or format of the number (NIF, CPF, CURP, RUT, SSN…).
us_dl, us_zip - Postal code. Postal code format of the country.
- Holder. Name, number or date of birth match what you expect.
- Age. Minimum or maximum age from the date of birth.
- Validity. Not expired on the reference date.
- Form I-9. Whether the document belongs to list A, B or C.
B
Extracted fields
- Document number
document_number - Issuing state
issuing_state - First name
first_name - Middle name
middle_name - Last name
last_name - Name suffix
name_suffix - Date of birth
birth_date - Issue date
issue_date - Expiry date
expiry_date - Sex
sex - Height
height - Weight
weight - Eye color
eye_color - Hair color
hair_color - Address
address - Postal code
postal_code - REAL ID compliant
real_id_compliant - Dd
dd - Organ donor
organ_donor - Veteran
veteran - Under 21 until
under_21_until - Federal limits apply
federal_limits_apply - Barcode data
barcode_data
Sample request
curl https://api.constaia.com/v1/analyze \
-H "Authorization: Bearer $CONSTAIA_API_KEY" \
-F "file=@us_state_id_specimen.jpg" \
-F 'options={
"expect": "us_state_id",
"checks": {
"not_expired": true,
"min_age_years": 18
},
"storage": "none"
}'Try it for free with a ck_test_ key and the file us_state_id_specimen.jpg.
Sample response
Fictitious data. Shortened response.
200 OK · application/json
{
"id": "an_01J9Z3K8QW4T6Y2B7N5M1R0PXC",
"object": "analysis",
"status": "completed",
"livemode": false,
"document": {
"type": "us_state_id",
"label": "US state ID card",
"confidence": 0.97
},
"verdict": {
"expected": [
"us_state_id"
],
"match": true,
"status": "valid",
"reasons": [
{
"code": "type_match",
"severity": "info",
"message": "The document is: US state ID card."
}
]
},
"fields": {
"document_number": {
"value": "123 456 789",
"confidence": 0.99,
"validated": true
},
"first_name": {
"value": "TAYLOR",
"confidence": 0.98,
"validated": null
},
"last_name": {
"value": "SAMPLE",
"confidence": 0.97,
"validated": null
},
"birth_date": {
"value": "1988-11-21",
"confidence": 0.96,
"validated": null
},
"sex": {
"value": "F",
"confidence": 0.99,
"validated": null
},
"issuing_state": {
"value": "NY",
"confidence": 0.98,
"validated": null
},
"issue_date": {
"value": "2024-02-02",
"confidence": 0.97,
"validated": null
},
"expiry_date": {
"value": "2032-11-21",
"confidence": 0.96,
"validated": null
},
"real_id_compliant": {
"value": true,
"confidence": 0.99,
"validated": null
}
},
"checks": [
{
"code": "aamva_barcode_matches_front",
"passed": true,
"message": "The PDF417 barcode matches the front."
},
{
"code": "not_expired",
"passed": true,
"message": "Valid on the reference date."
},
{
"code": "min_age_years",
"passed": true,
"message": "The holder meets the minimum age."
}
],
"warnings": [],
"storage": {
"mode": "none",
"file_deleted_at": "2026-09-29T10:00:02Z",
"expires_at": null
},
"usage": {
"credits": 1,
"pages": 2
}
}FAQ
Does Constaia prove the document is authentic?
No. It checks the type, data consistency and your rules, and flags signals such as a possible edit or a screen photo. That does not prove authenticity.
Is a copy of the document kept?
No, unless you ask for it. With storage "none" (the default) the file is deleted when the analysis ends.
Other documents
And for the record…
Create your account, copy the test key and validate your first document in five minutes.