Shipping Documents API
Know exactly which documents every shipment needs.
Preview: these endpoints are not in the public API spec yet. What is described here is planned or in development, and is not available to call today.
A live check for this product is not on the site yet. These ones run real checks with no API key:
What it checks
The Shipping Documents API determines which shipping documents are required for any international freight shipment. It evaluates 11 rule dimensions — sanctions screening, transport mode, origin/destination country requirements, commodity category, value thresholds, trade agreements, pre-shipment inspection, and special flags — returning a prioritized, annotated list of required, conditional, and recommended documents. Built on U.S. DOC/ITA data, OFAC sanctions, EAR/ITAR regulations, IATA DGR, IMDG Code, and 40+ country-specific certification requirements.
- 11-dimension rules engine covering all major trade scenarios
- OFAC, EU, and UN sanctions screening (Dim 0) — blocks before document list
- Transport-mode-specific docs: AWB (air), B/L (ocean), Inland BOL (ground)
- Country-specific requirements: consular legalization, importer registration
- 13 commodity categories: hazmat, food, pharma, textiles, electronics, etc.
- Country × Commodity certifications: INMETRO, CCC, CE, SASO, EAC, NOM, RCM
- Trade agreement detection: USMCA, KORUS, CAFTA-DR, EU Single Market, bilateral FTAs
- U.S. EEI/AES filing threshold ($2,500 per Schedule B number)
- Special flags: L/C, Documentary Collection, ATA Carnet, dual-use, re-export, organic, radioactive
- Pre-Shipment Inspection (PSI) for ~40 countries
- Halal, Organic, Cold Chain, and Certificate of Free Sale support
- Responsible party and US export/import applicability on every document
Request and response
const API = "https://api.compliancegrid.ai";
const headers = { "x-api-key": process.env.CG_API_KEY!, "Content-Type": "application/json" };
const get = (path: string) => fetch(API + path, { headers }).then((r) => r.json());
const post = (path: string, body: unknown) => fetch(API + path, { method: "POST", headers, body: JSON.stringify(body) }).then((r) => r.json());
// Determine required documents for an export shipment
const docs = await get("/api/v1/required-documents/quick?origin=US&destination=SA&direction=export" +
"&transport_mode=ocean&commodity=food_agriculture&value_usd=50000&letter_of_credit=true");
console.log(docs.total_documents, docs.required_count);
console.log(docs.sanctions_warnings); // read these first
for (const doc of docs.documents) {
if (doc.priority === "required") {
console.log("[" + doc.document_code + "] " + doc.document_name);
console.log(" Issued by: " + doc.issuing_party);
console.log(" Reason: " + doc.reason);
}
}{
"origin_country": "US",
"destination_country": "SA",
"direction": "export",
"transport_mode": "ocean",
"commodity_category": "food_agriculture",
"applicable_trade_agreements": [],
"sanctions_warnings": [],
"total_documents": 14,
"required_count": 9,
"conditional_count": 4,
"recommended_count": 1,
"documents": [
{
"document_name": "Commercial Invoice",
"document_code": "CI",
"priority": "required",
"description": "Itemized list of goods with values, terms of sale, and parties.",
"reason": "Required for all international shipments.",
"issuing_party": "Exporter",
"responsible_party": "Shipper / Exporter",
"us_export_required": "Required",
"us_import_required": "Required",
"applicable_regulations": "UCC Article 2; CBP 19 CFR 141.86"
},
{
"document_name": "Halal Certificate",
"document_code": "HALAL",
"priority": "required",
"description": "Certification that food products comply with Islamic dietary law.",
"reason": "Saudi Arabia requires Halal certification for food imports.",
"issuing_party": "Accredited Halal Certification Body",
"responsible_party": "Third-Party Inspector",
"us_export_required": "Conditional",
"us_import_required": "N/A",
"applicable_regulations": "GSO 2055-1; SFDA Import Requirements"
}
],
"invoice_requirements": [
{ "rule": "Arabic translation", "details": "Saudi customs may require Arabic-language invoices." }
],
"prohibited_restricted_items": []
}Good to know
- Results are information for your review, not legal advice or a compliance determination. Your reviewer makes the final call.
- Every response carries its source and the list version, so the result can go in your audit file.
- The sandbox returns mock data and production returns live data. Build in the sandbox and switch your key to go live.