Maersk Bill of Lading API

DCSA-compliant Carrier Bill of Lading (eBL) API. Retrieve, approve, and surrender electronic transport documents per the DCSA eBL 3.0 interface standard.

Maersk Bill of Lading API is one of 9 APIs that Maersk publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko.

Tagged areas include Shipping, eBL, DCSA, and Documents. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, and 1 Naftiko capability spec.

OpenAPI Specification

maersk-bill-of-lading-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Maersk Bill of Lading API
  description: >
    DCSA-compliant Carrier Bill of Lading (eBL) API. Retrieve, issue, and
    surrender electronic transport documents for ocean shipments per the
    DCSA eBL 3.0 interface.
  version: '3.0'
  contact:
    name: Maersk Developer Support
    url: https://developer.maersk.com/support

servers:
  - url: https://api.maersk.com
    description: Production Gateway

security:
  - ConsumerKey: []
  - OAuth2: [ebl]

tags:
  - name: BillOfLading
    description: Electronic bill of lading lifecycle.

paths:
  /dcsa/ebl/v3/transport-documents/{transportDocumentReference}:
    get:
      summary: Get Transport Document
      description: Retrieve the current state of a carrier transport document.
      operationId: getTransportDocument
      tags:
        - BillOfLading
      parameters:
        - name: transportDocumentReference
          in: path
          required: true
          schema:
            type: string
        - name: Consumer-Key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Transport document returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransportDocument'
        '404':
          description: Document not found.

  /dcsa/ebl/v3/transport-documents/{transportDocumentReference}/approve:
    patch:
      summary: Approve Transport Document
      description: Shipper approval of the carrier-issued draft transport document.
      operationId: approveTransportDocument
      tags:
        - BillOfLading
      parameters:
        - name: transportDocumentReference
          in: path
          required: true
          schema:
            type: string
        - name: Consumer-Key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Approval recorded.

components:
  securitySchemes:
    ConsumerKey:
      type: apiKey
      in: header
      name: Consumer-Key
    OAuth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.maersk.com/customer-identity/oauth/v2/access_token
          scopes:
            ebl: Read and update eBL documents.
  schemas:
    TransportDocument:
      type: object
      properties:
        transportDocumentReference:
          type: string
        transportDocumentTypeCode:
          type: string
          enum: [BOL, SWB]
          description: Bill of Lading or Sea Waybill.
        transportDocumentStatus:
          type: string
          enum: [DRAFT, APPROVED, ISSUED, SURRENDERED, VOIDED]
        shipperParty:
          $ref: '#/components/schemas/Party'
        consigneeParty:
          $ref: '#/components/schemas/Party'
        carrierCode:
          type: string
        issueDate:
          type: string
          format: date
        placeOfIssue:
          type: object
          properties:
            UNLocationCode:
              type: string
        cargoMovementTypeAtOrigin:
          type: string
        cargoMovementTypeAtDestination:
          type: string
    Party:
      type: object
      properties:
        partyName:
          type: string
        address:
          type: object
          properties:
            street:
              type: string
            city:
              type: string
            countryCode:
              type: string
        partyContactDetails:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              email:
                type: string
              phone:
                type: string