Programmatically access document processing, tariff intelligence, and shipment management with OAuth 2.0 authentication and real-time webhooks.

TARIFF API
Look up duty rates, calculate landed cost, apply FTA programs, and retrieve Section 232, 301, and 122 duties for any HS code across 180+ countries — in milliseconds.

COVERAGE
180+
Countries Supported Globally
CLASSIFICATIONS
21,000+
HS Codes in Active Database
DUTY PROGRAMS
Sec 232 · 301 · 122
FTA · MFN · Preferential Rates
Four simple steps to integrate with Wove API
Contact your account manager to create OAuth credentials
Use client credentials flow to obtain bearer token
Include bearer token in Authorization header
Monitor rate limit headers in responses
// Request
curl -X POST https://api.wove.com/api/v1/external/oauth/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=YOUR_CLIENT_ID" \
-d "client_secret=YOUR_CLIENT_SECRET"
// Response
{
"access_token": "eyJhbGciOiJSUzI1NiIs...",
"token_type": "Bearer",
"expires_in": 3600
}Wove's API handles the document-heavy work that slows down freight operations — extracting structured data from commercial invoices, bills of lading, and packing lists, validating it across documents, and pushing status updates to your system in real time via webhooks. Integrate once and eliminate manual data entry across your entire shipment workflow.
AI extracts structured data from any shipping document — invoices, BOLs, packing lists — and cross-validates values across sources with confidence scoring.
Programmatically create, update, and manage shipment records with full container, package, and reference number support.
Get notified the moment extraction completes or validation status changes. HMAC-SHA256 signed payloads for secure, reliable event handling.
Trigger document processing and shipment updates directly from inbound email workflows. No manual handoff required.
// Complete shipment details with extracted document data
{
"id": "shp_abc123",
"shipmentNumber": "WOV240001",
"status": "validated",
"mode": "ocean",
"direction": "import",
"origin": {
"type": "port",
"code": "USLAX",
"name": "Los Angeles",
"country": "US"
},
"destination": {
"type": "port",
"code": "CNSHA",
"name": "Shanghai",
"country": "CN"
},
"referenceNumbers": [
{
"type": "booking_number",
"value": "BOOK123456",
"source": "extracted"
}
],
"containers": [
{
"id": "cnt_456",
"number": "MSKU1234567",
"type": "40HC",
"weight": 28500,
"weightUnit": "kg",
"sealNumbers": ["SEAL123"]
}
],
"documents": [
{
"id": "doc_789",
"type": "commercial_invoice",
"filename": "invoice.pdf",
"extractionStatus": "completed",
"validationStatus": "passed"
}
],
"validationItems": [
{
"id": "val_101",
"type": "container_weight",
"status": "validated",
"confidence": 0.95,
"extractedValue": "28,500 kg",
"sources": ["commercial_invoice", "packing_list"]
}
],
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-15T14:45:00Z"
}TRUSTED BY
Start with our API documentation or talk to a solutions engineer about your specific use case.