Kuehne+Nagel Booking Requests API

The Booking Requests API from Kuehne+Nagel — 1 operation(s) for booking requests.

Operations 1

POST /bookings Create Booking Request #

Documentation

Specifications

Other Resources

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/kuehne-nagel-booking-requests-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

kuehne-nagel-booking-requests-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: BookingRoad Booking Requests API
  description: Interface for sending external booking requests to KN Road
  contact:
    name: Global Road API Support
    url: https://home.kuehne-nagel.com/en/service-request-api-road?lead_topic=api-support-road
    email: GLOBAL.API.ROAD.Support@kuehne-nagel.com
  version: v1
  x-api-id: 7c78465d-bd97-48d0-8b1f-1230281a0bef
  x-api-guideline-version: 1.9.4
servers:
- url: https://internal.api.kuehne-nagel.com/booking/road/v1
security:
- default: []
- api_key: []
tags:
- name: Booking Requests
paths:
  /bookings:
    post:
      tags:
      - Booking Requests
      summary: Create Booking Request
      description: Submits a booking creation request that will be routed to the appropriate business team for processing.
      operationId: createBooking
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BookingRequest'
      responses:
        '200':
          description: Unexpected error
          content:
            application/problem+json:
              schema:
                type: object
                properties: {}
        '201':
          description: Booking created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BookingResponse'
        '400':
          description: Request has invalid format or missing components
          content:
            application/problem+json:
              schema:
                type: object
                properties: {}
        '403':
          description: Request not accepted due to restrictions on user
          content:
            application/problem+json:
              schema:
                type: object
                properties: {}
      deprecated: false
      security:
      - default: []
      - api_key: []
      x-throttling-tier: 10KPerMin
      x-auth-type: Application & Application User
