Unified event timeline
Every carrier speaks its own dialect. BerthTime normalises events into DCSA-style equipment and transport milestones, so one container looks the same whichever line moves it.
BerthTime tracks ocean shipments by container number, bill of lading or booking reference. Carrier events become one clean, DCSA-style timeline with ETAs, ready for your team and your systems.
Track anything
Container number, bill of lading or booking: BerthTime detects the type and the carrier, then lays every milestone out on one timeline, actual and estimated.
Interactive demo with generated sample data. Sign up to track real shipments.
Product
Forwarders, shippers and ops teams get one source of truth for every shipment, without logging into a dozen carrier portals.
Every carrier speaks its own dialect. BerthTime normalises events into DCSA-style equipment and transport milestones, so one container looks the same whichever line moves it.
Original and current ETA side by side, the delay in hours, and an event the moment it moves. See what is late before your customer asks.
Multi-company accounts with owner, admin, member and viewer roles. Invite colleagues, switch companies, keep each client's shipments apart.
Everything in the dashboard is available over REST, documented with OpenAPI. Subscribe to shipment updates, ETA changes and arrivals; each delivery is HMAC-signed and retried with backoff.
Majorbird is an Odoo partner. BerthTime is being built to plug straight into Odoo, so shipment status and ETAs can sit next to your purchase orders, sales orders and transfers.
Container, BL or booking: the type and the carrier are worked out for you. Override when you know better.
Read or write keys per company, created and revoked from settings. Bearer auth on every request.
Send an Idempotency-Key with POST requests so retries never create duplicate shipments.
Delay and arrival notifications straight to your team's inbox.
Developers
One POST to start tracking. One webhook to hear about every change. Errors come back as RFC 7807 problem details, and the whole surface is described in OpenAPI.
Use BerthTime from Claude, Cursor or any MCP client. MCP server docs
curl -X POST https://berthtime.com/api/v1/shipments \
-H "Authorization: Bearer $BERTHTIME_API_KEY" \
-H "Idempotency-Key: 6f1c2a9e-po-4711" \
-H "Content-Type: application/json" \
-d '{
"reference": "MSCU1234566",
"customer_reference": "PO-4711",
"tags": ["asia-eu"]
}'How it works
Paste references in the dashboard or POST them to the API. Container, BL or booking, one or many.
Carrier data is fetched on a schedule and normalised into one timeline with current ETA, vessel and voyage.
Watch the dashboard, filter by ETA window, and receive signed webhooks when something changes.
Pricing
Pick a monthly volume. On paid plans, shipments above it are billed at your plan's extra-shipment rate.
14-day trial, up to 100 shipments, no card.
$0/ month
Free, no card
$19/ month
Billed monthly
$99/ month
Billed monthly
$349/ month
Billed monthly
$649/ month
Billed monthly
Everything included on every plan: API webhooks unlimited users CSV import route maps
Custom volume and pricing, plus:
One reference, one shipment, per month
A shipment is one container, bill of lading or booking number tracked during a calendar month. A bill of lading or booking counts once, however many containers it holds.
Found twice, counted once
If the same shipment shows up under another reference (say its container and its bill of lading), we merge them and count it once.
No data, no charge
A shipment is not counted in a month where the carrier returns no data for it, for example a mistyped reference or one the carrier has not published yet.
Archive to stop counting
Archive a shipment at any time. It stops counting from the next month.
Prices in USD.
Create an account, add your first reference and see the timeline in minutes.