Public vessel check

Screen a hull by IMO (no key)

Screens one hull against sanctions, ownership opacity, and vetting. Requires NO API key and no account. Rate-limited to 100 requests/hour per IP and cached for one hour. The response reports X-RateLimit-Limit, -Remaining and -Reset so a client can pace itself without being refused first. Results are not retained against a customer and carry no quota. This screens a VESSEL, not a voyage — voyage scoring is POST /api/v1/voyage-assessments and needs a key.

get/api/v1/vessels/{imo}/check

Request

  • Base URL: https://arcnautical.com
  • URL: https://arcnautical.com/api/v1/vessels/{imo}/check
  • Auth: none required

Path parameters

imostring required
Example:9811000

IMO number. Accepts 9811000 or IMO9811000 (URL-encode a space: IMO%209811000), the same forms POST /api/v1/screenings accepts. Anything without exactly one 7-digit number in it is refused with 400 invalid_imo, which is not counted against the hourly allowance.

Response

Screening verdict.

imostring required

The seven-digit IMO that was screened.

vesselNamestring nullable

The name our sources hold for this hull, so you can confirm WHICH vessel was screened. Null when no source names it.

identityBasis'sources' | 'user' | 'none'

sources = our records name the hull; none = nothing named it (the identifiers were screened, a name was not).

checkDigitValidboolean

False when the IMO fails its check digit — almost always a typo. The hull is still screened; treat a clear result with suspicion.

assessedboolean required

False means the hull was not assessed: ownership opacity/score and the vetting grade/score are then NULL and vetting.status is "not_assessed" — there is no stand-in value. Render "not assessed", never a grade. The sanctions verdict is unaffected.

checkedAtstring date-time required
providerstring
fullReportstring

Human-readable report URL for this hull.

docsstring

Documentation URL for this endpoint.

tier'keyless'

Always "keyless" here. Says which tier produced the body, so a client that also holds a key can tell the two record shapes apart.

tierDetailstring

What this tier does NOT contain, that a self-serve key is free, what it grants, and where to mint one. Rides on every response because this endpoint is the one channel a keyless integration is guaranteed to read.

fullRecordstring

Where the authenticated screening record is documented.

Changes

No recorded changes to this operation across all 1 revision of this API.