> ## Documentation Index
> Fetch the complete documentation index at: https://terminal49-mintlify-seo-audit-2026-10-05.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Terminal49 SDK Methods Reference

> Review every Terminal49 TypeScript SDK method organized by resource — shipments, containers, tracking requests, webhooks, and more — with usage examples.

The SDK exposes a `Terminal49Client` with methods grouped by resource type. Each method corresponds to an [API endpoint](/home).

## Resource namespaces (recommended)

### Search

| Method | Description |
| - | - |
| `client.search(query)` | Search across shipments and containers by number, reference, or keyword |

### Shipments

| Method | Description |
| - | - |
| `client.shipments.get(id, includeContainers?, options?)` | Fetch a shipment by ID. Set `includeContainers: false` to omit container relationships. |
| `client.shipments.list(filters?, options?)` | List shipments matching filter criteria. |
| `client.shipments.update(id, attrs, options?)` | Update shipment attributes like reference numbers or tags. |
| `client.shipments.stopTracking(id, options?)` | Stop tracking a shipment and its containers. |
| `client.shipments.resumeTracking(id, options?)` | Resume tracking a previously stopped shipment. |

### Containers

| Method | Description |
| - | - |
| `client.containers.get(id, include?, options?)` | Fetch a container by ID. `include` is an array of related resources. |
| `client.containers.list(filters?, options?)` | List containers matching filter criteria. |
| `client.containers.events(id, options?)` | Get transport events for a container. |
| `client.containers.route(id, options?)` | Get routing details: vessels, ports, and journey legs. |
| `client.containers.rawEvents(id, options?)` | Get unprocessed events as received from carriers. |
| `client.containers.refresh(id, options?)` | Request an immediate data refresh from the carrier. |

### Tracking requests

| Method | Description |
| - | - |
| `client.trackingRequests.list(filters?, options?)` | List tracking requests. |
| `client.trackingRequests.get(id, options?)` | Fetch a single tracking request. |
| `client.trackingRequests.update(id, attrs, options?)` | Update tracking request attributes. |
| `client.trackingRequests.create(params)` | Create a tracking request with an explicit request type and SCAC. |
| `client.trackingRequests.inferNumber(number)` | Detect whether a number is a container, booking, or bill of lading. |
| `client.trackingRequests.createFromInfer(number, options?)` | Create a tracking request with automatic number type detection. |

### Shipping lines

| Method | Description |
| - | - |
| `client.shippingLines.list(search?, options?)` | List carriers. Use `search` to filter by name or SCAC. |

## Helpers and aliases

| Method | Description |
| - | - |
| `client.trackContainer(params)` | Convenience helper that creates a tracking request using a container or booking number. |
| `client.listTrackRequests(filters?, options?)` | Alias for `client.trackingRequests.list`. |
| `client.getDemurrage(containerId)` | Returns a subset of demurrage-related fields for a container. See [holds, fees, and release readiness](/api-docs/in-depth-guides/holds-and-fees) for context. |
| `client.getRailMilestones(containerId)` | Returns rail milestones derived from transport events. |
| `client.deserialize<T>(document)` | Deserialize a JSON:API document into plain objects using JSONA. |

## Direct method equivalents

All namespace methods are also available as direct methods on the client:

| Namespace method | Direct method |
| - | - |
| `client.shipments.get` | `client.getShipment` |
| `client.shipments.list` | `client.listShipments` |
| `client.shipments.update` | `client.updateShipment` |
| `client.shipments.stopTracking` | `client.stopTrackingShipment` |
| `client.shipments.resumeTracking` | `client.resumeTrackingShipment` |
| `client.containers.get` | `client.getContainer` |
| `client.containers.list` | `client.listContainers` |
| `client.containers.events` | `client.getContainerTransportEvents` |
| `client.containers.route` | `client.getContainerRoute` |
| `client.containers.rawEvents` | `client.getContainerRawEvents` |
| `client.containers.refresh` | `client.refreshContainer` |
| `client.trackingRequests.list` | `client.listTrackingRequests` |
| `client.trackingRequests.get` | `client.getTrackingRequest` |
| `client.trackingRequests.update` | `client.updateTrackingRequest` |
| `client.trackingRequests.create` | `client.createTrackingRequest` |
| `client.trackingRequests.inferNumber` | `client.inferTrackingNumber` |
| `client.trackingRequests.createFromInfer` | `client.createTrackingRequestFromInfer` |
| `client.shippingLines.list` | `client.listShippingLines` |

## Common options

Most methods accept an `options` object with `format`:

```typescript theme={null}
const shipment = await client.shipments.get('shipment-id', true, {
  format: 'mapped',
});
```

Supported formats:

* `raw` (default) returns the JSON:API response
* `mapped` returns simplified objects for methods that support mapping
* `both` returns `{ raw, mapped }`

You can set a default format when initializing the client:

```typescript theme={null}
const client = new Terminal49Client({
  apiToken: process.env.T49_API_TOKEN!,
  defaultFormat: 'mapped',
});
```

List methods also accept pagination options:

```typescript theme={null}
const shipments = await client.shipments.list({}, {
  page: 1,
  pageSize: 25,
  format: 'mapped',
});
```

See [Filtering & Pagination](/sdk/filtering-pagination) for details.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.