## Documentation Index

Fetch the complete documentation index at: [/docs/llms.txt](/content/docs/llms.txt)

Use this file to discover all available pages before exploring further.

The Terminal49 API gives you a single integration to track Bills of Lading (BOLs), bookings, and container numbers across global ocean carriers. You get complete import milestones — from empty-out at origin to empty-return at destination, including rail data in North America.

## Prerequisites

Before making API calls, you need:

- A Terminal49 account ( [start a free trial](https://app.terminal49.com/register))  
- An API key from the [Developer Portal](https://app.terminal49.com/developers/api-keys)

## Base URL

```
https://api.terminal49.com/v2
```

## Authentication

Include your API key in the `Authorization` header, prefixed with `Token`:

```
curl https://api.terminal49.com/v2/shipments \
  -H "Authorization: Token YOUR_API_KEY"
```

## Request and response format

- The API follows the [JSON:API](https://jsonapi.org/) specification
- All responses return `application/vnd.api+json` content type
- Requests that include a body should set `Content-Type: application/vnd.api+json`
- [JSON:API client libraries](https://jsonapi.org/implementations/#client-libraries) are available in most languages

### Example response

```
{
  "data": {
    "id": "dabf9e1c-4ddc-4e4b-a701-2de1cdb38010",
    "type": "shipment",
    "attributes": {
      "status": "in_transit",
      "pod_eta": "2025-04-15T00:00:00Z",
      "shipping_line_name": "Maersk"
    }
  }
}
```

## Rate limits

| Detail | Value |
| --- | --- |
| Limit | 100 requests per minute |
| Scope | Per API key |
| Window | Rolling 60 seconds |
| Over-limit response | `429 Too Many Requests` |

See the [rate limiting guide](/content/docs/api-docs/in-depth-guides/rate-limiting/index.html) for retry strategies and best practices.

Use [webhooks](/content/docs/api-docs/in-depth-guides/webhooks/index.html) instead of polling to receive real-time updates. This keeps you well within rate limits and gives you faster data.

## Core resources

[**Tracking Requests**  
\  
Create and manage tracking requests by BOL, booking, or container number.](/content/docs/api-docs/api-reference/tracking-requests/create-a-tracking-request/index.html)

[**Shipments**  
\  
Retrieve shipment details, ETAs, and milestones.](/content/docs/api-docs/api-reference/shipments/list-shipments/index.html)

[**Containers**  
\  
Container-level statuses, transport events, and map data.](/content/docs/api-docs/api-reference/containers/list-containers/index.html)

[**Webhooks**  
\  
Subscribe to real-time push notifications when shipment data changes.](/content/docs/api-docs/api-reference/webhooks/list-webhooks/index.html)

## Supporting resources

[**Custom Fields**  
\  
Attach your own metadata to shipments and containers.](/content/docs/api-docs/api-reference/custom-fields/list-custom-field-definitions/index.html)

[**Shipping Lines**  
\  
Look up supported carriers and SCACs.](/content/docs/api-docs/api-reference/shipping-lines/shipping-lines/index.html)

[**Vessels**  
\  
Vessel details and future position data.](/content/docs/api-docs/api-reference/vessels/get-a-vessel-using-the-id/index.html)

[**Ports**  
\  
Port lookups by UN/LOCODE.](/content/docs/api-docs/api-reference/ports/get-a-port-using-the-locode-or-the-id/index.html)

[**Terminals**  
\  
Terminal details at destination ports.](/content/docs/api-docs/api-reference/terminals/get-a-terminal-using-the-id/index.html)

[**Parties**  
\  
Manage customer and partner references.](/content/docs/api-docs/api-reference/parties/list-parties/index.html)
