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

# Terminal49 Container Statuses

> Understand every Terminal49 container status value, from empty-out to empty-return, so your integration can interpret each shipment lifecycle stage.

The `current_status` attribute on container objects provides a high-level view of where a container is in its journey. This guide explains the different status values and their meanings.

## Available status values

The `current_status` field can have one of the following values:

### new

**Default state** - The container is tracked but Terminal49 doesn't yet have enough information to determine its actual status. This is the initial state when tracking begins.

### on\_ship

**In transit by vessel** - The container is on a ship at any point prior to arrival at the Port of Discharge (POD). This status can apply at multiple stages:

* During the ocean voyage from origin to destination
* Before vessel departure from the Port of Lading
* Any time the container is loaded on a vessel

### available

**Ready for pickup** - The container has arrived at the POD or inland destination and is confirmed available for pickup. You can proceed with arranging pickup when you see this status. For a definitive readiness check that combines `available_for_pickup` with hold data, see [Container Holds, Fees, and Release Readiness](/api-docs/in-depth-guides/holds-and-fees).

### not\_available

**Arrived but not ready** - The container is at the POD or inland destination but is not yet available for pickup. This could be due to:

* Customs holds
* Terminal holds
* Documentation requirements
* Other restrictions

See [Container Holds, Fees, and Release Readiness](/api-docs/in-depth-guides/holds-and-fees) for details on specific hold types and how to determine when the container is released.

### grounded

**Availability unknown** - The container is physically at the POD, but Terminal49 doesn't currently know whether it's available for pickup or not. This typically means the terminal isn't providing real-time availability data.

### awaiting\_inland\_transfer

**Moving inland** - The container is either:

* Still at the POD waiting to be loaded onto rail for an inland move
* In transit between the POD and a rail terminal
* At a rail terminal but not yet loaded onto a rail car

This status is specific to shipments with inland rail movements.

### on\_rail

**In transit by rail** - The container has been loaded onto a rail car and is being transported to its inland destination.

### picked\_up

**Out for delivery** - The container has been picked up from the terminal or facility for delivery.

### off\_dock

**At alternative facility** - The container has been moved to a different terminal or off-dock storage facility for pickup. You may need to go to this alternative location rather than the original POD terminal.

### delivered

**Delivery confirmed** - This status is only shown when delivery has been [manually marked as delivered](https://help.terminal49.com/articles/4713318249-how-to-mark-containers-as-delivered) through the Terminal49 dashboard.

### empty\_returned

**Container returned empty** - The container has been emptied and returned to the shipping line or designated return location.

### dropped

**Not currently used** - This status value is defined but not actively used in the system.

### loaded

**Not currently used** - This status value is defined but not actively used in the system.

## Important considerations

### Status accuracy

The logic to derive container statuses is complex and involves processing data from multiple sources including:

* Shipping line updates
* Terminal systems
* Rail carrier feeds
* Manual updates

**There can sometimes be errors in the reported `current_status`**. When making critical business decisions:

* Cross-referencing with transport events
* Contacting the terminal directly for time-sensitive pickups

### Status transitions

Containers don't always follow a linear path through these statuses. For example:

* A container may go from `on_ship` directly to `available` if terminal data arrives quickly
* A container might alternate between `available` and `not_available` if holds are placed and removed
* The status may remain as `new` for some time if data from the shipping line is delayed

### API usage

To get the current status of a container, you can read the container's `current_status` attribute in your API responses:

```bash theme={null}
GET /v2/containers/{id}
```

The response will include:

```json theme={null}
{
  "data": {
    "id": "ff77a822-23a7-4ccd-95ca-g534c071baaf3",
    "type": "container",
    "attributes": {
      "number": "KOCU4959010",
      "current_status": "available",
      ...
    }
  }
}
```
