openapi: 3.1.0 info: title: DNV Class Status Certificates Vessels 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. version: 1.0.0 contact: name: DNV Support url: https://help-center.veracity.com/en/ license: name: DNV Terms url: https://www.dnv.com/terms/ servers: - url: https://maritime.dnv.com/api/cs-iacs-customer description: DNV Class Status API Production security: - oauth2: [] tags: - name: Vessels description: Vessel classification status and information paths: /vessels: get: operationId: searchVessels summary: Search vessels by classification criteria description: Searches for vessels in DNV's classification register. Supports filtering by vessel name, IMO number, flag state, ship type, and classification status. Returns vessel summaries including class notation and current status. tags: - Vessels parameters: - name: imoNumber in: query description: IMO vessel identification number (7 digits) schema: type: string pattern: ^[0-9]{7}$ - name: vesselName in: query description: Vessel name (partial match supported) schema: type: string - name: flagState in: query description: ISO 3166-1 alpha-2 country code for flag state schema: type: string pattern: ^[A-Z]{2}$ - name: shipType in: query description: DNV ship type classification code schema: type: string - name: classStatus in: query description: Current class status filter schema: type: string enum: - CLASSED - SUSPENDED - WITHDRAWN - DELETED - name: limit in: query schema: type: integer default: 50 maximum: 200 - name: offset in: query schema: type: integer default: 0 responses: '200': description: List of vessels matching search criteria content: application/json: schema: $ref: '#/components/schemas/VesselList' application/xml: schema: $ref: '#/components/schemas/VesselList' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /vessels/{imoNumber}: get: operationId: getVessel summary: Get vessel classification details description: Returns detailed classification information for a specific vessel identified by IMO number, including class notation, survey status, and certificates. tags: - Vessels parameters: - name: imoNumber in: path required: true description: IMO vessel identification number (7 digits) schema: type: string pattern: ^[0-9]{7}$ - name: Accept in: header description: Response format schema: type: string default: application/json enum: - application/json - application/xml responses: '200': description: Vessel classification details content: application/json: schema: $ref: '#/components/schemas/Vessel' application/xml: schema: $ref: '#/components/schemas/Vessel' '404': $ref: '#/components/responses/NotFound' /fleets: get: operationId: getFleetStatus summary: Get fleet classification status description: Returns classification status for a fleet of vessels. Useful for fleet managers to monitor the overall compliance status of their vessels. tags: - Vessels parameters: - name: imoNumbers in: query description: Comma-separated list of IMO numbers (max 100) schema: type: string - name: includeExpiredCerts in: query schema: type: boolean default: false responses: '200': description: Fleet status summary content: application/json: schema: $ref: '#/components/schemas/FleetStatus' components: responses: Forbidden: description: No API contract with DNV for this resource content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: Authentication token missing or expired content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: Vessel not found in DNV register content: application/json: schema: $ref: '#/components/schemas/Error' schemas: FleetStatus: type: object properties: requestedCount: type: integer foundCount: type: integer vessels: type: array items: type: object properties: imoNumber: type: string vesselName: type: string classStatus: type: string nextSurveyDue: type: string format: date certificatesExpiringSoon: type: integer Vessel: allOf: - $ref: '#/components/schemas/VesselSummary' - type: object properties: vesselOwner: type: string technicalManager: type: string buildYear: type: integer grossTonnage: type: number deadweightTonnage: type: number length: type: number description: Length overall in meters beam: type: number description: Breadth in meters draught: type: number description: Maximum draught in meters mainEngineType: type: string mainEnginePower: type: number description: Main engine output in kW hullMaterial: type: string enum: - STEEL - ALUMINUM - GRP - WOOD surveys: $ref: '#/components/schemas/SurveySummary' nextSurveyDue: type: string format: date SurveySummary: type: object properties: lastAnnualSurvey: type: string format: date nextAnnualSurveyDue: type: string format: date lastSpecialSurvey: type: string format: date nextSpecialSurveyDue: type: string format: date VesselSummary: type: object properties: imoNumber: type: string description: IMO vessel identification number vesselName: type: string flagState: type: string description: ISO 3166-1 alpha-2 flag state code shipType: type: string classStatus: type: string enum: - CLASSED - SUSPENDED - WITHDRAWN - DELETED classNotation: type: string description: Full DNV class notation string Error: type: object properties: code: type: string message: type: string requestId: type: string VesselList: type: object properties: total: type: integer offset: type: integer vessels: type: array items: $ref: '#/components/schemas/VesselSummary' securitySchemes: oauth2: type: oauth2 description: OAuth 2.0 via Azure AD B2C. Tokens obtained from https://login.microsoftonline.com/dnvglb2cprod.onmicrosoft.com/oauth2/token using client credentials grant with resource ID c916a223-f3d4-4d43-b709-cfcd77ff4a05. flows: clientCredentials: tokenUrl: https://login.microsoftonline.com/dnvglb2cprod.onmicrosoft.com/oauth2/token scopes: class_status:read: Read vessel classification status