Navis (Kaleris) · Capability

Navis N4 Terminal Operating System REST API

NAVIS N4 provides terminal operating system APIs for container port operations. APIs enable container tracking, vessel planning, berth scheduling, yard management, and gate operations for port terminals and intermodal facilities. Now operated by Kaleris, serving 650+ organizations across 95+ countries.

Run with Naftiko NavisAPI

What You Can Do

GET
Searchunits — Search container units
/units
GET
Getunit — Get container unit details
/units/{unitId}
GET
Listvesselvisits — List vessel visits
/vessel-visits
GET
Getvesselvisit — Get vessel visit details
/vessel-visits/{visitId}
GET
Getvesselvisitunits — Get units for a vessel visit
/vessel-visits/{visitId}/units
GET
Listgatetransactions — List gate transactions
/gate-transactions
GET
Getworkqueues — Get active work queues
/work-queues
GET
Listholds — List active holds on units
/holds

MCP Tools

searchunits

Search container units

read-only idempotent
getunit

Get container unit details

read-only idempotent
listvesselvisits

List vessel visits

read-only idempotent
getvesselvisit

Get vessel visit details

read-only idempotent
getvesselvisitunits

Get units for a vessel visit

read-only idempotent
listgatetransactions

List gate transactions

read-only idempotent
getworkqueues

Get active work queues

read-only idempotent
listholds

List active holds on units

read-only idempotent

Capability Spec

navis-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Navis N4 Terminal Operating System REST API
  description: NAVIS N4 provides terminal operating system APIs for container port operations. APIs enable container tracking,
    vessel planning, berth scheduling, yard management, and gate operations for port terminals and intermodal facilities.
    Now operated by Kaleris, serving 650+ organizations across 95+ countries.
  tags:
  - Navis
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: navis
    baseUri: https://yourterminal.navis.example.com/apex/n4/api/v2
    description: Navis N4 Terminal Operating System REST API HTTP API.
    authentication:
      type: basic
      username: '{{NAVIS_USERNAME}}'
      password: '{{NAVIS_PASSWORD}}'
    resources:
    - name: units
      path: /units
      operations:
      - name: searchunits
        method: GET
        description: Search container units
        inputParameters:
        - name: unitNbr
          in: query
          type: string
          description: Container number (ISO 6346 format, e.g., MSCU1234567)
        - name: equipmentType
          in: query
          type: string
        - name: category
          in: query
          type: string
        - name: freightKind
          in: query
          type: string
        - name: positionLocType
          in: query
          type: string
        - name: lineOperator
          in: query
          type: string
          description: Shipping line SCAC code
        - name: vesselVisit
          in: query
          type: string
          description: Vessel visit identifier
        - name: limit
          in: query
          type: integer
        - name: offset
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: units-unitid
      path: /units/{unitId}
      operations:
      - name: getunit
        method: GET
        description: Get container unit details
        inputParameters:
        - name: unitId
          in: path
          type: string
          required: true
          description: N4 unit identifier or ISO 6346 container number
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: vessel-visits
      path: /vessel-visits
      operations:
      - name: listvesselvisits
        method: GET
        description: List vessel visits
        inputParameters:
        - name: vesselName
          in: query
          type: string
        - name: status
          in: query
          type: string
        - name: arrivalFrom
          in: query
          type: string
        - name: arrivalTo
          in: query
          type: string
        - name: limit
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: vessel-visits-visitid
      path: /vessel-visits/{visitId}
      operations:
      - name: getvesselvisit
        method: GET
        description: Get vessel visit details
        inputParameters:
        - name: visitId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: vessel-visits-visitid-units
      path: /vessel-visits/{visitId}/units
      operations:
      - name: getvesselvisitunits
        method: GET
        description: Get units for a vessel visit
        inputParameters:
        - name: visitId
          in: path
          type: string
          required: true
        - name: category
          in: query
          type: string
        - name: limit
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: gate-transactions
      path: /gate-transactions
      operations:
      - name: listgatetransactions
        method: GET
        description: List gate transactions
        inputParameters:
        - name: transactionType
          in: query
          type: string
        - name: containerNbr
          in: query
          type: string
        - name: truckId
          in: query
          type: string
        - name: fromDate
          in: query
          type: string
        - name: toDate
          in: query
          type: string
        - name: limit
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: work-queues
      path: /work-queues
      operations:
      - name: getworkqueues
        method: GET
        description: Get active work queues
        inputParameters:
        - name: craneId
          in: query
          type: string
        - name: status
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: holds
      path: /holds
      operations:
      - name: listholds
        method: GET
        description: List active holds on units
        inputParameters:
        - name: unitNbr
          in: query
          type: string
        - name: holdType
          in: query
          type: string
        - name: limit
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: navis-rest
    description: REST adapter for Navis N4 Terminal Operating System REST API.
    resources:
    - path: /units
      name: searchunits
      operations:
      - method: GET
        name: searchunits
        description: Search container units
        call: navis.searchunits
        outputParameters:
        - type: object
          mapping: $.
    - path: /units/{unitId}
      name: getunit
      operations:
      - method: GET
        name: getunit
        description: Get container unit details
        call: navis.getunit
        with:
          unitId: rest.unitId
        outputParameters:
        - type: object
          mapping: $.
    - path: /vessel-visits
      name: listvesselvisits
      operations:
      - method: GET
        name: listvesselvisits
        description: List vessel visits
        call: navis.listvesselvisits
        outputParameters:
        - type: object
          mapping: $.
    - path: /vessel-visits/{visitId}
      name: getvesselvisit
      operations:
      - method: GET
        name: getvesselvisit
        description: Get vessel visit details
        call: navis.getvesselvisit
        with:
          visitId: rest.visitId
        outputParameters:
        - type: object
          mapping: $.
    - path: /vessel-visits/{visitId}/units
      name: getvesselvisitunits
      operations:
      - method: GET
        name: getvesselvisitunits
        description: Get units for a vessel visit
        call: navis.getvesselvisitunits
        with:
          visitId: rest.visitId
        outputParameters:
        - type: object
          mapping: $.
    - path: /gate-transactions
      name: listgatetransactions
      operations:
      - method: GET
        name: listgatetransactions
        description: List gate transactions
        call: navis.listgatetransactions
        outputParameters:
        - type: object
          mapping: $.
    - path: /work-queues
      name: getworkqueues
      operations:
      - method: GET
        name: getworkqueues
        description: Get active work queues
        call: navis.getworkqueues
        outputParameters:
        - type: object
          mapping: $.
    - path: /holds
      name: listholds
      operations:
      - method: GET
        name: listholds
        description: List active holds on units
        call: navis.listholds
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: navis-mcp
    transport: http
    description: MCP adapter for Navis N4 Terminal Operating System REST API for AI agent use.
    tools:
    - name: searchunits
      description: Search container units
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: navis.searchunits
      with:
        unitNbr: tools.unitNbr
        equipmentType: tools.equipmentType
        category: tools.category
        freightKind: tools.freightKind
        positionLocType: tools.positionLocType
        lineOperator: tools.lineOperator
        vesselVisit: tools.vesselVisit
        limit: tools.limit
        offset: tools.offset
      inputParameters:
      - name: unitNbr
        type: string
        description: Container number (ISO 6346 format, e.g., MSCU1234567)
      - name: equipmentType
        type: string
        description: equipmentType
      - name: category
        type: string
        description: category
      - name: freightKind
        type: string
        description: freightKind
      - name: positionLocType
        type: string
        description: positionLocType
      - name: lineOperator
        type: string
        description: Shipping line SCAC code
      - name: vesselVisit
        type: string
        description: Vessel visit identifier
      - name: limit
        type: integer
        description: limit
      - name: offset
        type: integer
        description: offset
      outputParameters:
      - type: object
        mapping: $.
    - name: getunit
      description: Get container unit details
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: navis.getunit
      with:
        unitId: tools.unitId
      inputParameters:
      - name: unitId
        type: string
        description: N4 unit identifier or ISO 6346 container number
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: listvesselvisits
      description: List vessel visits
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: navis.listvesselvisits
      with:
        vesselName: tools.vesselName
        status: tools.status
        arrivalFrom: tools.arrivalFrom
        arrivalTo: tools.arrivalTo
        limit: tools.limit
      inputParameters:
      - name: vesselName
        type: string
        description: vesselName
      - name: status
        type: string
        description: status
      - name: arrivalFrom
        type: string
        description: arrivalFrom
      - name: arrivalTo
        type: string
        description: arrivalTo
      - name: limit
        type: integer
        description: limit
      outputParameters:
      - type: object
        mapping: $.
    - name: getvesselvisit
      description: Get vessel visit details
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: navis.getvesselvisit
      with:
        visitId: tools.visitId
      inputParameters:
      - name: visitId
        type: string
        description: visitId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: getvesselvisitunits
      description: Get units for a vessel visit
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: navis.getvesselvisitunits
      with:
        visitId: tools.visitId
        category: tools.category
        limit: tools.limit
      inputParameters:
      - name: visitId
        type: string
        description: visitId
        required: true
      - name: category
        type: string
        description: category
      - name: limit
        type: integer
        description: limit
      outputParameters:
      - type: object
        mapping: $.
    - name: listgatetransactions
      description: List gate transactions
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: navis.listgatetransactions
      with:
        transactionType: tools.transactionType
        containerNbr: tools.containerNbr
        truckId: tools.truckId
        fromDate: tools.fromDate
        toDate: tools.toDate
        limit: tools.limit
      inputParameters:
      - name: transactionType
        type: string
        description: transactionType
      - name: containerNbr
        type: string
        description: containerNbr
      - name: truckId
        type: string
        description: truckId
      - name: fromDate
        type: string
        description: fromDate
      - name: toDate
        type: string
        description: toDate
      - name: limit
        type: integer
        description: limit
      outputParameters:
      - type: object
        mapping: $.
    - name: getworkqueues
      description: Get active work queues
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: navis.getworkqueues
      with:
        craneId: tools.craneId
        status: tools.status
      inputParameters:
      - name: craneId
        type: string
        description: craneId
      - name: status
        type: string
        description: status
      outputParameters:
      - type: object
        mapping: $.
    - name: listholds
      description: List active holds on units
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: navis.listholds
      with:
        unitNbr: tools.unitNbr
        holdType: tools.holdType
        limit: tools.limit
      inputParameters:
      - name: unitNbr
        type: string
        description: unitNbr
      - name: holdType
        type: string
        description: holdType
      - name: limit
        type: integer
        description: limit
      outputParameters:
      - type: object
        mapping: $.
binds:
- namespace: env
  keys:
    NAVIS_USERNAME: NAVIS_USERNAME
    NAVIS_PASSWORD: NAVIS_PASSWORD