---
title: "Get a document"
method: GET
path: "/documents/{id}"
tags: ["Documents"]
---

# Get a document

`GET /documents/{id}`

## Path parameters

- `id` string, uuid, required

## Query parameters

- `include` string

## Response `200`

OK

- object
  - `data` Document
    - `id` string, uuid, required
    - `type` 'document', required
    - `attributes` object
      - `id` string, uuid — Unique identifier for the document.
      - `name` string — Display name of the document.
      - `document_type` string — System-classified document type.
      - `document_type_manual` string, nullable — Document type set manually by a user, when available.
      - `classification_notes` string, nullable — Additional notes captured during document classification.
      - `source` 'upload' | 'api' | 'email' | 'split_document' — How the document was created in Terminal49.
      - `file_name` string — Original file name of the uploaded or generated document.
      - `file_content_type` string, nullable — MIME type of the document file.
      - `file_size_bytes` integer, nullable — File size in bytes.
      - `parsed` object, nullable — Additional parsing metadata. Present for child documents created from a split packet.
        - `packetSegment` object — Page range of the child document within the original packet.
          - `startPage` integer — Start page number (inclusive) in the parent packet.
          - `endPage` integer — End page number (inclusive) in the parent packet.
      - `created_at` string, date-time — Timestamp when the document was created.
      - `updated_at` string, date-time — Timestamp when the document was last updated.
    - `relationships` object
      - `account` object
        - `data` object
          - `id` string, uuid
          - `type` 'account'
      - `user` object
        - `data` object, nullable
          - `id` string, uuid
          - `type` 'user'
      - `email_submission` object
        - `data` object, nullable
          - `id` string, uuid
          - `type` 'email_submission'
      - `last_document_representation` object
        - `data` object, nullable
          - `id` string, uuid
          - `type` 'document_representation'
      - `parent_document` object — Present for child documents created from a split packet.
        - `data` object, nullable
          - `id` string, uuid
          - `type` 'document'
      - `shipments` object
        - `data` object[]
          - `id` string, uuid
          - `type` 'shipment'
      - `cargos` object
        - `data` object[]
          - `id` string, uuid
          - `type` 'container'
    - `links` object
      - `self` string
      - `download` string
  - `included` union[]
    - union
      - Account
        - `id` string, uuid, required
        - `type` 'account', required
        - `attributes` object, required
          - `company_name` string, required
      - User — unresolved $ref
      - Shipment
        - `id` string, uuid, required
        - `relationships` object, required
          - `destination` object
            - `data` object, nullable
              - …
          - `port_of_lading` object
            - `data` object, nullable
              - …
          - `containers` object
            - `data` object[]
              - …
          - `port_of_discharge` object
            - `data` object, nullable
              - …
          - `pod_terminal` object
            - `data` object
              - …
          - `destination_terminal` object
            - `data` object
              - …
          - `line_tracking_stopped_by_user` object
            - `data` object
              - …
        - `attributes` object, required
          - `bill_of_lading_number` string, required
          - `normalized_number` string — The normalized version of the shipment number used for querying the carrier
          - `ref_numbers` string[], nullable
          - `created_at` string, date-time
          - `tags` string[]
          - `port_of_lading_locode` string, nullable — UN/LOCODE
          - `port_of_lading_name` string, nullable
          - `port_of_discharge_locode` string, nullable — UN/LOCODE
          - `port_of_discharge_name` string, nullable
          - `destination_locode` string, nullable — UN/LOCODE
          - `destination_name` string, nullable
          - `shipping_line_scac` string
          - `shipping_line_name` string
          - `shipping_line_short_name` string
          - `customer_name` string, nullable
          - `pod_vessel_name` string, nullable
          - `pod_vessel_imo` string, nullable
          - `pod_voyage_number` string, nullable
          - `pol_etd_at` string, date-time, nullable — Estimated Time of Departure from the Port of Lading, as reported by the shipping line. Carrier dependent; may be null.
          - `pol_atd_at` string, date-time, nullable — Actual Time of Departure from the Port of Lading. Populated after the vessel has departed the origin port.
          - `pod_eta_at` string, date-time, nullable — Estimated Time of Arrival at the Port of Discharge.
          - `pod_original_eta_at` string, date-time, nullable — Initial Estimated Time of Arrival at the Port of Discharge, as first reported by the shipping line.
          - `pod_ata_at` string, date-time, nullable — Actual Time of Arrival at the Port of Discharge.
          - `destination_eta_at` string, date-time, nullable — Estimated Time of Arrival at the shipment's destination, as reported by the shipping line. For inland (rail) moves, see also the container-level `ind_eta_at`, which is reported by the rail carrier. Corresponding timezone is `destination_timezone`.
          - `destination_ata_at` string, date-time, nullable — Actual Time of Arrival at the shipment's destination, as reported by the shipping line. For inland (rail) moves, see also the container-level `ind_ata_at`, which is reported by the rail carrier. Corresponding timezone is `destination_timezone`.
          - `pol_timezone` string, nullable — IANA tz
          - `pod_timezone` string, nullable — IANA tz
          - `destination_timezone` string, nullable — IANA tz
          - `line_tracking_last_attempted_at` string, date-time, nullable — When Terminal49 last tried to update the shipment status from the shipping line
          - `line_tracking_last_succeeded_at` string, date-time, nullable — When Terminal49 last successfully updated the shipment status from the shipping line
          - `line_tracking_stopped_at` string, date-time, nullable — When Terminal49 stopped checking at the shipping line
          - `line_tracking_stopped_reason` 'all_containers_terminated' | 'past_arrival_window' | 'past_full_out_window' | 'no_updates_at_line' | 'cancelled_by_user' | 'booking_cancelled' | 'null', nullable — The reason Terminal49 stopped checking
        - `type` 'shipment', required
        - `links` object, required
          - `self` string, uri, required
      - Container — Represents the equipment during a specific journey.
        - `id` string, uuid, required
        - `type` 'account', required
        - `attributes` object, required
          - `number` string
          - `ref_numbers` string[]
          - `equipment_type` 'dry' | 'reefer' | 'open top' | 'flat rack' | 'bulk' | 'tank' | 'null', nullable
          - `equipment_length` null | 10 | 20 | 40 | 45, nullable
          - `equipment_height` 'standard' | 'high_cube' | 'null', nullable
          - `weight_in_lbs` number, nullable
          - `created_at` string, date-time
          - `seal_number` string, nullable
          - `pickup_lfd` string, date-time, nullable — Coalesces `import_deadlines` values giving preference to `pickup_lfd_line`
          - `pickup_appointment_at` string, date-time, nullable — When available the pickup appointment time at the terminal is returned.
          - `availability_known` boolean — Whether Terminal 49 is receiving availability status from the terminal.
          - `available_for_pickup` boolean, nullable — If availability_known is true, then whether container is available to be picked up at terminal.
          - `pod_arrived_at` string, date-time, nullable — Time the vessel arrived at the POD
          - `pod_discharged_at` string, date-time, nullable — Discharge time at the port of discharge
          - `pod_full_out_at` string, date-time, nullable — Full Out time at port of discharge. Null for inland moves.
          - `terminal_checked_at` string, date-time, nullable — When the terminal was last checked.
          - `pod_full_out_chassis_number` string, nullable — The chassis number used when container was picked up at POD (if available)
          - `location_at_pod_terminal` string, nullable — Location at port of discharge terminal
          - `final_destination_full_out_at` string, date-time, nullable — Pickup time at final destination for inland moves.
          - `empty_terminated_at` string, date-time, nullable — Time empty container was returned.
          - `holds_at_pod_terminal` TerminalHold[]
            - `name` string, required
            - `status` 'pending' | 'hold', required
            - `description` string, nullable — Text description from the terminal (if any)
          - `fees_at_pod_terminal` TerminalFee[]
            - `type` 'demurrage' | 'exam' | 'extended_dwell_time' | 'other' | 'total', required
            - `amount` number, required — The fee amount in local currency
            - `currency_code` string — The ISO 4217 currency code of the fee is charged in. E.g. USD
          - `pod_timezone` string, nullable — IANA tz. Applies to attributes pod_arrived_at, pod_discharged_at, pickup_appointment_at, pod_full_out_at.
          - `final_destination_timezone` string, nullable — IANA tz. Applies to attribute final_destination_full_out_at.
          - `empty_terminated_timezone` string, nullable — IANA tz. Applies to attribute empty_terminated_at.
          - `pod_rail_carrier_scac` string, nullable — The SCAC of the rail carrier for the pickup leg of the container's journey.(BETA)
          - `ind_rail_carrier_scac` string, nullable — The SCAC of the rail carrier for the delivery leg of the container's journey.(BETA)
          - `pod_last_tracking_request_at` string, date-time, nullable
          - `shipment_last_tracking_request_at` string, date-time, nullable
          - `pod_rail_loaded_at` string, date-time, nullable
          - `pod_rail_departed_at` string, date-time, nullable
          - `ind_eta_at` string, date-time, nullable — Estimated Time of Arrival at the inland destination, as reported by the rail carrier. For the shipping-line view at the shipment's destination, see `destination_eta_at` on the shipment. Corresponding timezone is `final_destination_timezone`.
          - `ind_ata_at` string, date-time, nullable — Actual Time of Arrival at the inland destination, as reported by the rail carrier. For the shipping-line view at the shipment's destination, see `destination_ata_at` on the shipment. Corresponding timezone is `final_destination_timezone`.
          - `ind_rail_unloaded_at` string, date-time, nullable — Time when the container is unloaded from rail at the inland destination.
          - `ind_facility_lfd_on` string, date-time, nullable — Please use `import_deadlines.pickup_lfd_rail`
          - `import_deadlines` object, nullable — Import pickup deadlines for the container
            - `pickup_lfd_terminal` string, date-time, nullable — The last free day for pickup before demmurage accrues. Corresponding timezone is pod_timezone.
            - `pickup_lfd_rail` string, date-time, nullable — The last free day for pickup at the inland destination, as reported by the rail carrier. Corresponding timezone is final_destination_timezone. Subscribe to `container.pickup_lfd_rail.changed` to be notified of updates.
            - `pickup_lfd_line` string, date-time, nullable — The last free day as reported by the shipping line (carrier dependent). Corresponding timezone is final_destination_timezone or pod_timezone. Preferred source for the coalesced top-level `pickup_lfd` field.
          - `current_status` 'new' | 'on_ship' | 'available' | 'not_available' | 'grounded' | 'on_rail' | 'picked_up' | 'off_dock' | 'delivered' | 'dropped' | 'loaded' | 'empty_returned' | 'awaiting_inland_transfer' — The current status of the container in its journey. [Read guide to learn more.](/api-docs/in-depth-guides/container-statuses)
        - `relationships` object
          - `shipment` object
            - `data` object
              - …
          - `pickup_facility` object
            - `data` object
              - …
          - `pod_terminal` object
            - `data` object
              - …
          - `transport_events` object
            - `data` object[]
              - …
          - `raw_events` object
            - `data` object[]
              - …
      - Document
        - `id` string, uuid, required
        - `type` 'document', required
        - `attributes` object
          - `id` string, uuid — Unique identifier for the document.
          - `name` string — Display name of the document.
          - `document_type` string — System-classified document type.
          - `document_type_manual` string, nullable — Document type set manually by a user, when available.
          - `classification_notes` string, nullable — Additional notes captured during document classification.
          - `source` 'upload' | 'api' | 'email' | 'split_document' — How the document was created in Terminal49.
          - `file_name` string — Original file name of the uploaded or generated document.
          - `file_content_type` string, nullable — MIME type of the document file.
          - `file_size_bytes` integer, nullable — File size in bytes.
          - `parsed` object, nullable — Additional parsing metadata. Present for child documents created from a split packet.
            - `packetSegment` object — Page range of the child document within the original packet.
              - …
          - `created_at` string, date-time — Timestamp when the document was created.
          - `updated_at` string, date-time — Timestamp when the document was last updated.
        - `relationships` object
          - `account` object
            - `data` object
              - …
          - `user` object
            - `data` object, nullable
              - …
          - `email_submission` object
            - `data` object, nullable
              - …
          - `last_document_representation` object
            - `data` object, nullable
              - …
          - `parent_document` object — Present for child documents created from a split packet.
            - `data` object, nullable
              - …
          - `shipments` object
            - `data` object[]
              - …
          - `cargos` object
            - `data` object[]
              - …
        - `links` object
          - `self` string
          - `download` string
      - DocumentEmailSubmission
        - `id` string, uuid, required
        - `type` 'email_submission', required
        - `attributes` object
          - `subject` string, nullable
          - `body_preview` string, nullable
          - `from` string[]
          - `to` string[]
          - `cc` string[]
          - `message_id` string, nullable
          - `sent_at` string, date-time, nullable
          - `created_at` string, date-time
          - `updated_at` string, date-time
      - DocumentRepresentation
        - `id` string, uuid, required
        - `type` 'document_representation', required
        - `attributes` object
          - `schema_version` string
          - `payload` object
          - `created_at` string, date-time
          - `updated_at` string, date-time
  - `links` LinkSelf
    - `self` string, uri

## Other responses

- `400` — Bad Request
- `404` — Not Found

---

[API](https://skmtc.dev/terminal49/apis/terminal49-api-reference.md) · [All operations](https://skmtc.dev/terminal49/apis/terminal49-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/terminal49/terminal49-api-reference/revisions/998a27e39c03/schema)
