Obtain a FourKites API token via the customer portal and configure a webhook destination URL under Settings > Integrations > Webhooks, selecting the SHIPMENT_ETA_CHANGED and SHIPMENT_STATUS_CHANGED event types
Submit a shipment for tracking via POST /api/v1/shipments with required fields: shipment_id, carrier_scac, pro_number or trailer_number, origin and destination as structured address objects, and pickup_date
Receive inbound webhook POST payloads; parse the event_type field to distinguish ETA updates from status changes; the predicted_delivery field contains an ISO 8601 timestamp representing FourKites' ML-derived ETA
Extract the confidence_score from the ETA payload; if below your threshold (commonly 0.7), suppress the update from customer-facing displays and retain the last high-confidence ETA
Compare the new predicted_delivery against the committed delivery date stored in your TMS; if the delta exceeds your configurable late-alert threshold, trigger a carrier check-call workflow
Respond HTTP 200 immediately; log the raw payload with your internal shipment ID mapping before any downstream processing
Known gotchas
FourKites requires the carrier SCAC to be in their carrier network to generate predictive ETAs; submitting a shipment with an unrecognized SCAC results in a tracking record without ETA predictions, not an API error
The ETA change event fires on every ML model recalculation, which can occur many times per hour; without downstream throttling or change-delta filtering you will generate excessive downstream alerts
FourKites uses trailer-number tracking for truckload and PRO number for LTL; submitting a TL shipment with only a PRO number will fail to match carrier ELD data and produce no location updates
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp