Kuehne+Nagel Upload API

Operations to upload shipment documents.

Operations 3

POST /shipments/{uniqueShipmentReference}/documents #
GET /shipments/{uniqueShipmentReference}/documents/{documentId} #
GET /shipments/{uniqueShipmentReference}/uploadable-document-types #

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-upload-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-upload-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Kuehne Nagel Upload API
  x-api-guideline-version: 1.11.7
  x-refined-note:
  - x-api-id differs across the merged source definitions and was not carried
  - x-api-version differs across the merged source definitions and was not carried
  version: '1.0'
  description: 'Operations tagged Upload across 2 of this provider''s published API definitions: kuehne-nagel-shipment-document-management-v2-openapi.json, kuehne-nagel-shipment-document-management-v3-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://gateway.api.kuehne-nagel.com/transport/execution/documentation/shipment/v2
- url: https://gateway.api.kuehne-nagel.com/transport/execution/documentation/shipment/v3
tags:
- name: Upload
  description: Operations to upload shipment documents.
paths:
  /shipments/{uniqueShipmentReference}/documents:
    post:
      tags:
      - Upload
      description: 'Add a document to a specific shipment.


        Before the document is actually added to the shipment the uploaded content must pass a

        security scan and conversion to [PDF/A](https://en.wikipedia.org/wiki/PDF/A). This is done asynchronously

        and usually only takes a couple of seconds. For the future it is planned to immediately scan and convert the document.

        '
      operationId: addDocument
      parameters:
      - $ref: '#/components/parameters/uniqueShipmentReferenceParameter'
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/AddDocumentRequest'
        required: true
      responses:
        '201':
          description: 'Request to add a document to the shipment was created.


            The status of the request can be retrieved using the returned link.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddDocumentResponse'
        default:
          $ref: '#/components/responses/default'
      security:
      - default: []
      x-auth-type: Application & Application User
      x-throttling-tier: 10KPerMin
    servers:
    - url: https://gateway.api.kuehne-nagel.com/transport/execution/documentation/shipment/v2
  /shipments/{uniqueShipmentReference}/documents/{documentId}:
    get:
      tags:
      - Upload
      description: Retrieve meta data of a specific shipment document.
      operationId: retrieveDocumentDetails
      parameters:
      - $ref: '#/components/parameters/uniqueShipmentReferenceParameter'
      - $ref: '#/components/parameters/documentIdParameter'
      responses:
        '200':
          description: Meta data of the document.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetrieveDocumentDetailsResponse'
        default:
          $ref: '#/components/responses/default'
      security:
      - default: []
      x-auth-type: Application & Application User
      x-throttling-tier: 10KPerMin
    servers:
    - url: https://gateway.api.kuehne-nagel.com/transport/execution/documentation/shipment/v2
  /shipments/{uniqueShipmentReference}/uploadable-document-types:
    get:
      tags:
      - Upload
      description: Retrieve the document types that can be used to add a document to the specific shipment.
      operationId: retrieveUploadableDocumentTypes
      parameters:
      - $ref: '#/components/parameters/uniqueShipmentReferenceParameter'
      responses:
        '200':
          description: Set of document types that can be used to add a document to the specific shipment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetrieveUploadableDocumentTypesResponse'
        default:
          $ref: '#/components/responses/default'
      security:
      - default: []
      x-auth-type: Application & Application User
      x-throttling-tier: 10KPerMin
    servers:
    - url: https://gateway.api.kuehne-nagel.com/transport/execution/documentation/shipment/v2
components:
  schemas:
    DocumentTypeName:
      maxLength: 255
      type: string
      description: Name of a document type according to the Kuehne+Nagel specific classification.
      example: Commercial Invoice
    DocumentId:
      maxLength: 255
      minLength: 1
      type: string
      description: Unique identifier of a shipment document.
      example: Q1234S56
    RetrieveDocumentDetailsResponse:
      required:
      - documentId
      - documentType
      - status
      type: object
      properties:
        documentId:
          $ref: '#/components/schemas/DocumentId'
        documentType:
          $ref: '#/components/schemas/DocumentType'
        status:
          $ref: '#/components/schemas/DocumentStatus'
      description: Response containing the detailed metadata of a specific shipment document.
    DocumentType:
      required:
      - code
      - name
      type: object
      properties:
        code:
          $ref: '#/components/schemas/DocumentTypeCode'
        name:
          $ref: '#/components/schemas/DocumentTypeName'
      description: Kuehne+Nagel specific classification of shipment documents.
      example:
        code: '380'
        name: Commercial Invoice
    Problem:
      required:
      - detail
      - title
      type: object
      properties:
        detail:
          maxLength: 256
          type: string
          description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized.

            '
          example: Connection to database timed out
        instance:
          type: string
          description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code.

            '
          format: uri-reference
          example: /problem/connection-error#token-info-read-timed-out
        status:
          minimum: 100
          type: integer
          description: 'The HTTP status code generated by the origin server for this occurrence of the problem.

            '
          format: int32
          example: 503
          exclusiveMaximum: 600
        title:
          maxLength: 128
          type: string
          description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized.

            '
          example: Service Unavailable
        type:
          type: string
          description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferencable and point to a human-readable documentation nor globally unique for the problem type.

            '
          format: uri-reference
          example: /problem/connection-error
          default: about:blank
      description: A problem details object as defined by RFC 7807, used to carry error information in HTTP API responses.
    RetrieveUploadableDocumentTypesResponse:
      required:
      - uploadableDocumentTypes
      type: object
      properties:
        uploadableDocumentTypes:
          maxItems: 512
          uniqueItems: true
          type: array
          description: List of document types available for uploading to the shipment.
          example:
          - code: '380'
            name: Commercial Invoice
          - code: '271'
            name: Packing List
          items:
            $ref: '#/components/schemas/DocumentType'
      description: Response containing the document types that can be uploaded for a specific shipment.
    AddDocumentResponse:
      required:
      - documentId
      - self
      type: object
      properties:
        documentId:
          $ref: '#/components/schemas/DocumentId'
        self:
          type: string
          description: URI to retrieve the meta data of the uploaded shipment document.
          format: uri
          example: https://.../shipments/N4242/documents/Q1234S56
      description: Response returned after a document upload request has been created.
    AddDocumentRequest:
      required:
      - documentContent
      - documentTypeCode
      type: object
      properties:
        documentContent:
          type: string
          description: "Content of the document (preferably a PDF) that should be added to the shipment.\n\nMust have\n* a size of max. 10 MB\n* a supported file extension\n  * pdf\n  * docx/doc\n  * xlsx/xls\n  * png\n  * jpeg/jpg\n  * tiff/tif\n  * rtf\n  * bmp\n* in case of a PDF: no read protection\n"
          format: binary
        documentTypeCode:
          $ref: '#/components/schemas/DocumentTypeCode'
      description: Request body for adding a document to a shipment.
    DocumentStatus:
      maxLength: 128
      type: string
      description: 'Extensible enum:

        * `OK`

        * `PROCESSING_UPLOAD`

        * `PROCESSING_UPLOAD_FAILED`

        '
      example: OK
      x-extensible-enum:
      - OK
      - PROCESSING_UPLOAD
      - PROCESSING_UPLOAD_FAILED
    DocumentTypeCode:
      maxLength: 3
      minLength: 3
      type: string
      description: 'Code of a document type according to the Kuehne+Nagel specific classification.


        The document types allowed for uploading a document can be retrieved via the operation `/shipments/{uniqueShipmentReference}/uploadable-document-types`.


        Often uploaded document types:

        * 380 (Commercial Invoice)

        * 271 (Packing List)

        * 944 (Customs Documents)

        * 833 (Export Declaration)

        '
      example: '380'
    AddDocumentRequest_2:
      required:
      - documentContent
      - documentTypeCode
      type: object
      properties:
        documentContent:
          type: string
          description: "Content of the document (preferably a PDF) that should be added to the shipment.\n\nMust have \n* a size of max. 10 MB\n* a supported file extension \n  * pdf\n  * docx/doc\n  * xlsx/xls\n  * png\n  * jpeg/jpg\n  * tiff/tif\n  * rtf\n  * bmp\n* in case of a PDF: no read protection\n"
          format: binary
        documentTypeCode:
          $ref: '#/components/schemas/DocumentTypeCode'
      description: Request body for adding a document to a shipment.
  parameters:
    documentIdParameter:
      name: documentId
      in: path
      description: Unique identifier of a document
      required: true
      style: simple
      explode: false
      schema:
        $ref: '#/components/schemas/DocumentId'
    uniqueShipmentReferenceParameter:
      name: uniqueShipmentReference
      in: path
      description: "By default this is the shipment __tracking number__ e.g. `N4242`.\n\nIn case a tracking number is not available a limited set of alternative references can be used.\nPlease use the track and trace API to first search for shipment details (e.g. by a customer specific reference)\nif none of the supported references are available .\n\nSupported references:\n* __tracking number__\n  * `{trackingNumber}` or `tracking-number:{trackingNumber}`\n  * e.g. `N4242` or `tracking-number:N4242`\n* __booking number__\n  * `booking-number:{bookingNumber}`\n  * e.g. `booking-number:B1`\n* __shipment id__\n  * `shipment-id:{shipmentId}`\n  * e.g. `shipment-id:S1`\n"
      required: true
      style: simple
      explode: false
      schema:
        maxLength: 255
        pattern: ^(tracking-number:|booking-number:|shipment-id:)?[A-Za-z0-9]+$
        type: string
        example: N4242
    uniqueShipmentReferenceParameter_2:
      name: uniqueShipmentReference
      in: path
      description: "By default this is the shipment __tracking number__ e.g. `N4242`. \n\nIn case a tracking number is not available a limited set of alternative references can be used.\nPlease use the track and trace API to first search for shipment details (e.g. by a customer specific reference)\nif none of the supported references are available .\n    \nSupported references:\n* __tracking number__\n  * `{trackingNumber}` or `tracking-number:{trackingNumber}`\n  * e.g. `N4242` or `tracking-number:N4242`\n* __booking number__\n  * `booking-number:{bookingNumber}`\n  * e.g. `booking-number:B1`\n* __shipment id__\n  * `shipment-id:{shipmentId}` \n  * e.g. `shipment-id:S1`\n"
      required: true
      style: simple
      explode: false
      schema:
        maxLength: 255
        pattern: ^(tracking-number:|booking-number:|shipment-id:)?[A-Za-z0-9]+$
        type: string
        example: N4242
  responses:
    default:
      description: An error occurred - please see the HTTP status code and the problem object for more information.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
  securitySchemes:
    default:
      type: oauth2
      flows:
        implicit:
          authorizationUrl: https://gateway.api.kuehne-nagel.com/authorize
          scopes: {}
    api_key:
      type: apiKey
      name: apikey
      in: header
x-refined-from:
- kuehne-nagel-shipment-document-management-v2-openapi.json
- kuehne-nagel-shipment-document-management-v3-openapi.json
x-wso2-api-key-header: ApiKey