DNV · Capability

DNV Class Status API

DNV's Class Status API provides programmatic access to vessel classification data. Authentication uses OAuth 2.0 with Azure AD B2C as the identity provider. Access tokens are obtained from the Microsoft identity platform and are valid for approximately 20 minutes. Access requires a separate API contract with DNV. The API supports retry logic using exponential backoff for resilience.

Run with Naftiko DnvAPI

What You Can Do

GET
Searchvessels — Search vessels by classification criteria
/vessels
GET
Getvessel — Get vessel classification details
/vessels/{imoNumber}
GET
Getvesselcertificates — Get vessel classification certificates
/vessels/{imoNumber}/certificates
GET
Getvesselsurveys — Get vessel survey records and schedule
/vessels/{imoNumber}/surveys
GET
Getfleetstatus — Get fleet classification status
/fleets

MCP Tools

searchvessels

Search vessels by classification criteria

read-only idempotent
getvessel

Get vessel classification details

read-only idempotent
getvesselcertificates

Get vessel classification certificates

read-only idempotent
getvesselsurveys

Get vessel survey records and schedule

read-only idempotent
getfleetstatus

Get fleet classification status

read-only idempotent

Capability Spec

dnv-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: DNV Class Status API
  description: DNV's Class Status API provides programmatic access to vessel classification data. Authentication uses OAuth
    2.0 with Azure AD B2C as the identity provider. Access tokens are obtained from the Microsoft identity platform and are
    valid for approximately 20 minutes. Access requires a separate API contract with DNV. The API supports retry logic using
    exponential backoff for resilience.
  tags:
  - Dnv
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: dnv
    baseUri: https://maritime.dnv.com/api/cs-iacs-customer
    description: DNV Class Status API HTTP API.
    authentication:
      type: bearer
      token: '{{DNV_TOKEN}}'
    resources:
    - name: vessels
      path: /vessels
      operations:
      - name: searchvessels
        method: GET
        description: Search vessels by classification criteria
        inputParameters:
        - name: imoNumber
          in: query
          type: string
          description: IMO vessel identification number (7 digits)
        - name: vesselName
          in: query
          type: string
          description: Vessel name (partial match supported)
        - name: flagState
          in: query
          type: string
          description: ISO 3166-1 alpha-2 country code for flag state
        - name: shipType
          in: query
          type: string
          description: DNV ship type classification code
        - name: classStatus
          in: query
          type: string
          description: Current class status filter
        - name: limit
          in: query
          type: integer
        - name: offset
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: vessels-imonumber
      path: /vessels/{imoNumber}
      operations:
      - name: getvessel
        method: GET
        description: Get vessel classification details
        inputParameters:
        - name: imoNumber
          in: path
          type: string
          required: true
          description: IMO vessel identification number (7 digits)
        - name: Accept
          in: header
          type: string
          description: Response format
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: vessels-imonumber-certificates
      path: /vessels/{imoNumber}/certificates
      operations:
      - name: getvesselcertificates
        method: GET
        description: Get vessel classification certificates
        inputParameters:
        - name: imoNumber
          in: path
          type: string
          required: true
        - name: certificateType
          in: query
          type: string
          description: Filter by certificate type
        - name: status
          in: query
          type: string
          description: Filter by certificate validity status
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: vessels-imonumber-surveys
      path: /vessels/{imoNumber}/surveys
      operations:
      - name: getvesselsurveys
        method: GET
        description: Get vessel survey records and schedule
        inputParameters:
        - name: imoNumber
          in: path
          type: string
          required: true
        - name: surveyType
          in: query
          type: string
          description: Filter by survey type
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: fleets
      path: /fleets
      operations:
      - name: getfleetstatus
        method: GET
        description: Get fleet classification status
        inputParameters:
        - name: imoNumbers
          in: query
          type: string
          description: Comma-separated list of IMO numbers (max 100)
        - name: includeExpiredCerts
          in: query
          type: boolean
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: dnv-rest
    description: REST adapter for DNV Class Status API.
    resources:
    - path: /vessels
      name: searchvessels
      operations:
      - method: GET
        name: searchvessels
        description: Search vessels by classification criteria
        call: dnv.searchvessels
        outputParameters:
        - type: object
          mapping: $.
    - path: /vessels/{imoNumber}
      name: getvessel
      operations:
      - method: GET
        name: getvessel
        description: Get vessel classification details
        call: dnv.getvessel
        with:
          imoNumber: rest.imoNumber
        outputParameters:
        - type: object
          mapping: $.
    - path: /vessels/{imoNumber}/certificates
      name: getvesselcertificates
      operations:
      - method: GET
        name: getvesselcertificates
        description: Get vessel classification certificates
        call: dnv.getvesselcertificates
        with:
          imoNumber: rest.imoNumber
        outputParameters:
        - type: object
          mapping: $.
    - path: /vessels/{imoNumber}/surveys
      name: getvesselsurveys
      operations:
      - method: GET
        name: getvesselsurveys
        description: Get vessel survey records and schedule
        call: dnv.getvesselsurveys
        with:
          imoNumber: rest.imoNumber
        outputParameters:
        - type: object
          mapping: $.
    - path: /fleets
      name: getfleetstatus
      operations:
      - method: GET
        name: getfleetstatus
        description: Get fleet classification status
        call: dnv.getfleetstatus
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: dnv-mcp
    transport: http
    description: MCP adapter for DNV Class Status API for AI agent use.
    tools:
    - name: searchvessels
      description: Search vessels by classification criteria
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: dnv.searchvessels
      with:
        imoNumber: tools.imoNumber
        vesselName: tools.vesselName
        flagState: tools.flagState
        shipType: tools.shipType
        classStatus: tools.classStatus
        limit: tools.limit
        offset: tools.offset
      inputParameters:
      - name: imoNumber
        type: string
        description: IMO vessel identification number (7 digits)
      - name: vesselName
        type: string
        description: Vessel name (partial match supported)
      - name: flagState
        type: string
        description: ISO 3166-1 alpha-2 country code for flag state
      - name: shipType
        type: string
        description: DNV ship type classification code
      - name: classStatus
        type: string
        description: Current class status filter
      - name: limit
        type: integer
        description: limit
      - name: offset
        type: integer
        description: offset
      outputParameters:
      - type: object
        mapping: $.
    - name: getvessel
      description: Get vessel classification details
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: dnv.getvessel
      with:
        imoNumber: tools.imoNumber
      inputParameters:
      - name: imoNumber
        type: string
        description: IMO vessel identification number (7 digits)
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: getvesselcertificates
      description: Get vessel classification certificates
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: dnv.getvesselcertificates
      with:
        imoNumber: tools.imoNumber
        certificateType: tools.certificateType
        status: tools.status
      inputParameters:
      - name: imoNumber
        type: string
        description: imoNumber
        required: true
      - name: certificateType
        type: string
        description: Filter by certificate type
      - name: status
        type: string
        description: Filter by certificate validity status
      outputParameters:
      - type: object
        mapping: $.
    - name: getvesselsurveys
      description: Get vessel survey records and schedule
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: dnv.getvesselsurveys
      with:
        imoNumber: tools.imoNumber
        surveyType: tools.surveyType
      inputParameters:
      - name: imoNumber
        type: string
        description: imoNumber
        required: true
      - name: surveyType
        type: string
        description: Filter by survey type
      outputParameters:
      - type: object
        mapping: $.
    - name: getfleetstatus
      description: Get fleet classification status
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: dnv.getfleetstatus
      with:
        imoNumbers: tools.imoNumbers
        includeExpiredCerts: tools.includeExpiredCerts
      inputParameters:
      - name: imoNumbers
        type: string
        description: Comma-separated list of IMO numbers (max 100)
      - name: includeExpiredCerts
        type: boolean
        description: includeExpiredCerts
      outputParameters:
      - type: object
        mapping: $.
binds:
- namespace: env
  keys:
    DNV_TOKEN: DNV_TOKEN