import { Terminal49Client } from '@terminal49/sdk';
const client = new Terminal49Client({
apiToken: process.env.T49_API_TOKEN!,
});
async function main() {
// 1) Track a container (creates a tracking request)
// Provide a SCAC for faster, more reliable inference when known.
await client.trackingRequests.createFromInfer('MSCU1234567', {
scac: 'MSCU',
});
// 2) List your shipments (mapped response)
const shipments = await client.shipments.list(
{ updatedAfter: '2025-01-01T00:00:00Z' },
{ format: 'mapped' },
);
console.log(`Found ${shipments.items.length} shipments`);
// 3) Get a specific container with related data (raw JSON:API)
const containerId = 'your-container-uuid';
const container = await client.containers.get(containerId, [
'shipment',
'pod_terminal',
]);
console.log(container.data?.id);
// 4) Get transport events (milestones and timeline)
const events = await client.containers.events(containerId, {
format: 'mapped',
});
console.log(`Container has ${events.length} events`);
// 5) Get routing details (vessels, ports, legs)
const route = await client.containers.route(containerId, {
format: 'mapped',
});
console.log(`Route has ${route.locations.length} locations`);
}
main();