Operations 3
Documentation
Documentation
https://maritime.dnv.com/api/cs-iacs-customer
Authentication
https://maritime.dnv.com/api/cs-iacs-customer
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/dnv-vessels-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.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:
schemas:
SurveySummary:
type: object
properties:
lastAnnualSurvey:
type: string
format: date
nextAnnualSurveyDue:
type: string
format: date
lastSpecialSurvey:
type: string
format: date
nextSpecialSurveyDue:
type: string
format: date
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
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
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
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'
responses:
Forbidden:
description: No API contract with DNV for this resource
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: Vessel not found in DNV register
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: Authentication token missing or expired
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
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