Terminal49 Containers API

The Containers API from Terminal49 — 4 operation(s) for containers.

Operations 5

GET /containers List containers #
GET /containers/{id} Retrieve a container #
PATCH /containers/{id} Edit a container #
POST /containers/{id}/refresh Force a container data refresh #
GET /containers/{id}/map Retrieve GeoJSON map data for a container #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/terminal49-containers-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

terminal49-containers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Terminal49 Containers API
  description: Terminal49 v2 container and ocean-freight tracking API. A single integration to track Bills of Lading, bookings, and container numbers across global ocean carriers and North American rail, returning normalized milestones, ETAs, terminal availability, holds, demurrage fees, and last free day. The API follows the JSON:API specification; all requests and responses use the `application/vnd.api+json` media type and authenticate with a Token header.
  termsOfService: https://www.terminal49.com/terms-of-service/
  contact:
    name: Terminal49 Support
    url: https://terminal49.com/docs/api-docs/api-reference/introduction
    email: support@terminal49.com
  version: '2.0'
servers:
- url: https://api.terminal49.com/v2
  description: Terminal49 v2 production API
security:
- TokenAuth: []
tags:
- name: Containers
paths:
  /containers:
    get:
      operationId: listContainers
      tags:
      - Containers
      summary: List containers
      parameters:
      - $ref: '#/components/parameters/PageNumber'
      - $ref: '#/components/parameters/PageSize'
      responses:
        '200':
          description: A list of containers.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/ContainerList'
  /containers/{id}:
    get:
      operationId: getContainer
      tags:
      - Containers
      summary: Retrieve a container
      parameters:
      - $ref: '#/components/parameters/ResourceId'
      responses:
        '200':
          description: The requested container.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/ContainerSingle'
    patch:
      operationId: updateContainer
      tags:
      - Containers
      summary: Edit a container
      parameters:
      - $ref: '#/components/parameters/ResourceId'
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/ContainerSingle'
      responses:
        '200':
          description: The updated container.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/ContainerSingle'
  /containers/{id}/refresh:
    post:
      operationId: refreshContainer
      tags:
      - Containers
      summary: Force a container data refresh
      parameters:
      - $ref: '#/components/parameters/ResourceId'
      responses:
        '202':
          description: Refresh accepted.
  /containers/{id}/map:
    get:
      operationId: getContainerMap
      tags:
      - Containers
      summary: Retrieve GeoJSON map data for a container
      parameters:
      - $ref: '#/components/parameters/ResourceId'
      responses:
        '200':
          description: GeoJSON map data for the container journey.
components:
  parameters:
    PageSize:
      name: page[size]
      in: query
      required: false
      description: Number of records per page.
      schema:
        type: integer
    ResourceId:
      name: id
      in: path
      required: true
      description: The resource identifier (UUID).
      schema:
        type: string
    PageNumber:
      name: page[number]
      in: query
      required: false
      description: Page number for JSON:API pagination.
      schema:
        type: integer
  schemas:
    ContainerAttributes:
      type: object
      properties:
        number:
          type: string
        seal_number:
          type:
          - string
          - 'null'
        ref_numbers:
          type: array
          items:
            type: string
        equipment_type:
          type: string
          description: e.g. dry, reefer, open_top, flat_rack, bulk, tank.
        equipment_length:
          type: integer
          description: Container length in feet (10, 20, 40, 45).
        equipment_height:
          type: string
          enum:
          - standard
          - high_cube
        weight_in_lbs:
          type:
          - integer
          - 'null'
        current_status:
          type: string
          description: e.g. new, on_ship, available, delivered.
        availability_known:
          type: boolean
        available_for_pickup:
          type:
          - boolean
          - 'null'
        pickup_lfd:
          type:
          - string
          - 'null'
          format: date-time
          description: Last free day, coalesced from import deadlines.
        pickup_appointment_at:
          type:
          - string
          - 'null'
          format: date-time
        pod_arrived_at:
          type:
          - string
          - 'null'
          format: date-time
        pod_discharged_at:
          type:
          - string
          - 'null'
          format: date-time
        pod_full_out_at:
          type:
          - string
          - 'null'
          format: date-time
        location_at_pod_terminal:
          type:
          - string
          - 'null'
        ind_eta_at:
          type:
          - string
          - 'null'
          format: date-time
        ind_ata_at:
          type:
          - string
          - 'null'
          format: date-time
        ind_rail_unloaded_at:
          type:
          - string
          - 'null'
          format: date-time
        pod_rail_carrier_scac:
          type:
          - string
          - 'null'
        ind_rail_carrier_scac:
          type:
          - string
          - 'null'
        holds_at_pod_terminal:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              status:
                type: string
              description:
                type: string
        fees_at_pod_terminal:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
                description: e.g. demurrage, exam, extended_dwell_time, other, total.
              amount:
                type: number
              currency:
                type: string
        terminal_checked_at:
          type:
          - string
          - 'null'
          format: date-time
    ContainerList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ContainerResource'
        links:
          $ref: '#/components/schemas/JsonApiLinks'
    JsonApiLinks:
      type: object
      properties:
        self:
          type: string
        first:
          type: string
        prev:
          type: string
        next:
          type: string
        last:
          type: string
    ContainerResource:
      type: object
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - container
        attributes:
          $ref: '#/components/schemas/ContainerAttributes'
        relationships:
          type: object
    ContainerSingle:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/ContainerResource'
  securitySchemes:
    TokenAuth:
      type: apiKey
      in: header
      name: Authorization
      description: 'Token-based authentication. Send the header `Authorization: Token YOUR_API_KEY`.'