components:
  schemas:
    CargoItemModel:
      required:
      - description
      - packageCount
      - packageType
      - weight
      - weightUom
      type: object
      properties:
        description:
          maxLength: 20
          minLength: 1
          type: string
          description: A short summary or identifier of the item being shipped.
        marksAndNumbers:
          maxLength: 17
          type: string
          description: Additional identifiers or labels applied to the item.
        stackable:
          type: boolean
          default: false
        packageCount:
          maximum: 999999
          minimum: 0
          type: integer
          format: int32
        packageType:
          maxLength: 3
          minLength: 1
          type: string
          description: Package type determined by master data "package-types" category. Call endpoint /master-data-categories/package-types/values for possible values.
          example: CAS
        weight:
          maximum: 100000
          minimum: 0
          type: number
          format: double
        weightUom:
          maxLength: 3
          minLength: 1
          type: string
          description: Weight Unit of Measurement determined by master data "uoms" category. Call endpoint /master-data-categories/uoms/values for possible values.
          example: KGM
        volume:
          maximum: 100000
          minimum: 0
          type: number
          format: double
        volumeUom:
          maxLength: 3
          minLength: 1
          type: string
          description: Volume Unit of Measurement determined by master data "uoms" category. Call endpoint /master-data-categories/uoms/values for possible values.
          example: LTR
        dimensionLength:
          maximum: 10000
          minimum: 0
          type: number
          format: double
        dimensionWidth:
          maximum: 10000
          minimum: 0
          type: number
          format: double
        dimensionHeight:
          maximum: 10000
          minimum: 0
          type: number
          format: double
        dimensionsUom:
          maxLength: 3
          minLength: 1
          type: string
          description: Dimensions Unit of Measurement determined by master data "uoms" category. Call endpoint /master-data-categories/uoms/values for possible values.
          example: M
        monetaryValue:
          $ref: '#/components/schemas/MonetaryValueModel'
        barcodeValue:
          type: array
          items:
            type:
            - string
            - 'null'
            description: Provide a list of barcode values to be used on the shipping label
        dangerousGoodsInformation:
          type: array
          items:
            $ref: '#/components/schemas/DangerousGoodsInformationModel'
      description: One component of the cargo booking request, in which individual items of the same type are grouped together for shipping as a unit.
    BookingOptionsModel:
      required:
      - code
      type: object
      properties:
        code:
          maxLength: 3
          minLength: 1
          type: string
          description: Option code determined by master data "booking-options" category. Call endpoint  /master-data-categories/booking-options/values for possible values.
          example: RA
        value:
          minLength: 0
          type: string
          description: Optional value to accompany an option code. Not every option code requires a value, but when one is needed, this field supplies the relevant additional details.
          example: '17'
      description: A single free-form option for the booking. Allows for enabling or specifying many different types of details, chosen from a pre-defined list of options and pre-negotiated with Kuehne + Nagel. Not every option code requires a value to be entered alongside.
    MonetaryValueModel:
      required:
      - totalValue
      - valueCurrency
      type: object
      properties:
        totalValue:
          multipleOf: 0.01
          maximum: 99999999.99
          minimum: 0
          type: number
          format: double
        valueCurrency:
          maxLength: 3
          minLength: 1
          type: string
          description: Currency code determined by master data "currencies" category. Call endpoint /master-data-categories/currencies/values for possible values.
          example: EUR
    AddressModel:
      required:
      - city
      - countryCode
      - name1
      - postalCode
      - street1
      type: object
      properties:
        name1:
          maxLength: 35
          minLength: 1
          type: string
          description: Name or title of the party or location.
        name2:
          maxLength: 35
          type: string
          description: Additional name or title information.
        street1:
          maxLength: 35
          minLength: 1
          type: string
          description: Street address or PO box.
        street2:
          maxLength: 35
          type: string
          description: Unit numbers, or additional street address information which did not fit in Street1.
        city:
          maxLength: 35
          minLength: 1
          type: string
          description: Full city name.
        stateProvinceCode:
          maxLength: 3
          minLength: 1
          type: string
          description: State/Province code determined by master data "region-codes" category. Call endpoint /master-data-categories/region-codes/values for possible values.
          example: HH
        postalCode:
          maxLength: 12
          type: string
          description: Postal or zip code in native format for the country.
          example: '20354'
        countryCode:
          maxLength: 2
          minLength: 1
          type: string
          description: Country code determined by master data "country-codes" category. Call endpoint /master-data-categories/country-codes/values for possible values.
          example: DE
      description: A named address, representing a party or location involved with the freight booking request.
    LocationModel:
      required:
      - address
      - contact
      type: object
      properties:
        address:
          $ref: '#/components/schemas/AddressModel'
        requestDate:
          maxLength: 10
          type: string
          description: REQUIRED FOR PICKUP LOCATION. The requested date in which a transport should arrive at a waypoint, or is expected at a waypoint. Formatted based on YYYY-MM-DD.
        requestBeginTime:
          maxLength: 14
          minLength: 6
          type: string
          description: An optional addition to the Request Date to define the earliest time in the day expected. Formatted based on a 24-hour clock, with timezone information appended to the end.
          format: time
          example: 13:30:00Z
        requestEndTime:
          maxLength: 14
          minLength: 6
          type: string
          description: An optional addition to the Request Date to define the latest time in the day expected. Formatted based on a 24-hour clock, with timezone information appended to the end.
          format: time
          example: 19:00:00+01:00
        additionalInformation:
          maxLength: 210
          type: string
          description: Any additional instructions relevant to the waypoint or to the transport at this particular waypoint.
        contact:
          $ref: '#/components/schemas/ContactModel'
      description: One location that comprises the overall journey of a freight booking request.
    PartyModel:
      required:
      - address
      type: object
      properties:
        address:
          $ref: '#/components/schemas/AddressModel'
        references:
          maxItems: 100
          type: array
          items:
            $ref: '#/components/schemas/ReferenceModel'
      description: A party, involved with the cargo booking. Often represents a Freight Payer, a Shipper, a Consignee, or a Bill-To party, to name a few. Negotiate with Kuehne + Nagel ahead of time to determine which parties are important for your specific transactions.
    BookingFlagsModel:
      type: object
      properties:
        appointmentRequired:
          type: boolean
          default: false
        tailLiftRequired:
          type: boolean
          default: false
        highValue:
          type: boolean
          default: false
        oversizedGoods:
          type: boolean
          default: false
        privateConsignee:
          type: boolean
          default: false
        insurance:
          type: boolean
          default: false
      description: Collection of flags denoting various conditions that apply to cargo booking as a whole.
    IncoTermModel:
      type: object
      properties:
        code:
          maxLength: 3
          minLength: 1
          type: string
          description: Incoterm code determined by master data "incoterms" category. Call endpoint /master-data-categories/incoterms/values for possible values.
          example: CTO
        location:
          maxLength: 35
          type: string
          example: hub1
      description: Denotes incoterms that apply to the cargo booking as a whole.
    DangerousGoodsInformationModel:
      type: object
      properties:
        numberOfPackages:
          maximum: 999999
          minimum: 0
          type: integer
          description: Number of packages classified as dangerous goods in the cargo item.
          format: int32
          default: 0
        numberOfPackagesType:
          maxLength: 3
          minLength: 1
          type: string
          description: Package type determined by master data "package-types" category. Call endpoint /master-data-categories/package-types/values for possible values.
          example: CAS
        quantity:
          maximum: 100000
          minimum: 0
          type: number
          format: double
        quantityUOM:
          maxLength: 3
          minLength: 1
          type: string
          description: Package type determined by master data "package-types" category. Call endpoint /master-data-categories/package-types/values for possible values.
          example: CAS
        netExplosiveQuantity:
          maximum: 100000
          minimum: 0
          type: number
          format: double
        netExplosiveQuantityUOM:
          maxLength: 3
          minLength: 1
          type: string
          description: Package type determined by master data "package-types" category. Call endpoint /master-data-categories/package-types/values for possible values.
          example: CAS
        unNumber:
          maxLength: 10
          minLength: 1
          type: string
          description: United nations organisation number.
          example: '3066'
        properShippingName:
          maxLength: 160
          minLength: 1
          type: string
        technicalName:
          maxLength: 160
          minLength: 1
          type: string
        transportCategory:
          maxLength: 10
          minLength: 1
          type: string
          example: '5.1'
        packingGroup:
          maxLength: 10
          minLength: 1
          type: string
          example: III
        tunnelRestrictionCode:
          maxLength: 10
          minLength: 1
          type: string
          example: B
        mainRisk:
          maxLength: 10
          minLength: 1
          type: string
        subsidiaryRisks:
          maxItems: 3
          type: array
          description: List of additional, subsidiary risks of the dangerous cargo.
          items:
            maxLength: 10
            minLength: 1
            type: string
        limitedQuantity:
          type: boolean
          default: false
        exceptedQuantity:
          type: boolean
          default: false
        environmentallyHazardous:
          type: boolean
          default: false
      description: Denotes various details related to dangerous goods contained within the cargo item. Most fields within are optional, and as much as possible should be included if relevant.
    LabelResponse:
      required:
      - barcodeValue
      - labelPdfBase64Encoded
      type: object
      properties:
        barcodeValue:
          type: array
          description: List of generates barcode values for the booking, represented on the related label. If booking was unsuccessful, will be empty.
          items:
            maxLength: 20
            minLength: 0
            type: string
            example: '840482858000000000'
        labelPdfBase64Encoded:
          minLength: 0
          type: string
          description: Base64 encoded label PDF, automatically generated with booking details and barcodes. If booking was unsuccessful, will be blank.
        labelZpl:
          type: array
          description: Optional ZPL based label format.
          items:
            type: string
    BookingRequest:
      required:
      - cargoItems
      - consigneeParty
      - customerId
      - customerKey
      - deliveryLocation
      - pickupLocation
      - shipperParty
      type: object
      properties:
        customerId:
          maxLength: 50
          minLength: 1
          type: string
          description: Key or code indicating customer or customer sub-entity. Negotiated with Kuehne + Nagel ahead of time.
          example: CustomerBranchWest
        customerKey:
          maxLength: 50
          minLength: 1
          type: string
          description: Additional key or code indicating customer or customer sub-entity. Negotiated with Kuehne + Nagel ahead of time.
        bookingFlags:
          $ref: '#/components/schemas/BookingFlagsModel'
        bookingOptions:
          type: array
          items:
            $ref: '#/components/schemas/BookingOptionsModel'
        dangerousGoodsPackageCount:
          maximum: 999999
          minimum: 0
          type: integer
          description: Denotes whether the cargo booking contains any dangerous goods, and if so, in what quantity.
          format: int32
          default: 0
        incoterm:
          $ref: '#/components/schemas/IncoTermModel'
        totalMonetaryValue:
          $ref: '#/components/schemas/MonetaryValueModel'
        shipperParty:
          $ref: '#/components/schemas/PartyModel'
        consigneeParty:
          $ref: '#/components/schemas/PartyModel'
        billToParty:
          $ref: '#/components/schemas/PartyModel'
        notifyParty:
          $ref: '#/components/schemas/PartyModel'
        pickupLocation:
          $ref: '#/components/schemas/LocationModel'
        deliveryLocation:
          $ref: '#/components/schemas/LocationModel'
        cargoItems:
          maxItems: 100
          type: array
          items:
            $ref: '#/components/schemas/CargoItemModel'
    BookingResponse:
      required:
      - bookingID
      - bookingIsSuccessful
      - errorMessage
      - shipmentLabel
      - transactionID
      type: object
      properties:
        errorMessage:
          minLength: 0
          type: string
          description: Indicates problems with current booking request, if any. If booking was successful, will be blank.
          example: ''
        bookingID:
          maxLength: 12
          minLength: 0
          type: string
          description: Unique identifier for the submitted booking. If booking was unsuccessful, will be blank.
          example: RAPI00000500
        transactionID:
          minLength: 1
          type: string
          description: Unique identifier for the API transaction, used for debugging.
          example: '800100'
        bookingIsSuccessful:
          type: boolean
          description: Indicates whether the booking was successful
        shipmentLabel:
          $ref: '#/components/schemas/LabelResponse'
    ReferenceModel:
      required:
      - code
      - value
      type: object
      properties:
        code:
          maxLength: 3
          minLength: 1
          type: string
          description: Reference type determined by master data "reference-types" category. Call endpoint /master-data-categories/reference-types/values for possible values.
          example: SRN
        value:
          maxLength: 35
          type: string
      description: A shipping reference associated with either the named address, or the cargo booking as a whole.
    ContactModel:
      required:
      - name
      type: object
      properties:
        name:
          type: string
        phone:
          type: string
        mobilePhone:
          type: string
        email:
          type: string
  securitySchemes:
    default:
      type: oauth2
      flows:
        implicit:
          authorizationUrl: https://internal.api.kuehne-nagel.com/authorize
          scopes: {}
    api_key:
      type: apiKey
      name: apikey
      in: header