Export Compliance
Export License Determination
POST
/v1/compliance/export-license$0.05 per callDetermine if an export license is required under EAR, ITAR, or OFAC regulations.
Send an Idempotency-Key header to retry safely.
Request body
| Field | Type | Description |
|---|---|---|
| originCountryrequired | string | min length 2 · max length 3 |
| destinationCountryrequired | string | min length 2 · max length 3 |
| commodityDescriptionoptional | string | max length 2000 |
| hsCodeoptional | string | |
| eccnoptional | string | Export Control Classification Number |
| endUseoptional | string | max length 1000 |
| endUseroptional | string | max length 500 |
| usmlCategoryoptional | string | USML category if the item is a defense article, e.g. VIII(h) max length 30 |
| ddtcRegisteredoptional | boolean | Whether the exporter is registered with DDTC (22 CFR Part 122) |
| itarExemptionoptional | string | ITAR exemption relied on, e.g. 126.5 max length 60 |
Response fields
| Field | Type | Description |
|---|---|---|
| success | boolean | e.g. true |
| data | object | |
| data.id | string | e.g. eld_1c18bb4d68e6a63b |
| data.originCountry | string | e.g. US |
| data.destinationCountry | string | e.g. CN |
| data.commodityDescription | string | e.g. Industrial machine tools |
| data.hsCode | null | |
| data.eccn | string | e.g. EAR99 |
| data.eccnSource | string | e.g. defaulted_to_EAR99 |
| data.itar | object | |
| data.itar.applicable | boolean | e.g. false |
| data.itar.jurisdiction | string | e.g. BIS |
| data.itar.usmlCategory | null | |
| data.itar.ddtcAuthorizationRequired | boolean | e.g. false |
| data.itar.ddtcRegistrationRequired | null | |
| data.itar.exemptionClaimed | null | |
| data.itar.restrictedDestination | boolean | e.g. true |
| data.itar.notes | array | |
| data.determination | object | |
| data.determination.licenseRequired | boolean | e.g. false |
| data.determination.licenseType | string | e.g. NLR |
| data.determination.reason | string | e.g. Item classified as EAR99 to CN. No license required for most … |
| data.determination.applicableRegulations | array | |
| data.determination.licenseExceptions | array | |
| data.determination.prohibitions | array | |
| data.recommendations | array | |
| data.determinedAt | string | e.g. 2026-11-04T09:01:09.177Z |
| meta | object | |
| meta.requestId | string | e.g. eld_1c18bb4d68e6a63b |
| meta.timestamp | string | e.g. 2026-11-04T09:01:09.177Z |
| meta.processingTimeMs | number | e.g. 0 |
| meta.dataSource | object | |
| meta.dataSource.name | string | e.g. ComplianceGrid |
| meta.dataSource.provenance | string | e.g. computed |
Fields are read from a real response captured 2026-11-04, shortened. Optional fields may be absent in other responses.
Errors
- 400 invalid request
- 401 missing or bad key
- 403 not in your plan
- 429 rate limited, see Retry-After
- 402 payment required
- 5xx retry with backoff
Error bodies and codes are described in Error codes and troubleshooting.