Overview
The Documents API lets partners securely retrieve the documents associated with an applicant — CDL licenses, consent forms, background reports, MVR, PSP, Clearinghouse queries, medical certificates, onboarding paperwork, and the applicant's completed, signed DOT application (category DOT_APP).
Partners typically call this API after receiving an Applicant Status Webhook (for example when an applicant is moved to onboarding or reaches HIRED) to download or sync documents into an internal system.
For authentication, environments, and error conventions shared by all endpoints, see "Double Nickel API: Getting Started & Creating Applicants". This endpoint requires the read:documents scope on your credential.
Endpoint
This endpoint uses the GET method with query-string parameters. (Earlier versions of this documentation showed POST /documents — the endpoint only accepts GET and responds 405 method_not_allowed to anything else.)
GET https://dashboard.getdoublenickel.com/api/documents?applicantId=<applicantId>&companyId=<companyId>&limit=20&offset=0
Query parameters
Name | Type | Required | Description |
| string | Yes | Applicant ID received from a webhook or API (10–100 characters) |
| string | Yes | Your Double Nickel company identifier (10–100 characters) |
| integer | No | Max records to return, 1–100. Default: 20 |
| integer | No | Starting index for pagination. Default: 0 |
Request headers
Header | Value |
|
|
|
|
|
|
Successful response (200)
{
"items": [
{
"documentId": "8c2d4f6a-1e3b-4d5c-9a7f-0b2e4c6d8f1a",
"fileName": "CDL_License.pdf",
"category": "CDL",
"expirationDate": "2027-10-27T00:00:00.000Z",
"createdAt": "2026-08-27T15:12:22.145Z",
"updatedAt": "2026-08-27T15:15:32.145Z",
"downloadUrl": "https://cdn.getdoublenickel.com/company/.../CDL_License.pdf?Expires=...&Signature=...&Key-Pair-Id=..."
},
{
"documentId": "1e3b4d5c-9a7f-0b2e-4c6d-8f1a8c2d4f6a",
"fileName": "MVR_Report.pdf",
"category": "MVR",
"expirationDate": null,
"createdAt": "2026-08-26T09:41:03.812Z",
"updatedAt": "2026-08-26T09:41:03.812Z",
"downloadUrl": "https://cdn.getdoublenickel.com/company/.../MVR_Report.pdf?Expires=...&Signature=...&Key-Pair-Id=..."
}
],
"totalCount": 23,
"pagination": {
"limit": 20,
"offset": 0,
"hasMore": true
}
}Field reference
Field | Type | Description |
| string | Unique identifier for the document |
| string | Original uploaded file name (may be an empty string) |
| string | Document category — see the full list below |
| ISO datetime or null | Null unless the document type has an expiration |
| ISO datetime | When the document was uploaded |
| ISO datetime | Last update timestamp |
| string | Signed, time-limited URL for downloading the file. In rare cases where the underlying file is unavailable this is an empty string — skip those items and contact support. |
| integer | Total number of documents for the applicant |
| integer | Max documents returned in this page |
| integer | Starting index of this page |
| boolean | Whether additional pages are available |
Results are sorted newest first (by createdAt descending). Only active documents are returned — archived and deleted documents are excluded.
Downloading files
The downloadUrl is a short-lived signed CloudFront URL:
URLs expire 5 minutes after the API response is generated.
They can be used directly in a browser or HTTP client — no additional authentication header is needed on the download request itself.
Do not store them long-term. Download promptly after fetching the list, and re-fetch the document list to get fresh URLs if they expire.
Document categories
The category field is always one of the values below. Categories shown under Settings → Document Templates in the dashboard only reflect the categories you have configured templates for — the API may return any value in this list.
Value | Description |
| DOT employment application (including the completed, signed application PDF) |
| Motor Vehicle Record |
| Pre-employment Screening Program report |
| Background check report |
| FMCSA Drug & Alcohol Clearinghouse query |
| Commercial Driver's License |
| Commercial Driver's License Information System record |
| DOT medical card |
| Verification of Employment (VOE) |
| Drug and alcohol test results |
| Medical examination report |
| General onboarding paperwork |
| Orientation documents |
| Employee handbook |
| Consent forms |
| Road test certificate |
| Transportation Worker Identification Credential |
| Visa documentation |
| Free and Secure Trade card |
| Mexican Gafete Único |
| ANAM (Mexican customs) credential |
| Mexican INE identity card |
| DAC (HireRight) employment history report |
| Vehicle or driver inspection record |
| Job offer letter |
| Benefits enrollment documents |
| Payroll documents |
| Disciplinary action records |
| Training records or certificates |
| Equipment assignment or acknowledgment |
| Document that doesn't fit any other category |
New category values are occasionally added as new document types are supported. Handle unknown values gracefully — for example by routing them to a default or OTHER bucket — rather than failing.
Error responses
HTTP status | Error code | Example message |
400 |
| Applicant ID is required. |
400 |
| Limit must be between 1 and 100. |
401 |
| The authorization token is not valid. |
403 |
| You do not have permission to access this resource. (missing |
404 |
| Applicant not found. |
405 |
| Method POST not allowed. Only GET is supported. |
500 |
| Error processing request. |
Typical flow with webhooks
Receive an Applicant Status Webhook notification.
Extract
applicantIdandcompanyIdfrom the payload.Call
GET /documents(paginating withlimit/offsetuntilhasMoreis false).Download the files you need via the signed URLs, promptly.
Store or process them internally.
Questions or need help?
Contact the Double Nickel support team at [email protected].
