Zemlo AI – Logistics Signal API
Carrier-neutral logistics intelligence for AI agents and developers.
No noise. Just the signal.
Status: Live & Operational
Core Endpoint
GET https://zemloai-api.onrender.com/signal
No API key. No signup. No sales call.
Parameters
| Parameter | Required | Description |
|---|---|---|
from |
✅ | Origin city or country |
to |
✅ | Destination city or country |
cargo |
optional | Cargo description |
weight |
optional | Weight in kg (default: 500) |
Quick Start
curl:
curl "https://zemloai-api.onrender.com/signal?from=Helsinki&to=Manila&cargo=Electronics&weight=5"
Python:
import requests
r = requests.get("https://zemloai-api.onrender.com/signal", params={
"from": "Helsinki",
"to": "Manila",
"cargo": "Electronics",
"weight": 5
})
print(r.json())
JavaScript:
fetch("https://zemloai-api.onrender.com/signal?from=Helsinki&to=Manila&cargo=Electronics&weight=5")
.then(res => res.json())
.then(console.log);
Response Format
{
"signal": {
"price_estimate": "401 - 451 EUR",
"price_source": "live",
"currency": "EUR",
"transport_mode": "Air",
"trust_score": 75,
"risk_level": "Med",
"hazardous_flag": false,
"customs_required": true,
"carriers_available": [
"UPS UPS Expedited — 400.75 EUR (6d)",
"UPS UPS Worldwide Saver — 450.95 EUR (1d)"
],
"hidden_costs": [
"Fuel surcharge",
"Customs duties Philippines",
"Terminal handling charges"
]
},
"do_these_3_things": [
"Verify HS codes for customs clearance",
"Obtain cargo insurance",
"Prepare commercial invoice"
],
"metadata": {
"engine": "Zemlo AI v1.1",
"price_source": "live",
"latency_sec": 5.3
}
}
price_source: "live" — real carrier rates from ShipEngine.
price_source: "estimate" — AI fallback when live rates unavailable.
HTTP Status Codes
| Status | Meaning |
|---|---|
200 | Success |
400 | Invalid or missing parameters |
429 | Rate limit exceeded (20 req/min per IP) |
451 | Route blocked — trade sanctions apply |
503 | AI engine unavailable — retry |
For AI Agents
- Zero friction — no authentication required
- JSON-first — structured, predictable, typed
- Carrier-neutral — no carrier pays for better placement
- Honest —
price_sourcetells you exactly where data comes from - Safe — sanctions shield blocks restricted routes at HTTP 451
Full documentation: github.com/zemloai-ctrl/zemloai-api
Zemlo AI does not promise perfect prices. It promises better situational awareness than a guess.
Last updated: March 2026