Tools
Public tools API
Every tool on this site can also be called over HTTP GET: same calculation engine, JSON response, no signup, no API key and nothing stored. Built for light integrations, spreadsheets and scripts.
Limits
| Requests | 60 per minute per IP, across all endpoints (/health does not count) |
|---|---|
| Price and key | Free, no API key, no signup |
| HS codes | limit 1–100 rows per request (default 25) |
| Load planner | up to 600 units per request |
| Headers | X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset on every response; HTTP 429 with Retry-After beyond the limit |
Need more, or a key for your company? Write to me via contact →
Endpoints
Parameters
piecesrequiredqty x length x width x height x weightPerPiece, “;”-separated. cm/kg (metric) or in/lb (imperial). e.g. 2x120x80x100x50;1x60x40x30x12unitoptionalmetric (default) | imperialstackableoptionaltrue (default) | false — affects LDMairDivisoroptionalair volumetric divisor, cm³/kg (default 6000)expressDivisoroptionalcourier DIM divisor (default 5000)seaEquivalenceoptionalsea W/M kg per m³ (default 1000)seaMinRevenueTonsoptionalLCL minimum W/M (default 1)roadDensityoptionalroad volumetric density kg/m³ (default 333)roadUseLdmoptionaltrue | false (default) — enable LDM basisroadKgPerLdmoptionalkg per loading metre (default 1750)
Example
curl "https://glauc.cat/api/tools/chargeable-weight?pieces=2x120x80x100x50&unit=metric"
Response (excerpt)
{ "ok": true, "data": { "result": { "totals": { "grossKg": 100, "volumeM3": 1.92 }, "results": [ { "mode": "air", "chargeableKg": 320, "chargeableRoundedKg": 320, "basis": "volume" }, … ] } } }Parameters
deliveryrequireddelivery date, YYYY-MM-DDcaseoptionaldamage (default) | totalLoss | other — Art. 32 start rulewilfuloptionaltrue → 3-year limitation (default false)excludedWeekdaysoptionalcomma list, 0=Sun … 6=Sat (default 0)holidaysoptionalcomma list of YYYY-MM-DD public holidaysholidayCountryoptionalES | PT | FR | DE | IT | BE | NL | PL — auto-adds national holidays of the delivery year and the next oneagreedTimeLimitExpiryoptionaltotalLoss: agreed time-limit expirytakingOverDateoptionaltotalLoss without agreed limit: taking-over datecontractDateoptionalother cases: contract conclusion date
Example
curl "https://glauc.cat/api/tools/cmr-deadlines?delivery=2026-07-01"
Response (excerpt)
{ "ok": true, "data": { "result": { "apparent": { "deadline": "2026-07-01" }, "nonApparent": { "deadline": "2026-07-09" }, "delay": { "deadline": "2026-07-22" }, "limitation": { "deadline": "2027-07-01" } } } }Parameters
categoryrequiredlength | weight | volume | density | area | temperature | speed | fuel | floor | containersvaluerequirednumeric value to convertfromrequiredsource unit id (e.g. cm, kg, m3, kgm3)tooptionaltarget unit id; omitted → all units in the category
Example
curl "https://glauc.cat/api/tools/unit-converter?category=volume&value=1&from=m3&to=ft3"
Response (excerpt)
{ "ok": true, "data": { "result": 35.3146667… } }Parameters
codeoptionalEXW … DDP; omitted → all 11 rules
Example
curl "https://glauc.cat/api/tools/incoterms?code=FOB"
Response (excerpt)
{ "ok": true, "data": { "code": "FOB", "group": "F", "mode": "sea", "costs": { "mainCarriage": "buyer", … }, "riskTransfer": "fob" } }Parameters
sinceBreakoptionalminutes driven since the last ≥45-min breaktodayoptionalminutes driven todayweekoptionalminutes driven this weekpreviousWeekoptionalminutes driven the previous weekextensionsUsedoptional10 h days used this week (0–2)reducedRestsUsedoptionalreduced rests used (0–3)
Example
curl "https://glauc.cat/api/tools/driving-hours?sinceBreak=240&today=420&week=2600"
Response (excerpt)
{ "ok": true, "data": { "assessment": { "untilBreak": 30, "todayRemaining": 120, "todayRemainingExtended": 180, "weekRemaining": 760, "effectiveRemaining": 180, … } } }Parameters
massrequiredcargo mass, kgmurequiredfriction coefficient, 0–1 (EN 12195-1 Annex B)alphaoptionalvertical lashing angle, degrees (default 85)methodoptionaltie-down (default) or directmodeoptionalroad (default, Table 2) | rail (Table 3) | seaA | seaB | seaC (Table 4 sea areas)stfoptionalSTF per lashing, daN (tie-down; default 400)lcoptionalLC per lashing, daN (direct; default 2500)betaoptionalhorizontal lashing angle, degrees (direct; default 30)lengthoptionalblock length, cm (tipping check)widthoptionalblock width, cmheightoptionalblock height, cmcogHeightoptionalcentre of gravity height, cm (default half the height)
Example
curl "https://glauc.cat/api/tools/cargo-securing?mass=6000&mu=0.45&alpha=85&stf=400&length=240&width=120&height=180"
Response (excerpt)
{ "ok": true, "data": { "result": { "method": "tie-down", "lashings": 4, "directions": [ { "direction": "forward", "sliding": 4, "tipping": 0, "required": 4 }, … ], "warnings": [ … ] } } }Parameters
qoptionalcode prefix (digits) or words, at least two characters (q or code is needed)codeoptionalexact 4-, 6- or 8-digit code instead of qlangoptionalen (default) or eslimitoptionalmax rows, 1–100 (default 25)
Example
curl "https://glauc.cat/api/tools/hs-codes?q=lithium%20batteries&lang=en"
Response (excerpt)
{ "ok": true, "data": { "total": 6, "rows": [ { "code": "85076000", "level": 8, "description": "Lithium-ion accumulators", "heading": "Electric accumulators…", "duty": "2,7 %", "unit": "p/st" }, … ], "source": { … } } }Parameters
equipmentrequired20DV | 40DV | 40HC | 45HC | 20RF | 40RFHC | TAUT | MEGA | FRIGOpiecesrequiredqty x length x width x height x weightPerPiece (cm/kg), separated by ";" — at most 600 units per requeststackableoptionaldefault true — pieces may be stackedthisSideUpoptionaldefault true — pieces must not be tippedcountryoptionalroad limit matrix: ES (default) | EU | US | CNmodeoptionalroad_national (default) | road_international | road_intermodal
Example
curl "https://glauc.cat/api/tools/load-planner?equipment=40HC&pieces=20x120x80x144x400"
Response (excerpt)
{ "ok": true, "data": { "metrics": { "packedCount": 20, "volumeUtilizationPct": 36.4, "vgmKg": 11700, "cog": { "xEccentricityPct": -0.8, "ok": true }, … }, "compliance": { … }, "placements": [ … ] } }GET
/api/tools/healthLiveness probe: one real calculation per engine, plus the review date and source of every tool (and the loaded CN dataset). Never rate-limited, never counted.
Example
curl "https://glauc.cat/api/tools/health"
Response (excerpt)
{ "ok": true, "version": "1", "checks": { "chargeable-weight": true, … }, "review": { "hs-codes": { "verifiedOn": "2026-09-06", "dataset": "CN 2026, Reg. (EU) 2025/1926", "datasetYear": 2026 }, … } }General notes
- — All responses are JSON shaped as { ok, version, data }. Errors return HTTP 400 with { ok: false, error, hint }.
- — CORS is open (Access-Control-Allow-Origin: *): you can call the API straight from the browser.
- — No parameters or results are stored; only anonymous, aggregate endpoint counts are kept. Calls are stateless.
- — No service guarantee: this is a free reference API. If you integrate it in production, let me know via contact.
