Driving License Information
1 endpoint · Core API
What is it?
The Driving Licence (SARATHI) API provides access to the Ministry of Road Transport & Highways (MoRTH) SARATHI database — the central repository for all driving licences issued in India. Given a DL number and date of birth, it returns the complete DL record including licence details, holder biographical information, DL category coverages, PSV badges, and transaction history. Biometric photo and signature are included as base64-encoded strings.
Benefits
- Verify driving licence authenticity and current status
- Retrieve full holder biographical details and address
- Access all vehicle category coverages and their validity
- Includes biometric photo for visual identity confirmation
- Government-authoritative data from MoRTH SARATHI database
What you can do
Verify driving licences during driver onboarding, fleet management, logistics background checks, KYC workflows, insurance underwriting, and pre-employment screening for roles requiring valid DL.
Retrieve driving licence details by DL number and date of birth.
Returns full DL record from the MoRTH SARATHI database including licence details, holder biographical info, DL category coverages, PSV badges, and transaction history. Biometric image (photo and signature) is included as base64-encoded strings.
Returns 404 with the message "No driving licence data found." when the DL number and DOB combination is not found.
Request parameters:
→ dlNumber (required): Driving licence number, for example GJ0120130001960.
→ dob (required): Date of birth of the holder in yyyy-MM-dd format (for example 1990-10-05). This differs from the dd-MM-yyyy format of the driving licence verification API.
→ request_id (optional): Your own reference for the request.
A missing dlNumber or dob returns 400.
Source: Ministry of Road Transport & Highways (MoRTH) SARATHI database.
Headers
- X-API-KEYstringrequiredYour secret API key for the environment you are calling (Stage and Live use different keys).
- X-API-APP-IDstringrequiredThe App ID issued together with the key.
- Content-Typestringrequiredapplication/json
Body parameters
application/json- dlNumberstringrequiredRequired. Driving licence number, for example GJ0120130001960. The value is sent as you provide it, so send the number exactly as printed on the licence.nullabledefault GJ0120130001960
- dobstringrequiredRequired. Date of birth of the licence holder in yyyy-MM-dd format (for example 1990-10-05). Note that this differs from the dd-MM-yyyy format used by the driving licence verification API.nullabledefault 1990-10-05
- request_idstringoptionalOptional. Your own reference for the request. A new one is generated when omitted.nullable
Sample request body
Responses
200OK
- successbooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 200
- messagestringoptionalNo description.nullabledefault XXXXX
- dataobjectoptionalDriving-licence lookup response. `dldetobj` is null when the licence is not found. Field names are passed through from the issuing system unchanged — `transReqObj`, `psvBadgeissued`, `dlcovs`, `bioObj`, `dlobj`, `bioImgObj` — so the payload stays recognisable to anyone already reading that source.
1 field
- dldetobjarray<object>optionalNo description.nullable
Each item: 16 fields
- transReqObjarray<object>optionalNo description.nullable
Each item: 20 fields
- trRefLicvalidDtstringoptionalNo description.nullable
- trLLNostringoptionalNo description.nullable
- olaCodestringoptionalNo description.nullable
- trEntrydtstringoptionalNo description.nullable
- trServiceWithdrawnstringoptionalNo description.nullable
- trSlNointeger (int32)optionalNo description.nullable
- trCovAbbrstringoptionalNo description.nullable
- trCovCatgstringoptionalNo description.nullable
- trRefLictypestringoptionalNo description.nullable
- transCovDescstringoptionalNo description.nullable
- trStatusstringoptionalNo description.nullable
- trApplnointeger (int64)optionalNo description.nullable
- trCovcdinteger (int32)optionalNo description.nullable
- olaOffNamestringoptionalNo description.nullable
- trNamestringoptionalNo description.nullable
- trRefLicnostringoptionalNo description.nullable
- trAbbrstringoptionalNo description.nullable
- trVehRegNostringoptionalNo description.nullable
- trTrCdinteger (int32)optionalNo description.nullable
- trVisitNointeger (int32)optionalNo description.nullable
- dlTestarray<object>optionalNo description.
- dlEndorsementObjarray<object>optionalNo description.
- objectionsarray<object>optionalNo description.
- psvBadgeissuedarray<object>optionalNo description.nullable
Each item: 19 fields
- pbiEndorsetimestringoptionalNo description.nullable
- pbicovAbbrstringoptionalNo description.nullable
- pbiEndorsedtstringoptionalNo description.nullable
- pbiTokenIdstringoptionalNo description.nullable
- pbiCheckUsertokenstringoptionalNo description.nullable
- pbilicnostringoptionalNo description.nullable
- pbiDigeststringoptionalNo description.nullable
- pbiRemarksstringoptionalNo description.nullable
- pbiBadgeStatusstringoptionalNo description.nullable
- pbiIssauthstringoptionalNo description.nullable
- pbicovcdinteger (int32)optionalNo description.nullable
- pbiBadgenostringoptionalNo description.nullable
- pbiIssdtstringoptionalNo description.nullable
- usidinteger (int32)optionalNo description.nullable
- pbiDispIssDtstringoptionalNo description.nullable
- pbiapplnointeger (int64)optionalNo description.nullable
- pbiEndorseNostringoptionalNo description.nullable
- pbiSeqNointeger (int64)optionalNo description.nullable
- statusstringoptionalNo description.nullable
- dbLocstringoptionalNo description.nullable
- dlHzHillObjarray<object>optionalNo description.
- errorcdinteger (int32)optionalNo description.nullable
- dlCovHistObjarray<object>optionalNo description.
- dlcovsarray<object>optionalNo description.nullable
Each item: 32 fields
- dlBacklogCovEndtimestringoptionalNo description.nullable
- dcApplnointeger (int64)optionalNo description.nullable
- badgeIssuedAuthstringoptionalNo description.nullable
- dcCovStatusstringoptionalNo description.nullable
- dcInvcrgNostringoptionalNo description.nullable
- olacdstringoptionalNo description.nullable
- endouseridinteger (int32)optionalNo description.nullable
- covabbrvstringoptionalNo description.nullable
- dcIssuedtstringoptionalNo description.nullable
- olaNamestringoptionalNo description.nullable
- dbcImvNamestringoptionalNo description.nullable
- vecatgstringoptionalNo description.nullable
- dcReflicNostringoptionalNo description.nullable
- badgeNostringoptionalNo description.nullable
- veBadgeIssuestringoptionalNo description.nullable
- veShortdescstringoptionalNo description.nullable
- dcEndorsedtstringoptionalNo description.nullable
- dcEndorsetimestringoptionalNo description.nullable
- dcAuthDtstringoptionalNo description.nullable
- covIssueAuthCodestringoptionalNo description.nullable
- dcTokenIdstringoptionalNo description.nullable
- badgeIssuedtstringoptionalNo description.nullable
- dcCovcdinteger (int32)optionalNo description.nullable
- dcReflicTypestringoptionalNo description.nullable
- covIssuedtstringoptionalNo description.nullable
- dbcImvDesigstringoptionalNo description.nullable
- dcEndorseNostringoptionalNo description.nullable
- dcLicnostringoptionalNo description.nullable
- dcAuthNostringoptionalNo description.nullable
- covdescstringoptionalNo description.nullable
- dcInvrgdescstringoptionalNo description.nullable
- dlTestdatestringoptionalNo description.nullable
- bioObjobjectoptionalNo description.
73 fields
- bioPermSdNamestringoptionalNo description.nullable
- bioDigeststringoptionalNo description.nullable
- bioStayperiodPresentAddrstringoptionalNo description.nullable
- bioTempPinstringoptionalNo description.nullable
- bioBioidSearchstringoptionalNo description.nullable
- bioTempAdd2stringoptionalNo description.nullable
- bioTempAdd1stringoptionalNo description.nullable
- bioTokenIdstringoptionalNo description.nullable
- bioEndorsedtstringoptionalNo description.nullable
- bioTempAdd3stringoptionalNo description.nullable
- bioSwdLnamestringoptionalNo description.nullable
- bioRecGenesisstringoptionalNo description.nullable
- bioPermVillTownCdstringoptionalNo description.nullable
- bioIdentityMark1stringoptionalNo description.nullable
- bioIdentityMark2stringoptionalNo description.nullable
- bioUserIdstringoptionalNo description.nullable
- bioNatNamestringoptionalNo description.nullable
- bioQmQualcdstringoptionalNo description.nullable
- bioNprNostringoptionalNo description.nullable
- bioAadhaarNostringoptionalNo description.nullable
- bioGenderstringoptionalNo description.nullable
- bioPermDistCdstringoptionalNo description.nullable
- bioTempDistCdstringoptionalNo description.nullable
- bioPhoneNostringoptionalNo description.nullable
- bioTempVillTownCdstringoptionalNo description.nullable
- bioEndorsetimestringoptionalNo description.nullable
- bioFirstNamestringoptionalNo description.nullable
- bioMobileNostringoptionalNo description.nullable
- bioPermVillTownNamestringoptionalNo description.nullable
- bioOrganDonorstringoptionalNo description.nullable
- bioTempSdNamestringoptionalNo description.nullable
- bioBloodGroupnamestringoptionalNo description.nullable
- bioTempLocalstringoptionalNo description.nullable
- dobstringoptionalNo description.nullable
- bioPermLocTypestringoptionalNo description.nullable
- bioPermSdcodestringoptionalNo description.nullable
- fullAddressstringoptionalNo description.nullable
- bioDobstringoptionalNo description.nullable
- bioApplnointeger (int64)optionalNo description.nullable
- bioAadhaarNamestringoptionalNo description.nullable
- bioBioIdstringoptionalNo description.nullable
- bioEmailIdstringoptionalNo description.nullable
- bioPoliceStncdstringoptionalNo description.nullable
- bioPermPinstringoptionalNo description.nullable
- bioTempLocTypestringoptionalNo description.nullable
- biPhotostringoptionalNo description.nullable
- bioBirthplacestringoptionalNo description.nullable
- bioMiddleNamestringoptionalNo description.nullable
- bioPermDistNamestringoptionalNo description.nullable
- bioPermAdd3stringoptionalNo description.nullable
- bioTempVillTownNamestringoptionalNo description.nullable
- bioAltMobileNostringoptionalNo description.nullable
- bioPermAdd1stringoptionalNo description.nullable
- bioLastNamestringoptionalNo description.nullable
- bioPermAdd2stringoptionalNo description.nullable
- bioFullNamestringoptionalNo description.nullable
- bioGenderDescstringoptionalNo description.nullable
- bioPerDetAadhaarstringoptionalNo description.nullable
- bioSwdFnamestringoptionalNo description.nullable
- bioTempSdcodestringoptionalNo description.nullable
- bioQmQualdescstringoptionalNo description.nullable
- bioEndorsementNostringoptionalNo description.nullable
- bioApplicantCatgstringoptionalNo description.nullable
- bioSwdFullNamestringoptionalNo description.nullable
- bioTempDistNamestringoptionalNo description.nullable
- bioCitiZenstringoptionalNo description.nullable
- bioSwdMnamestringoptionalNo description.nullable
- bioBloodGroupstringoptionalNo description.nullable
- bioPermLocalstringoptionalNo description.nullable
- aadharAuthenticatedbooleanoptionalNo description.nullable
- bioDlnostringoptionalNo description.nullable
- phtstringoptionalNo description.nullable
- bioDependentRelationstringoptionalNo description.nullable
- idIdpIssuedpPojoarray<object>optionalNo description.
- dlobjobjectoptionalNo description.
58 fields
- enforceFromDatestringoptionalNo description.nullable
- dlLicnostringoptionalNo description.nullable
- dlDispatchStatusstringoptionalNo description.nullable
- omRtoFullnamestringoptionalNo description.nullable
- dlTokenIdinteger (int32)optionalNo description.nullable
- dlStateCodestringoptionalNo description.nullable
- enforceRemarkstringoptionalNo description.nullable
- dlIncChallanNostringoptionalNo description.nullable
- dlIssueauthstringoptionalNo description.nullable
- stateNamestringoptionalNo description.nullable
- dlBioIdstringoptionalNo description.nullable
- dlAuthNostringoptionalNo description.nullable
- dlNtValdtoDatestringoptionalNo description.nullable
- dlHzValdtoDtstringoptionalNo description.nullable
- dlLatestTrcodeinteger (int32)optionalNo description.nullable
- omOfficeTownnamestringoptionalNo description.nullable
- dlInvcrgNostringoptionalNo description.nullable
- dlAuthDtstringoptionalNo description.nullable
- dlIssuedtstringoptionalNo description.nullable
- dlHlValdtoDatestringoptionalNo description.nullable
- dlEndorsenostringoptionalNo description.nullable
- bioidstringoptionalNo description.nullable
- olacodestringoptionalNo description.nullable
- dlIncSourceTypestringoptionalNo description.nullable
- dlOldLicnostringoptionalNo description.nullable
- dlHzValdfrDtstringoptionalNo description.nullable
- dlIntermediateStagestringoptionalNo description.nullable
- dlIssueDatestringoptionalNo description.nullable
- enforceEndDatestringoptionalNo description.nullable
- dlSeqnostringoptionalNo description.nullable
- dlTrValdtoDtstringoptionalNo description.nullable
- dlRemarksstringoptionalNo description.nullable
- dlRecGenesisstringoptionalNo description.nullable
- dlNtValdfrDtstringoptionalNo description.nullable
- dlEndorsetimestringoptionalNo description.nullable
- dlHlValdtoDtstringoptionalNo description.nullable
- dlHzValdtoDatestringoptionalNo description.nullable
- dlEndorseAuthstringoptionalNo description.nullable
- dlStatusstringoptionalNo description.nullable
- olaNamestringoptionalNo description.nullable
- statecdstringoptionalNo description.nullable
- dlUsidinteger (int32)optionalNo description.nullable
- dlEndorsedtstringoptionalNo description.nullable
- dlAuthIssauthstringoptionalNo description.nullable
- dlIssuedesigstringoptionalNo description.nullable
- omRtoShortnamestringoptionalNo description.nullable
- dlHlValdfrDtstringoptionalNo description.nullable
- dlTrValdtoDatestringoptionalNo description.nullable
- dlAuthCovstringoptionalNo description.nullable
- dlPrintDatestringoptionalNo description.nullable
- dlPrintStatusstringoptionalNo description.nullable
- dlApplnointeger (int64)optionalNo description.nullable
- dlDigeststringoptionalNo description.nullable
- dlIncRtoActionstringoptionalNo description.nullable
- dlRtoCodestringoptionalNo description.nullable
- dlTrValdfrDtstringoptionalNo description.nullable
- dlolaCodestringoptionalNo description.nullable
- dlNtValdtoDtstringoptionalNo description.nullable
- erormsgstringoptionalNo description.nullable
- bioImgObjobjectoptionalNo description.
25 fields
- biMinutiaCapturedThumbstringoptionalNo description.nullable
- biLminutiastringoptionalNo description.nullable
- biDigeststringoptionalNo description.nullable
- biEndorsetimestringoptionalNo description.nullable
- biConfirmCapturestringoptionalNo description.nullable
- biEndorsementNostringoptionalNo description.nullable
- biRightThumbstringoptionalNo description.nullable
- biPhotostringoptionalNo description.nullable
- biLeftThumbDatestringoptionalNo description.nullable
- biDlnostringoptionalNo description.nullable
- biLeftThumbstringoptionalNo description.nullable
- bdDevIdinteger (int32)optionalNo description.nullable
- biBioIdstringoptionalNo description.nullable
- biSignDatestringoptionalNo description.nullable
- biLtm19794stringoptionalNo description.nullable
- biRtm19794stringoptionalNo description.nullable
- biSignaturestringoptionalNo description.nullable
- biEndorsedtinteger (int64)optionalNo description.nullable
- biBioCapturedDtstringoptionalNo description.nullable
- biPhotoDatestringoptionalNo description.nullable
- biRminutiastringoptionalNo description.nullable
- biApplnointeger (int64)optionalNo description.nullable
- biusidinteger (int32)optionalNo description.nullable
- biRightThumbDatestringoptionalNo description.nullable
- biTokenIdinteger (int32)optionalNo description.nullable
- dlHistObjarray<object>optionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- isBillablebooleanoptionalWhether this request was charged: true if it was, false if not. Errors always show false. Flows that finish later (ITR Fetch, SHCIL eStamp, DigiLocker, eSign) show false here, because the charge is made when the result is ready. eSign charges each signer when they complete signing. DigiLocker deducts the credit when the link is created and refunds it automatically if the link expires before the user completes it.
400Bad Request
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 400
401Unauthorized
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 401
500Internal Server Error
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 500