This page contains updates to Terminal49 API and DataSync only (not
general product updates).
April 20, 2026
APIDashboard
Improved document linking, mark-as-delivered fix, LFD accuracy improvements, and terminal data fixes
Smarter document-to-shipment linking
Documents are now matched to shipments using indirect references such as purchase order (PO) numbers. Previously, a document had to contain a direct identifier like a bill of lading or container number. Now, if a document references a PO number that appears on another already-linked document, Terminal49 can connect the two — reducing unlinked documents and manual work.Document processing guide
How document linking works
Improved document extraction accuracy
Document data extraction now uses the original filename as additional context, improving field-level accuracy when the filename contains shipment identifiers or document type hints.Bug fixes
- Mark as delivered — Fixed an issue where marking a container as delivered from the dashboard event viewer could fail. User-submitted delivery events are now accepted correctly
- Stale terminal LFD dates — Fixed a bug where outdated Last Free Day dates from a previous cycle could appear on containers still in transit. Terminal LFD events are now rejected until the container arrives at the port
- MSC departure events — Corrected incorrect departure-from-POD events being reported for certain MSC containers
- Hapag-Lloyd tracking — Fixed an error that could occur when Hapag-Lloyd returns an empty shipment overview, preventing container data from loading
- Norfolk Southern rail LFD timezone — Fixed incorrect timezone parsing for Norfolk Southern rail Last Free Day dates, which could shift the date by a day
- Dashboard event viewer — Fixed display issues in the unified event viewer for user-submitted events
- Terminal data collection — Resolved connectivity and data retrieval issues at Goport, Maher, and Packer Avenue terminals, restoring terminal-sourced hold, fee, and availability data for containers at those facilities
April 14, 2026
APIDashboard
Dashboard deep linking, calculated LFD, Smart LFD dashboard columns, and bug fixes
Dashboard deep linking
You can now link directly to any shipment or container in the Terminal49 dashboard using a container number, bill of lading, booking number, or reference number — no internal IDs needed.Use the URL pattern:Deep linking guide
How to build direct links to shipments and containers
Calculated Last Free Day
The Smart LFD system now includes a calculated Last Free Day derived from carrier demurrage tariff rules. When a shipping line or terminal hasn’t reported an LFD, Terminal49 computes one using the applicable tariff — including free days, start events, holidays, and business-day rules.Calculated values appear as a fallback in theimport_deadlines field on the container API. If a reported LFD is available from the carrier or terminal, it takes priority.Container API reference
View the container resource
Smart LFD dashboard columns
The container dashboard now includes two new columns for accounts with Smart LFD enabled:- Calc. Line LFD — the calculated Last Free Day derived from carrier tariff rules
- Smart LFD — the best available LFD with its source displayed, so you can see at a glance whether the date comes from the shipping line, terminal, or a tariff calculation
Bug fixes
- Hapag-Lloyd booking tracking — Fixed an issue where certain Hapag-Lloyd bookings could return an invalid number error, preventing container data from loading
April 2026
APIDashboard
Smart Last Free Day, inland destination ETA source transparency, and bug fixes
Smart Last Free Day
The container API now returns a detailed breakdown of Last Free Day (LFD) data within theimport_deadlines field. Instead of a single date, you get separate LFD values from the shipping line and the terminal facility — at both the port of discharge and the inland destination.Each source includes:- Original — the first LFD reported
- Current — the latest LFD reported
- Calculated — a derived value when the raw date needs adjustment
Container API reference
View the container resource
Inland destination ETA source transparency
Containers now include aninland_destination_eta_source_summary field that tells you exactly where the displayed inland destination ETA comes from. Possible sources are:- Shipping line — ETA provided by the carrier
- Rail — ETA from the rail carrier
- T49 operations team — manually verified ETA
- T49 prediction engine — machine-learning-based estimate
Expanded shipping line LFD coverage
Shipping line Last Free Day data is now collected from additional SSA terminals, improving LFD accuracy for containers moving through those facilities.Container table properties
DataSync containers reference
Bug fixes
- Hapag-Lloyd booking tracking — Fixed an error that could prevent booking equipment data from being returned for Hapag-Lloyd shipments
- Dashboard copy/paste — Copy and paste keyboard shortcuts in the container dashboard no longer interfere with text input fields
- Webhook notification links — The dashboard webhook notifications page now correctly displays reference links for events with multiple related resources
March 2026
APISDKMCPDataSync
TypeScript SDK, MCP server, Custom Fields API, webhook trigger endpoint, and DataSync improvements
TypeScript SDK
Released the Terminal49 TypeScript SDK (@terminal49/sdk), a typed client for Node.js 18+ with built-in retry logic, error handling, and JSON:API deserialization.- Track containers, retrieve shipments, and manage tracking requests with type-safe methods
- Automatic retry with exponential backoff for rate limits and server errors
- Flexible response formats: raw JSON:API, mapped objects, or both
SDK docs
Get started with the TypeScript SDK
MCP server
Launched the Terminal49 MCP server, letting you query live container and shipment data from Claude Desktop, Cursor, or any MCP-compatible AI client.- 10 tools — search, track, get container details, shipment routing, transport events, and more
- 3 prompts — pre-built workflows for tracking, demurrage analysis, and delay root cause analysis
- Connect with a single config block — no custom code required
MCP setup guide
Connect your AI client to Terminal49
Custom Fields API
You can now create and manage custom fields on shipments and containers via the API. Define your own field schemas (text, number, date, single-select, multi-select), create option lists, and attach values to individual shipments or containers.- Custom Field Definitions — create, update, list, and delete field schemas scoped to shipments or containers
- Custom Field Options — manage allowed values for select-type fields
- Custom Fields — assign values to specific shipments or containers
Custom Field Definitions
View the Custom Fields API reference
Webhook trigger endpoint
AddedPOST /webhooks/trigger to send a one-time test webhook delivery to any HTTPS URL — without creating a webhook endpoint first. Use it to validate your webhook handler before going live.Trigger a webhook
API reference for the trigger endpoint
DataSync improvements
- Shipping line Last Free Day — new
ssl_last_free_day_onandssl_last_free_day_on_localcolumns on both thecontainersandcontainers_railtables, so you can distinguish the shipping line’s LFD from the terminal’s LFD - Pending hold status — individual hold columns (
freight_hold,customs_hold,usda_hold,tmf_hold,other_hold) now support a"Pending"value in addition to"Hold"and blank, giving you earlier visibility into holds before they become active
Container table properties
DataSync containers reference
Holds and fees guide
How to work with holds and fees data
Container Holds, Fees, and Release Readiness
Published a comprehensive guide for working with holds and fees data in the Terminal49 API. The guide covers:- Pickup readiness logic — a decision flowchart and code example showing how to combine
available_for_pickupwithholds_at_pod_terminalto determine if a container can be picked up - Hold and fee enum references — quick-reference tables for all hold names and fee types, with expandable details for each value
- Webhook changeset examples — how to subscribe to
container.updatedand react to hold/fee changes in real time - Rail and inland destinations — clarification that the same fields apply at inland rail terminals, not just the port of discharge
- FAQ — answers to common integration questions like double-counting fees, sync lag between holds and availability, and case-sensitive hold names
Read the guide
Container Holds, Fees, and Release Readiness
Infer Tracking Number (Beta)
Added the Infer Tracking Number endpoint to help you predict:- The VOCC SCAC to use for tracking
- The number type (container, bill of lading, booking)
- A confidence-driven decision (
auto_select,needs_confirmation,no_prediction)
API Reference
Infer Tracking Number endpoint details
Guide
How to use Infer Tracking Number in your workflow