Maersk Product Offers API

Quote ocean shipping offers. Returns route and schedule, vessel and deadline details, plus full price breakdowns including base ocean freight, bunker adjustment, terminal handling, and other surcharges. Supports origin and destination port lookups and supported container catalog endpoints.

Maersk Product Offers 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 and 1 JSON Schema definition.

Tagged areas include Shipping, Pricing, Quotes, and Surcharges. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, sample payloads, 1 Naftiko capability spec, and 1 JSON Schema.

OpenAPI Specification

maersk-product-offers-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Maersk Product Offers API
  description: >
    Quote prices and product offers for ocean shipments. Returns route and
    schedule, vessel and deadline information, and prices including
    surcharges for the requested origin, destination, container size-type
    combination, and departure date.
  version: '2.0'
  contact:
    name: Maersk Developer Support
    url: https://developer.maersk.com/support

servers:
  - url: https://api.productmanagement.maersk.com
    description: Production
  - url: https://api-spt.env.productmanagement.maersk.com
    description: Sandbox

security:
  - ConsumerKey: []
  - ForgeRockJWT: []

tags:
  - name: Offers
    description: Product offers, prices, and surcharges.
  - name: Locations
    description: Origin and destination port lookups.
  - name: Containers
    description: Supported container size and type combinations.

paths:
  /offers/v2/offers/brand/{brandScac}/departuredate/{departureDate}:
    get:
      summary: List Available Offers
      description: >
        Retrieve product offers for a given origin, destination, container,
        and departure date. Includes pricing, schedule, demurrage and
        detention conditions.
      operationId: listAvailableOffers
      tags:
        - Offers
      parameters:
        - name: brandScac
          in: path
          required: true
          description: Carrier SCAC code (MAEU, SEAU, MCPU, SEJJ).
          schema:
            type: string
            example: MAEU
        - name: departureDate
          in: path
          required: true
          schema:
            type: string
            format: date
        - name: collectionOriginCityName
          in: query
          required: true
          schema:
            type: string
        - name: collectionOriginCountryCode
          in: query
          required: true
          schema:
            type: string
        - name: deliveryDestinationCityName
          in: query
          required: true
          schema:
            type: string
        - name: deliveryDestinationCountryCode
          in: query
          required: true
          schema:
            type: string
        - name: containerIsoCode
          in: query
          required: true
          schema:
            type: string
            example: 22G1
        - name: serviceMode
          in: query
          schema:
            type: string
            enum: [Carrier-Haulage, Merchant-Haulage]
      responses:
        '200':
          description: Offers returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProductOffer'

  /offers/v2/offers/brand/{brandScac}/locations:
    get:
      summary: Get Port Pair Locations
      description: List available origin-destination port combinations.
      operationId: getPortPairs
      tags:
        - Locations
      parameters:
        - name: brandScac
          in: path
          required: true
          schema:
            type: string
        - name: containerIsoCode
          in: query
          schema:
            type: string
      responses:
        '200':
          description: Port pairs returned.

  /offers/v2/offers/brand/{brandScac}/locations/origins:
    get:
      summary: Get Origin Ports
      description: List origin ports with available offers.
      operationId: getOriginPorts
      tags:
        - Locations
      parameters:
        - name: brandScac
          in: path
          required: true
          schema:
            type: string
        - name: cityName
          in: query
          schema:
            type: string
      responses:
        '200':
          description: Origin ports returned.

  /offers/v2/offers/brand/{brandScac}/locations/destinations:
    get:
      summary: Get Destination Ports
      description: List destination ports with available offers.
      operationId: getDestinationPorts
      tags:
        - Locations
      parameters:
        - name: brandScac
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Destination ports returned.

  /offers/v2/offers/containers:
    get:
      summary: List Supported Containers
      description: List all container size-types supported for offers.
      operationId: listContainers
      tags:
        - Containers
      responses:
        '200':
          description: Container catalog returned.

components:
  securitySchemes:
    ConsumerKey:
      type: apiKey
      in: header
      name: Consumer-Key
    ForgeRockJWT:
      type: http
      scheme: bearer
      bearerFormat: JWT
  schemas:
    ProductOffer:
      type: object
      properties:
        offerId:
          type: string
        carrierServiceCode:
          type: string
        originLocation:
          type: string
        destinationLocation:
          type: string
        departureDate:
          type: string
          format: date-time
        arrivalDate:
          type: string
          format: date-time
        transitTime:
          type: integer
        containerIsoCode:
          type: string
        totalPrice:
          $ref: '#/components/schemas/Price'
        priceBreakdown:
          type: array
          items:
            $ref: '#/components/schemas/Price'
        demurrageDetention:
          type: object
          properties:
            originFreeDays:
              type: integer
            destinationFreeDays:
              type: integer
    Price:
      type: object
      properties:
        chargeCode:
          type: string
        chargeName:
          type: string
        amount:
          type: number
        currency:
          type: string
        basis:
          type: string
          enum: [PerContainer, PerShipment, PerBillOfLading]