API Explorer

Maritime vessel tracking and marine navigation data API providing real-time AIS data, vessel information, port events, and nautical infrastructure locations

Base URL: https://api.vesselapi.com/v1

API Authentication

Enter your API key once to test all endpoints using the "Try It" feature below.

Your API key is stored only in memory and never logged or transmitted except for API requests.

Vessels

Retrieve vessel information including positions, static data, and estimated time of arrival by MMSI, IMO, name, or location

GET /location/vessels/bounding-box 🔒 Auth Required

Get vessels within a bounding box

Retrieves vessels within a specified bounding box. Max span: |dLat| + |dLon| ≤ 4 degrees

Name Type In Description
filter.lonLeft * number query Longitude of the left (western) edge of the bounding box
Example: 4
filter.lonRight * number query Longitude of the right (eastern) edge of the bounding box
Example: 5
filter.latBottom * number query Latitude of the bottom (southern) edge of the bounding box
Example: 51
filter.latTop * number query Latitude of the top (northern) edge of the bounding box
Example: 52
time.from string query Start timestamp in RFC3339 format (defaults to 2 hours ago)
time.to string query End timestamp in RFC3339 format (defaults to current time)
pagination.limit integer query Maximum number of items to return, must be between 1 and 50
Default: 20
pagination.nextToken string query Token for next page
200 OK

Schema: VesselsWithinLocationResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "nextToken": "string",
  "vessels": [
    {
      "cog": 231.5,
      "heading": 230,
      "imo": 9321483,
      "latitude": 1.2644,
      "location": {},
      "longitude": 103.8215,
      "mmsi": 477045900,
      "nav_status": 0,
      "processed_timestamp": "string",
      "sog": 14.1,
      "suspected_glitch": false,
      "timestamp": "string",
      "vessel_name": "EVER GIVEN"
    }
  ]
}
GET /location/vessels/radius 🔒 Auth Required

Get vessels within a radius

Retrieves vessels within a specified radius of a given point and and a given time range

Name Type In Description
filter.longitude * number query Longitude of the center point
Example: 4.5
filter.latitude * number query Latitude of the center point
Example: 51.5
filter.radius * number query Search radius in meters (max 100,000 = 100 km)
Example: 100000
time.from string query Start timestamp in RFC3339 format (defaults to 2 hours ago)
time.to string query End timestamp in RFC3339 format (defaults to current time)
pagination.limit integer query Maximum number of items to return, must be between 1 and 50
Default: 20
pagination.nextToken string query Token for next page
200 OK

Schema: VesselsWithinLocationResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "nextToken": "string",
  "vessels": [
    {
      "cog": 231.5,
      "heading": 230,
      "imo": 9321483,
      "latitude": 1.2644,
      "location": {},
      "longitude": 103.8215,
      "mmsi": 477045900,
      "nav_status": 0,
      "processed_timestamp": "string",
      "sog": 14.1,
      "suspected_glitch": false,
      "timestamp": "string",
      "vessel_name": "EVER GIVEN"
    }
  ]
}
GET /search/vessels 🔒 Auth Required

Search for Vessels

Retrieves a list of vessels matching the given filters. At least one filter parameter is required.

Name Type In Description
filter.name string query Name of the vessel
Example: EVER GIVEN
filter.callsign string query Radio callsign of the vessel
Example: H3RC
filter.flag string query ISO 2-letter country code of the flag state
Example: PA
filter.vesselType string query Vessel type classification (case-insensitive)
Example: Container Ship
filter.mmsi integer query MMSI number
Example: 4.770459e+08
filter.imo integer query IMO number
Example: 9.321483e+06
filter.yearBuiltMin integer query Minimum year built
Example: 2010
filter.yearBuiltMax integer query Maximum year built
Example: 2020
filter.classSociety string query Classification society (case-insensitive)
Example: Lloyd's Register
filter.owner string query Owner name (partial match, case-insensitive)
Example: Evergreen
pagination.limit integer query Maximum number of items to return, must be between 1 and 50
Default: 20
pagination.nextToken string query Token for next page
200 OK

Schema: FindVesselsResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "nextToken": "string",
  "vessels": [
    {
      "breadth": 59,
      "breadth_unit": "m",
      "builder": "Imabari Shipbuilding",
      "call_sign": "H3RC",
      "class_society": "American Bureau of Shipping",
      "country": "Panama",
      "country_code": "PA",
      "deadweight_tonnage": 199629,
      "draft": 16,
      "draft_unit": "m",
      "engine_model_name": "string",
      "engine_type": 0,
      "former_names": [
        {}
      ],
      "gross_tonnage": 220940,
      "home_port": "Panama City",
      "imo": 9321483,
      "kilowatt_power": 58000,
      "length": 400,
      "length_unit": "m",
      "manager_name": "Evergreen Marine Corp",
      "mmsi": 477045900,
      "name": "EVER GIVEN",
      "operating_status": "Active",
      "owner_name": "Evergreen Marine Corp",
      "vessel_type": "Container Ship",
      "year_built": 2018
    }
  ]
}
GET /vessel/{id} 🔒 Auth Required

Get vessel information by MMSI or IMO

Retrieves static vessel data including name, type, dimensions, and registration information for a vessel identified by its MMSI or IMO number

Name Type In Description
id * string path MMSI or IMO number
Example: 232003239
filter.idType * string query Identifier type: 'mmsi' or 'imo'
Example: mmsi
Enum: mmsi, imo
200 OK

Schema: VesselResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

404 Not Found

Schema: NotFoundErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "vessel": {
    "breadth": 59,
    "breadth_unit": "m",
    "builder": "Imabari Shipbuilding",
    "call_sign": "H3RC",
    "class_society": "American Bureau of Shipping",
    "country": "Panama",
    "country_code": "PA",
    "deadweight_tonnage": 199629,
    "draft": 16,
    "draft_unit": "m",
    "engine_model_name": "string",
    "engine_type": 0,
    "former_names": [
      {
        "name": "EVER GREEN",
        "year_until": "2018"
      }
    ],
    "gross_tonnage": 220940,
    "home_port": "Panama City",
    "imo": 9321483,
    "kilowatt_power": 58000,
    "length": 400,
    "length_unit": "m",
    "manager_name": "Evergreen Marine Corp",
    "mmsi": 477045900,
    "name": "EVER GIVEN",
    "operating_status": "Active",
    "owner_name": "Evergreen Marine Corp",
    "vessel_type": "Container Ship",
    "year_built": 2018
  }
}
GET /vessel/{id}/eta 🔒 Auth Required

Get vessel latest ETA

Retrieves the most recent Estimated Time of Arrival (ETA) reported by the vessel

Name Type In Description
id * string path MMSI or IMO number
Example: 232003239
filter.idType * string query Identifier type: 'mmsi' or 'imo'
Example: mmsi
Enum: mmsi, imo
200 OK

Schema: VesselETAResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

404 Not Found

Schema: NotFoundErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "vesselEta": {
    "destination": "SINGAPORE",
    "draught": 14.5,
    "eta": "string",
    "imo": 9321483,
    "mmsi": 477045900,
    "timestamp": "string",
    "vessel_name": "EVER GIVEN"
  }
}
GET /vessel/{id}/position 🔒 Auth Required

Get last known vessel position

Retrieves the most recent AIS position report for a vessel, including coordinates, vessel identifiers, and timestamps

Name Type In Description
id * string path MMSI or IMO number
Example: 232003239
filter.idType * string query Identifier type: 'mmsi' or 'imo'
Example: mmsi
Enum: mmsi, imo
200 OK

Schema: VesselPositionResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

404 Not Found

Schema: NotFoundErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "vesselPosition": {
    "cog": 231.5,
    "heading": 230,
    "imo": 9321483,
    "latitude": 1.2644,
    "location": {
      "coordinates": [
        103.8215,
        1.2644
      ],
      "type": "Point"
    },
    "longitude": 103.8215,
    "mmsi": 477045900,
    "nav_status": 0,
    "processed_timestamp": "string",
    "sog": 14.1,
    "suspected_glitch": false,
    "timestamp": "string",
    "vessel_name": "EVER GIVEN"
  }
}
GET /vessels/positions 🔒 Auth Required

Get positions for multiple vessels

Retrieves AIS position data for multiple vessels identified by MMSI or IMO numbers within a specified time range (defaults to past 2 hours). Provide multiple IDs as comma-separated values.

Name Type In Description
filter.ids * string query Comma-separated list of MMSI or IMO numbers
Example: 232003239,246497000
filter.idType * string query Identifier type: 'mmsi' or 'imo'
Example: mmsi
Enum: mmsi, imo
time.from string query Start timestamp in RFC3339 format (defaults to 2 hours ago)
time.to string query End timestamp in RFC3339 format (defaults to current time)
pagination.limit integer query Maximum number of items to return, must be between 1 and 50
Default: 20
pagination.nextToken string query Pagination token for retrieving the next page of results
200 OK

Schema: VesselPositionsResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "nextToken": "string",
  "vesselPositions": [
    {
      "cog": 231.5,
      "heading": 230,
      "imo": 9321483,
      "latitude": 1.2644,
      "location": {},
      "longitude": 103.8215,
      "mmsi": 477045900,
      "nav_status": 0,
      "processed_timestamp": "string",
      "sog": 14.1,
      "suspected_glitch": false,
      "timestamp": "string",
      "vessel_name": "EVER GIVEN"
    }
  ]
}

Vessel Enrichment

Access classification, ownership, and management data for vessels identified by IMO or MMSI

GET /vessel/{id}/classification 🔒 Auth Required

Get classification data for a vessel

Retrieves vessel classification data including identification, ownership, certificates, surveys, and technical specifications

Name Type In Description
id * string path MMSI or IMO number
Example: 9121998
filter.idType * string query Identifier type: 'mmsi' or 'imo'
Example: imo
Enum: mmsi, imo
200 OK

Schema: ClassificationResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

404 Not Found

Schema: NotFoundErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "classification": {
    "certificates": [
      {
        "certificate": "string",
        "code": "string",
        "expires": "string",
        "extUntil": "string",
        "issued": "string",
        "term": "string",
        "type": "string"
      }
    ],
    "classification": {
      "classEntryDate": "string",
      "classNotationString": "string",
      "classNotationStringDesign": "string",
      "classNotationStringInOperation": "string",
      "classNotationStringMain": "string",
      "constructionSymbol": "string",
      "dualClass": "string",
      "equipmentNumber": "string",
      "lastClassificationSociety": "string",
      "mainClass": "string",
      "mainClassMachinery": "string",
      "registerNotationString": "string"
    },
    "collectedAt": "string",
    "conditions": [
      {
        "condition": "string",
        "dueDate": "string",
        "imposedDate": "string"
      }
    ],
    "dimensions": {
      "bm": 0,
      "dm": 0,
      "draught": 0,
      "dwt": 0,
      "grossTon69": 0,
      "lbp": 0,
      "lengthOverall": 0,
      "netTon69": 0
    },
    "hull": {
      "decksNumber": "string"
    },
    "identification": {
      "classStatusString": "string",
      "flagCode": "string",
      "flagName": "string",
      "homePort": "string",
      "imoNumber": "string",
      "nonClassRelationString": "string",
      "officialNumber": "string",
      "operationalStatusString": "string",
      "purposes": [
        {}
      ],
      "register": "string",
      "signalLetters": "string",
      "typeFormatted": "string",
      "vesselId": "string",
      "vesselName": "string"
    },
    "imo": 0,
    "machinery": {
      "mainPropulsion": "string"
    },
    "owner": {
      "docHolderDnvId": "string",
      "docHolderImoNumber": "string",
      "docHolderName": "string",
      "managerDnvId": "string",
      "managerImoNumber": "string",
      "managerName": "string",
      "ownerDnvId": "string",
      "ownerImoNumber": "string",
      "ownerName": "string"
    },
    "surveys": [
      {
        "category": "string",
        "dueFrom": "string",
        "dueTo": "string",
        "lastDate": "string",
        "location": "string",
        "postponed": "string",
        "survey": "string"
      }
    ],
    "yard": {
      "contractedBuilder": "string",
      "contractedBuilderBuildNo": "string",
      "dateOfBuild": "string",
      "hullYardBuildNo": "string",
      "hullYardName": "string",
      "keelDate": "string"
    }
  }
}
GET /vessel/{id}/ownership 🔒 Auth Required

Get ownership data for a vessel

Retrieves ownership and management information for the specified vessel

Name Type In Description
id * string path MMSI or IMO number
Example: 9121998
filter.idType * string query Identifier type: 'mmsi' or 'imo'
Example: imo
Enum: mmsi, imo
200 OK

Schema: types.OwnershipResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

404 Not Found

Schema: NotFoundErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "cached_at": "string",
  "imo": 0,
  "ownership": {
    "doc_company": "string",
    "doc_company_address": "string",
    "imo": 0,
    "registered_owner": "string",
    "registered_owner_address": "string",
    "ship_manager": "string",
    "ship_manager_address": "string"
  }
}

Vessel Emissions

Access vessel emissions data including CO2 emissions, fuel consumption, and energy efficiency metrics by vessel or reporting period

GET /emissions 🔒 Auth Required

List emissions data

Retrieves emissions data with optional filtering by reporting period

Name Type In Description
filter.period integer query Reporting year filter (e.g. 2024)
Example: 2024
pagination.limit integer query Maximum number of items to return, must be between 1 and 50
Default: 20
pagination.nextToken string query Pagination token for retrieving the next page of results
200 OK

Schema: VesselEmissionsResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "emissions": [
    {
      "co2_emissions_at_berth": 0,
      "co2_emissions_on_laden_voyages": 0,
      "co2_emissions_total": 0,
      "co2_per_distance": 0,
      "co2_per_transport_work": 0,
      "collected_at": "string",
      "distance_through_ice": 0,
      "doc_expiry_date": "string",
      "doc_issue_date": "string",
      "flag_code": "string",
      "flag_name": "string",
      "fuel_consumption_hfo": 0,
      "fuel_consumption_lfo": 0,
      "fuel_consumption_lng": 0,
      "fuel_consumption_mdo": 0,
      "fuel_consumption_mgo": 0,
      "fuel_consumption_other": 0,
      "fuel_consumption_total": 0,
      "fuel_per_distance": 0,
      "fuel_per_transport_work": 0,
      "home_port": "string",
      "ice_class": "string",
      "imo": 0,
      "monitoring_method_a": "string",
      "monitoring_method_b": "string",
      "monitoring_method_c": "string",
      "monitoring_method_d": "string",
      "name": "string",
      "port_calls_outside_eu": 0,
      "port_calls_within_eu": 0,
      "reporting_period": "string",
      "source_url": "string",
      "technical_efficiency": "string",
      "technical_efficiency_value": 0,
      "time_at_sea_through_ice": 0,
      "total_time_at_sea": 0,
      "unique_key": "string",
      "verifier_accreditation": "string",
      "verifier_address": "string",
      "verifier_name": "string",
      "vessel_type": "string"
    }
  ],
  "nextToken": "string"
}
GET /vessel/{id}/emissions 🔒 Auth Required

Get emissions data for a vessel

Retrieves emissions reports for the specified vessel including CO2 emissions, fuel consumption, and efficiency metrics

Name Type In Description
id * string path MMSI or IMO number
Example: 1045356
filter.idType * string query Identifier type: 'mmsi' or 'imo'
Example: imo
Enum: mmsi, imo
pagination.limit integer query Maximum number of items to return, must be between 1 and 50
Default: 20
pagination.nextToken string query Pagination token for retrieving the next page of results
200 OK

Schema: VesselEmissionsResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

404 Not Found

Schema: NotFoundErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "emissions": [
    {
      "co2_emissions_at_berth": 0,
      "co2_emissions_on_laden_voyages": 0,
      "co2_emissions_total": 0,
      "co2_per_distance": 0,
      "co2_per_transport_work": 0,
      "collected_at": "string",
      "distance_through_ice": 0,
      "doc_expiry_date": "string",
      "doc_issue_date": "string",
      "flag_code": "string",
      "flag_name": "string",
      "fuel_consumption_hfo": 0,
      "fuel_consumption_lfo": 0,
      "fuel_consumption_lng": 0,
      "fuel_consumption_mdo": 0,
      "fuel_consumption_mgo": 0,
      "fuel_consumption_other": 0,
      "fuel_consumption_total": 0,
      "fuel_per_distance": 0,
      "fuel_per_transport_work": 0,
      "home_port": "string",
      "ice_class": "string",
      "imo": 0,
      "monitoring_method_a": "string",
      "monitoring_method_b": "string",
      "monitoring_method_c": "string",
      "monitoring_method_d": "string",
      "name": "string",
      "port_calls_outside_eu": 0,
      "port_calls_within_eu": 0,
      "reporting_period": "string",
      "source_url": "string",
      "technical_efficiency": "string",
      "technical_efficiency_value": 0,
      "time_at_sea_through_ice": 0,
      "total_time_at_sea": 0,
      "unique_key": "string",
      "verifier_accreditation": "string",
      "verifier_address": "string",
      "verifier_name": "string",
      "vessel_type": "string"
    }
  ],
  "nextToken": "string"
}

Safety & Compliance

Retrieve marine casualty records, port state control inspections, and inspection deficiency details for vessels

GET /vessel/{id}/casualties 🔒 Auth Required

Get marine casualties involving a vessel

Retrieves marine casualty records involving the specified vessel

Name Type In Description
id * string path MMSI or IMO number
Example: 9321483
filter.idType * string query Identifier type: 'mmsi' or 'imo'
Example: imo
Enum: mmsi, imo
pagination.limit integer query Maximum number of items to return, must be between 1 and 50
Default: 20
pagination.nextToken string query Pagination token for retrieving the next page of results
200 OK

Schema: MarineCasualtiesResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

404 Not Found

Schema: NotFoundErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "casualties": [
    {
      "atCoding": [
        "string"
      ],
      "casualtyReportNr": "string",
      "cfCoding": [
        "string"
      ],
      "collectedAt": "string",
      "competentAuthority": [
        "string"
      ],
      "dateOfOccurrence": "string",
      "deviation": [
        "string"
      ],
      "eventType": [
        "string"
      ],
      "finishedInvestigation": false,
      "imoNr": [
        "string"
      ],
      "interimReport": false,
      "investigatingState": "string",
      "livesLostTotal": "string",
      "nameOfShip": [
        "string"
      ],
      "occurrenceSeverity": "string",
      "occurrenceUuid": "string",
      "occurrenceWithPersons": [
        "string"
      ],
      "occurrenceWithShips": [
        "string"
      ],
      "peopleInjuredTotal": "string",
      "pollution": false,
      "shipCraftType": [
        "string"
      ],
      "srCoding": [
        "string"
      ]
    }
  ],
  "nextToken": "string"
}
GET /vessel/{id}/inspections 🔒 Auth Required

Get inspection records for a vessel

Retrieves port state control inspection records for the specified vessel

Name Type In Description
id * string path MMSI or IMO number
Example: 9121998
filter.idType * string query Identifier type: 'mmsi' or 'imo'
Example: imo
Enum: mmsi, imo
200 OK

Schema: types.InspectionsResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

404 Not Found

Schema: NotFoundErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "cached_at": "string",
  "imo": 0,
  "inspection_count": 0,
  "inspections": [
    {
      "authority": "string",
      "deficiencies": 0,
      "detail_id": "string",
      "detained": false,
      "imo": 0,
      "inspection_date": "string",
      "inspection_type": "string",
      "mou_region": "string",
      "port": "string"
    }
  ]
}
GET /vessel/{id}/inspections/{detail_id} 🔒 Auth Required

Get inspection detail

Retrieves detailed inspection information including deficiencies for a specific inspection

Name Type In Description
id * string path MMSI or IMO number
Example: 9121998
detail_id * string path Inspection detail ID
Example: 6352425
filter.idType * string query Identifier type: 'mmsi' or 'imo'
Example: imo
Enum: mmsi, imo
200 OK

Schema: types.InspectionDetailResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

404 Not Found

Schema: NotFoundErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "cached_at": "string",
  "detail_id": "string",
  "imo": 0,
  "inspection_detail": {
    "authority": "string",
    "deficiencies": [
      {
        "category": "string",
        "count": 0,
        "deficiency": "string"
      }
    ],
    "deficiency_count": 0,
    "detail_id": "string",
    "detained": false,
    "detention_grounds": [
      {
        "category": "string",
        "count": 0,
        "deficiency": "string"
      }
    ],
    "imo": 0,
    "inspection_date": "string",
    "inspection_type": "string",
    "mou_region": "string",
    "port": "string"
  }
}

Ports

Search world port index data by location, name, or geographic area

GET /location/ports/bounding-box 🔒 Auth Required

Get Ports within a bounding box

Retrieves Ports within a specified bounding box. Max span: |dLat| + |dLon| ≤ 4 degrees

Name Type In Description
filter.lonLeft * number query Longitude of the left (western) edge of the bounding box
Example: 4
filter.lonRight * number query Longitude of the right (eastern) edge of the bounding box
Example: 5
filter.latBottom * number query Latitude of the bottom (southern) edge of the bounding box
Example: 51
filter.latTop * number query Latitude of the top (northern) edge of the bounding box
Example: 52
pagination.limit integer query Maximum number of items to return, must be between 1 and 50
Default: 20
pagination.nextToken string query Token for next page
200 OK

Schema: PortsWithinLocationResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "nextToken": "string",
  "ports": [
    {
      "anchorage_depth": 20,
      "anchorage_depth_unit": "m",
      "cargo_handling_depth": 18,
      "cargo_handling_depth_unit": "m",
      "channel_depth": 23,
      "channel_depth_unit": "m",
      "country": {},
      "garbage_disposal": true,
      "harbor_size": "Large",
      "harbor_type": "CN",
      "harbor_use": "CARGO",
      "has_drydock": true,
      "latitude": 1.2644,
      "location": {},
      "longitude": 103.8215,
      "max_vessel_beam": 60,
      "max_vessel_beam_unit": "m",
      "max_vessel_draft": 16,
      "max_vessel_draft_unit": "m",
      "max_vessel_length": 400,
      "max_vessel_length_unit": "m",
      "medical_facilities": true,
      "name": "Singapore",
      "navigation_area": "XI",
      "pilotage_available": true,
      "pilotage_compulsory": true,
      "port_security": true,
      "region_name": "Southeast Asia",
      "repair_capability": "Major",
      "shelter": "Excellent",
      "size": "Large",
      "supply_diesel": true,
      "supply_fuel": true,
      "supply_water": true,
      "traffic_separation_scheme": true,
      "tugs_available": true,
      "type": "Seaport",
      "unlo_code": "SGSIN",
      "vessel_traffic_service": true
    }
  ]
}
GET /location/ports/radius 🔒 Auth Required

Get Ports within a radius

Retrieves Ports within a specified radius of a given point

Name Type In Description
filter.longitude * number query Longitude of the center point
Example: 4.5
filter.latitude * number query Latitude of the center point
Example: 51.5
filter.radius * number query Search radius in meters (max 100,000 = 100 km)
Example: 100000
pagination.limit integer query Maximum number of items to return, must be between 1 and 50
Default: 20
pagination.nextToken string query Token for next page
200 OK

Schema: PortsWithinLocationResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "nextToken": "string",
  "ports": [
    {
      "anchorage_depth": 20,
      "anchorage_depth_unit": "m",
      "cargo_handling_depth": 18,
      "cargo_handling_depth_unit": "m",
      "channel_depth": 23,
      "channel_depth_unit": "m",
      "country": {},
      "garbage_disposal": true,
      "harbor_size": "Large",
      "harbor_type": "CN",
      "harbor_use": "CARGO",
      "has_drydock": true,
      "latitude": 1.2644,
      "location": {},
      "longitude": 103.8215,
      "max_vessel_beam": 60,
      "max_vessel_beam_unit": "m",
      "max_vessel_draft": 16,
      "max_vessel_draft_unit": "m",
      "max_vessel_length": 400,
      "max_vessel_length_unit": "m",
      "medical_facilities": true,
      "name": "Singapore",
      "navigation_area": "XI",
      "pilotage_available": true,
      "pilotage_compulsory": true,
      "port_security": true,
      "region_name": "Southeast Asia",
      "repair_capability": "Major",
      "shelter": "Excellent",
      "size": "Large",
      "supply_diesel": true,
      "supply_fuel": true,
      "supply_water": true,
      "traffic_separation_scheme": true,
      "tugs_available": true,
      "type": "Seaport",
      "unlo_code": "SGSIN",
      "vessel_traffic_service": true
    }
  ]
}
GET /port/{unlocode} 🔒 Auth Required

Get Port by UNLOCODE

Retrieves port details by its UN/LOCODE (e.g., NLRTM for Rotterdam, SGSIN for Singapore)

Name Type In Description
unlocode * string path UN/LOCODE of the port
Example: NLRTM
200 OK

Schema: PortResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

404 Not Found

Schema: NotFoundErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "port": {
    "anchorage_depth": 20,
    "anchorage_depth_unit": "m",
    "cargo_handling_depth": 18,
    "cargo_handling_depth_unit": "m",
    "channel_depth": 23,
    "channel_depth_unit": "m",
    "country": {
      "code": "SG",
      "name": "Singapore"
    },
    "garbage_disposal": true,
    "harbor_size": "Large",
    "harbor_type": "CN",
    "harbor_use": "CARGO",
    "has_drydock": true,
    "latitude": 1.2644,
    "location": {
      "coordinates": [
        103.8215,
        1.2644
      ],
      "type": "Point"
    },
    "longitude": 103.8215,
    "max_vessel_beam": 60,
    "max_vessel_beam_unit": "m",
    "max_vessel_draft": 16,
    "max_vessel_draft_unit": "m",
    "max_vessel_length": 400,
    "max_vessel_length_unit": "m",
    "medical_facilities": true,
    "name": "Singapore",
    "navigation_area": "XI",
    "pilotage_available": true,
    "pilotage_compulsory": true,
    "port_security": true,
    "region_name": "Southeast Asia",
    "repair_capability": "Major",
    "shelter": "Excellent",
    "size": "Large",
    "supply_diesel": true,
    "supply_fuel": true,
    "supply_water": true,
    "traffic_separation_scheme": true,
    "tugs_available": true,
    "type": "Seaport",
    "unlo_code": "SGSIN",
    "vessel_traffic_service": true
  }
}
GET /search/ports 🔒 Auth Required

Search for Ports

Retrieves a list of ports matching the given filters. At least one filter parameter is required.

Name Type In Description
filter.name string query Name of the port
Example: Rotterdam
filter.country string query ISO 2-letter country code or country name
Example: NL
filter.type string query Port type classification (case-insensitive). Note: not all ports have a type assigned.
Example: Seaport
Enum: Seaport, River Port, Lake Port, Dry Port, Offshore Terminal
filter.size string query Port size classification
Example: Large
filter.region string query Geographic region name (partial match)
Example: Southeast Asia
filter.harborSize string query Harbor size classification
Example: Large
filter.harborUse string query Primary harbor use
Example: CARGO
pagination.limit integer query Maximum number of items to return, must be between 1 and 50
Default: 20
pagination.nextToken string query Token for next page
200 OK

Schema: FindPortsResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "nextToken": "string",
  "ports": [
    {
      "anchorage_depth": 20,
      "anchorage_depth_unit": "m",
      "cargo_handling_depth": 18,
      "cargo_handling_depth_unit": "m",
      "channel_depth": 23,
      "channel_depth_unit": "m",
      "country": {},
      "garbage_disposal": true,
      "harbor_size": "Large",
      "harbor_type": "CN",
      "harbor_use": "CARGO",
      "has_drydock": true,
      "latitude": 1.2644,
      "location": {},
      "longitude": 103.8215,
      "max_vessel_beam": 60,
      "max_vessel_beam_unit": "m",
      "max_vessel_draft": 16,
      "max_vessel_draft_unit": "m",
      "max_vessel_length": 400,
      "max_vessel_length_unit": "m",
      "medical_facilities": true,
      "name": "Singapore",
      "navigation_area": "XI",
      "pilotage_available": true,
      "pilotage_compulsory": true,
      "port_security": true,
      "region_name": "Southeast Asia",
      "repair_capability": "Major",
      "shelter": "Excellent",
      "size": "Large",
      "supply_diesel": true,
      "supply_fuel": true,
      "supply_water": true,
      "traffic_separation_scheme": true,
      "tugs_available": true,
      "type": "Seaport",
      "unlo_code": "SGSIN",
      "vessel_traffic_service": true
    }
  ]
}

Port Events

Access port call information including vessel arrivals, departures, and current port activity

GET /portevents 🔒 Auth Required

Get Port Events in a time range

Get Port Events, such as Arrivals and Departures, in a time range with optional filters

Name Type In Description
time.from string query Start timestamp in RFC3339 format (defaults to 2 hours ago)
time.to string query End timestamp in RFC3339 format (defaults to current time)
filter.country string query Filter by port country (case-insensitive)
Example: Singapore
filter.unlocode string query Filter by port UN/LOCODE
Example: SGSIN
filter.eventType string query Filter by event type
Enum: arrival, departure, all
filter.vesselName string query Filter by vessel name (full-text search)
Example: EVER GIVEN
filter.portName string query Filter by port name (full-text search)
Example: Rotterdam
pagination.limit integer query Maximum number of items to return, must be between 1 and 50
Default: 20
pagination.nextToken string query Token for next page
200 OK

Schema: PortEventsResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "nextToken": "string",
  "portEvents": [
    {
      "event": "Arrival",
      "port": {},
      "timestamp": "string",
      "vessel": {}
    }
  ]
}
GET /portevents/port/{unlocode} 🔒 Auth Required

Get Port Events by port UNLOCODE

Get Port Events, such as Arrivals and Departures by supplying the port UN/LOCODE (e.g., NLRTM for Rotterdam, SGSIN for Singapore)

Name Type In Description
unlocode * string path UN/LOCODE of the port
Example: NLRTM
pagination.limit integer query Maximum number of items to return, must be between 1 and 50
Default: 20
pagination.nextToken string query Token for next page
200 OK

Schema: PortEventsResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

404 Not Found

Schema: NotFoundErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "nextToken": "string",
  "portEvents": [
    {
      "event": "Arrival",
      "port": {},
      "timestamp": "string",
      "vessel": {}
    }
  ]
}
GET /portevents/ports 🔒 Auth Required

Get Port Events by port name

Get Port Events, such as Arrivals and Departures by supplying the port name

Name Type In Description
filter.portName * string query Port name
Example: Rotterdam
pagination.limit integer query Maximum number of items to return, must be between 1 and 50
Default: 20
pagination.nextToken string query Token for next page
200 OK

Schema: PortEventsResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "nextToken": "string",
  "portEvents": [
    {
      "event": "Arrival",
      "port": {},
      "timestamp": "string",
      "vessel": {}
    }
  ]
}
GET /portevents/vessel/{id} 🔒 Auth Required

Get Port Events by Vessel ID

Get all port events (arrivals and departures) for a vessel identified by MMSI or IMO, with optional filtering by event type and time range

Name Type In Description
id * string path MMSI or IMO number
Example: 232003239
filter.idType * string query Identifier type (mmsi or imo)
Enum: mmsi, imo
filter.eventType string query Filter by event type
Default: all
Enum: arrival, departure, all
filter.sortOrder string query Sort order by timestamp
Default: desc
Enum: asc, desc
time.from string query Start timestamp in RFC3339 format (defaults to 2 hours ago)
time.to string query End timestamp in RFC3339 format (defaults to current time)
pagination.limit integer query Maximum number of items to return, must be between 1 and 50
Default: 20
pagination.nextToken string query Token for next page
200 OK

Schema: PortEventsResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

404 Not Found

Schema: NotFoundErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "nextToken": "string",
  "portEvents": [
    {
      "event": "Arrival",
      "port": {},
      "timestamp": "string",
      "vessel": {}
    }
  ]
}
GET /portevents/vessel/{id}/last 🔒 Auth Required

Get Last Port Event by ID

Get the most recent port event (arrival or departure) for a vessel identified by MMSI or IMO

Name Type In Description
id * string path MMSI or IMO number
Example: 232003239
filter.idType * string query Identifier type (mmsi or imo)
Enum: mmsi, imo
200 OK

Schema: PortEventResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

404 Not Found

Schema: NotFoundErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "portEvent": {
    "event": "Arrival",
    "port": {
      "country": "Singapore",
      "name": "Singapore",
      "unlo_code": "SGSIN"
    },
    "timestamp": "string",
    "vessel": {
      "imo": 9321483,
      "mmsi": 477045900,
      "name": "EVER GIVEN"
    }
  }
}
GET /portevents/vessels 🔒 Auth Required

Get Port Events by vessel name

Get Port Events by vessel name

Name Type In Description
filter.vesselName * string query Vessel name
Example: strangford 2
pagination.limit integer query Maximum number of items to return, must be between 1 and 50
Default: 20
pagination.nextToken string query Token for next page
200 OK

Schema: PortEventsResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "nextToken": "string",
  "portEvents": [
    {
      "event": "Arrival",
      "port": {},
      "timestamp": "string",
      "vessel": {}
    }
  ]
}

Navtex Messages

Query NAVTEX maritime safety broadcasts and navigational warnings

GET /navtex 🔒 Auth Required

Get Navtex messages in a time range

Get Navtex messages in a time range

Name Type In Description
time.from string query Start timestamp in RFC3339 format (defaults to 2 hours ago)
time.to string query End timestamp in RFC3339 format (defaults to current time)
pagination.limit integer query Maximum number of items to return, must be between 1 and 50
Default: 20
pagination.nextToken string query Token for next page
200 OK

Schema: NavtexMessagesResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "navtexMessages": [
    {
      "issuing_office": "TOKYO",
      "label": "NAVIGATIONAL WARNING",
      "lines": [
        "string"
      ],
      "metarea_coordinator": "Japan",
      "metarea_id": "XI",
      "metarea_name": "South China Sea",
      "metarea_region": "Asia Pacific",
      "metarea_stations": [
        {}
      ],
      "raw_content": "string",
      "timestamp": "string",
      "wmo_header": "WWNP40"
    }
  ],
  "nextToken": "string"
}

Navigation Infrastructure

Locate maritime navigation aids and infrastructure including DGPS stations, light aids, MODUs, and radio beacons by geographic coordinates or name

GET /location/dgps/bounding-box 🔒 Auth Required

Get DGPS Stations within a bounding box

Retrieves Dgps stations within a specified bounding box. Max span: |dLat| + |dLon| ≤ 4 degrees

Name Type In Description
filter.lonLeft * number query Longitude of the left (western) edge of the bounding box
Example: 7
filter.lonRight * number query Longitude of the right (eastern) edge of the bounding box
Example: 9
filter.latBottom * number query Latitude of the bottom (southern) edge of the bounding box
Example: 55
filter.latTop * number query Latitude of the top (northern) edge of the bounding box
Example: 56
pagination.limit integer query Maximum number of items to return, must be between 1 and 50
Default: 20
pagination.nextToken string query Token for next page
200 OK

Schema: DGPSStationsWithinLocationResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "dgpsStations": [
    {
      "aid_type": "DGPS",
      "delete_flag": "string",
      "feature_number": 1234.5,
      "frequency": 290,
      "geopolitical_heading": "UNITED STATES",
      "location": {},
      "name": "Cape Henry DGPS",
      "notice_number": 12,
      "notice_week": "15",
      "notice_year": "2024",
      "position": "36°55.5'N 76°00.3'W",
      "post_note": "string",
      "preceding_note": "string",
      "range": 100,
      "region_heading": "EAST COAST",
      "remarks": "string",
      "remove_from_list": "string",
      "station_id": "852",
      "transfer_rate": 200,
      "volume_number": "PUB 117"
    }
  ],
  "nextToken": "string"
}
GET /location/dgps/radius 🔒 Auth Required

Get DGPS Stations within a radius

Retrieves Dgps stations within a specified radius of a given point

Name Type In Description
filter.longitude * number query Longitude of the center point
Example: 8.084
filter.latitude * number query Latitude of the center point
Example: 55.558
filter.radius * number query Search radius in meters (max 100,000 = 100 km)
Example: 10000
pagination.limit integer query Maximum number of items to return, must be between 1 and 50
Default: 20
pagination.nextToken string query Token for next page
200 OK

Schema: DGPSStationsWithinLocationResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "dgpsStations": [
    {
      "aid_type": "DGPS",
      "delete_flag": "string",
      "feature_number": 1234.5,
      "frequency": 290,
      "geopolitical_heading": "UNITED STATES",
      "location": {},
      "name": "Cape Henry DGPS",
      "notice_number": 12,
      "notice_week": "15",
      "notice_year": "2024",
      "position": "36°55.5'N 76°00.3'W",
      "post_note": "string",
      "preceding_note": "string",
      "range": 100,
      "region_heading": "EAST COAST",
      "remarks": "string",
      "remove_from_list": "string",
      "station_id": "852",
      "transfer_rate": 200,
      "volume_number": "PUB 117"
    }
  ],
  "nextToken": "string"
}
GET /location/lightaids/bounding-box 🔒 Auth Required

Get Light Aids to Navigation within a bounding box

Retrieves Light Aids to Navigation within a specified bounding box. Max span: |dLat| + |dLon| ≤ 4 degrees

Name Type In Description
filter.lonLeft * number query Longitude of the left (western) edge of the bounding box
Example: 4
filter.lonRight * number query Longitude of the right (eastern) edge of the bounding box
Example: 5
filter.latBottom * number query Latitude of the bottom (southern) edge of the bounding box
Example: 51
filter.latTop * number query Latitude of the top (northern) edge of the bounding box
Example: 52
pagination.limit integer query Maximum number of items to return, must be between 1 and 50
Default: 20
pagination.nextToken string query Token for next page
200 OK

Schema: LightAidsWithinLocationResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "lightAids": [
    {
      "aid_type": "Light",
      "characteristic": "Fl W 7.5s",
      "characteristic_number": 0,
      "delete_flag": "string",
      "feature_number": "590",
      "geopolitical_heading": "UNITED STATES",
      "height_feet_meters": "192ft 59m",
      "local_heading": "Cape Hatteras",
      "location": {},
      "name": "Cape Hatteras Light",
      "notice_number": 0,
      "notice_week": "string",
      "notice_year": "string",
      "position": "35°15.1'N 75°31.6'W",
      "post_note": "string",
      "preceding_note": "string",
      "range": "24",
      "region_heading": "EAST COAST",
      "remarks": "string",
      "remove_from_list": "string",
      "structure": "Black and white spiral bands",
      "subregion_heading": "North Carolina",
      "volume_number": "PUB 110"
    }
  ],
  "nextToken": "string"
}
GET /location/lightaids/radius 🔒 Auth Required

Get Light Aids to Navigation within a radius

Retrieves Light Aids to Navigation within a specified radius of a given point

Name Type In Description
filter.longitude * number query Longitude of the center point
Example: 4.5
filter.latitude * number query Latitude of the center point
Example: 51.5
filter.radius * number query Search radius in meters (max 100,000 = 100 km)
Example: 100000
pagination.limit integer query Maximum number of items to return, must be between 1 and 50
Default: 20
pagination.nextToken string query Token for next page
200 OK

Schema: LightAidsWithinLocationResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "lightAids": [
    {
      "aid_type": "Light",
      "characteristic": "Fl W 7.5s",
      "characteristic_number": 0,
      "delete_flag": "string",
      "feature_number": "590",
      "geopolitical_heading": "UNITED STATES",
      "height_feet_meters": "192ft 59m",
      "local_heading": "Cape Hatteras",
      "location": {},
      "name": "Cape Hatteras Light",
      "notice_number": 0,
      "notice_week": "string",
      "notice_year": "string",
      "position": "35°15.1'N 75°31.6'W",
      "post_note": "string",
      "preceding_note": "string",
      "range": "24",
      "region_heading": "EAST COAST",
      "remarks": "string",
      "remove_from_list": "string",
      "structure": "Black and white spiral bands",
      "subregion_heading": "North Carolina",
      "volume_number": "PUB 110"
    }
  ],
  "nextToken": "string"
}
GET /location/modu/bounding-box 🔒 Auth Required

Get Mobile Offshore Drilling Units within a bounding box

Retrieves Mobile Offshore Drilling Units within a specified bounding box. Max span: |dLat| + |dLon| ≤ 4 degrees

Name Type In Description
filter.lonLeft * number query Longitude of the left (western) edge of the bounding box
Example: -89
filter.lonRight * number query Longitude of the right (eastern) edge of the bounding box
Example: -88
filter.latBottom * number query Latitude of the bottom (southern) edge of the bounding box
Example: 28
filter.latTop * number query Latitude of the top (northern) edge of the bounding box
Example: 29
pagination.limit integer query Maximum number of items to return, must be between 1 and 50
Default: 20
pagination.nextToken string query Token for next page
200 OK

Schema: MODUsWithinLocationResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "modus": [
    {
      "date": "string",
      "distance": 0,
      "latitude": 28.7381,
      "location": {},
      "longitude": -88.3659,
      "name": "DEEPWATER HORIZON",
      "navigation_area": "IV",
      "position": "Gulf of Mexico",
      "region": 8,
      "rig_status": "Drilling",
      "special_status": "string",
      "sub_region": 81
    }
  ],
  "nextToken": "string"
}
GET /location/modu/radius 🔒 Auth Required

Get Mobile Offshore Drilling Units within a radius

Retrieves Mobile Offshore Drilling Units within a specified radius of a given point

Name Type In Description
filter.longitude * number query Longitude of the center point
Example: -88.5
filter.latitude * number query Latitude of the center point
Example: 28.2
filter.radius * number query Search radius in meters (max 100,000 = 100 km)
Example: 50000
pagination.limit integer query Maximum number of items to return, must be between 1 and 50
Default: 20
pagination.nextToken string query Token for next page
200 OK

Schema: MODUsWithinLocationResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "modus": [
    {
      "date": "string",
      "distance": 0,
      "latitude": 28.7381,
      "location": {},
      "longitude": -88.3659,
      "name": "DEEPWATER HORIZON",
      "navigation_area": "IV",
      "position": "Gulf of Mexico",
      "region": 8,
      "rig_status": "Drilling",
      "special_status": "string",
      "sub_region": 81
    }
  ],
  "nextToken": "string"
}
GET /location/radiobeacons/bounding-box 🔒 Auth Required

Get Radio Beacons within a bounding box

Retrieves Radio Beacons within a specified bounding box. Max span: |dLat| + |dLon| ≤ 4 degrees

Name Type In Description
filter.lonLeft * number query Longitude of the left (western) edge of the bounding box
Example: -1
filter.lonRight * number query Longitude of the right (eastern) edge of the bounding box
Example: 1
filter.latBottom * number query Latitude of the bottom (southern) edge of the bounding box
Example: 50
filter.latTop * number query Latitude of the top (northern) edge of the bounding box
Example: 51
pagination.limit integer query Maximum number of items to return, must be between 1 and 50
Default: 20
pagination.nextToken string query Token for next page
200 OK

Schema: RadioBeaconsWithinLocationResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "nextToken": "string",
  "radioBeacons": [
    {
      "aid_type": "RBn",
      "characteristic": "A (.--)",
      "delete_flag": "string",
      "feature_number": 456,
      "frequency": "286 kHz",
      "geopolitical_heading": "UNITED STATES",
      "location": {},
      "name": "Ambrose Light",
      "notice_number": 0,
      "notice_week": "string",
      "notice_year": "string",
      "position": "40°27.1'N 73°49.5'W",
      "post_note": "string",
      "preceding_note": "string",
      "range": "20",
      "region_heading": "EAST COAST",
      "remove_from_list": "string",
      "sequence_text": "string",
      "station_remark": "string",
      "volume_number": "PUB 117"
    }
  ]
}
GET /location/radiobeacons/radius 🔒 Auth Required

Get Radio Beacons within a radius

Retrieves Radio Beacons within a specified radius of a given point

Name Type In Description
filter.longitude * number query Longitude of the center point
Example: -0.1
filter.latitude * number query Latitude of the center point
Example: 50.8
filter.radius * number query Search radius in meters (max 100,000 = 100 km)
Example: 100000
pagination.limit integer query Maximum number of items to return, must be between 1 and 50
Default: 20
pagination.nextToken string query Token for next page
200 OK

Schema: RadioBeaconsWithinLocationResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "nextToken": "string",
  "radioBeacons": [
    {
      "aid_type": "RBn",
      "characteristic": "A (.--)",
      "delete_flag": "string",
      "feature_number": 456,
      "frequency": "286 kHz",
      "geopolitical_heading": "UNITED STATES",
      "location": {},
      "name": "Ambrose Light",
      "notice_number": 0,
      "notice_week": "string",
      "notice_year": "string",
      "position": "40°27.1'N 73°49.5'W",
      "post_note": "string",
      "preceding_note": "string",
      "range": "20",
      "region_heading": "EAST COAST",
      "remove_from_list": "string",
      "sequence_text": "string",
      "station_remark": "string",
      "volume_number": "PUB 117"
    }
  ]
}
GET /search/dgps 🔒 Auth Required

Search for DGPS Stations

Retrieves a list of DGPS stations for the given query parameters

Name Type In Description
filter.name * string query Name of the DGPS station
Example: Hammer Odde
pagination.limit integer query Maximum number of items to return, must be between 1 and 50
Default: 20
pagination.nextToken string query Token for next page
200 OK

Schema: FindDGPSStationsResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "dgpsStations": [
    {
      "aid_type": "DGPS",
      "delete_flag": "string",
      "feature_number": 1234.5,
      "frequency": 290,
      "geopolitical_heading": "UNITED STATES",
      "location": {},
      "name": "Cape Henry DGPS",
      "notice_number": 12,
      "notice_week": "15",
      "notice_year": "2024",
      "position": "36°55.5'N 76°00.3'W",
      "post_note": "string",
      "preceding_note": "string",
      "range": 100,
      "region_heading": "EAST COAST",
      "remarks": "string",
      "remove_from_list": "string",
      "station_id": "852",
      "transfer_rate": 200,
      "volume_number": "PUB 117"
    }
  ],
  "nextToken": "string"
}
GET /search/lightaids 🔒 Auth Required

Search for Light Aids to Navigation

Retrieves a list of Light Aids to Navigation for the given query parameters

Name Type In Description
filter.name * string query Name of the Light Aid
Example: Creach
pagination.limit integer query Maximum number of items to return, must be between 1 and 50
Default: 20
pagination.nextToken string query Token for next page
200 OK

Schema: FindLightAidsResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "lightAids": [
    {
      "aid_type": "Light",
      "characteristic": "Fl W 7.5s",
      "characteristic_number": 0,
      "delete_flag": "string",
      "feature_number": "590",
      "geopolitical_heading": "UNITED STATES",
      "height_feet_meters": "192ft 59m",
      "local_heading": "Cape Hatteras",
      "location": {},
      "name": "Cape Hatteras Light",
      "notice_number": 0,
      "notice_week": "string",
      "notice_year": "string",
      "position": "35°15.1'N 75°31.6'W",
      "post_note": "string",
      "preceding_note": "string",
      "range": "24",
      "region_heading": "EAST COAST",
      "remarks": "string",
      "remove_from_list": "string",
      "structure": "Black and white spiral bands",
      "subregion_heading": "North Carolina",
      "volume_number": "PUB 110"
    }
  ],
  "nextToken": "string"
}
GET /search/modus 🔒 Auth Required

Search for MODUs

Retrieves a list of MODUs for the given query parameters

Name Type In Description
filter.name * string query Name of the MODU
Example: ABAN
pagination.limit integer query Maximum number of items to return, must be between 1 and 50
Default: 20
pagination.nextToken string query Token for next page
200 OK

Schema: FindMODUsResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "modus": [
    {
      "date": "string",
      "distance": 0,
      "latitude": 28.7381,
      "location": {},
      "longitude": -88.3659,
      "name": "DEEPWATER HORIZON",
      "navigation_area": "IV",
      "position": "Gulf of Mexico",
      "region": 8,
      "rig_status": "Drilling",
      "special_status": "string",
      "sub_region": 81
    }
  ],
  "nextToken": "string"
}
GET /search/radiobeacons 🔒 Auth Required

Search for Radio Beacons

Retrieves a list of Radio Beacons for the given query parameters

Name Type In Description
filter.name * string query Name of the Radio Beacon
Example: Brighton
pagination.limit integer query Maximum number of items to return, must be between 1 and 50
Default: 20
pagination.nextToken string query Token for next page
200 OK

Schema: FindRadioBeaconsResponse

400 Bad Request

Schema: BadRequestErrorResponse

401 Unauthorized

Schema: AuthenticationErrorResponse

429 Too Many Requests

Schema: RateLimitErrorResponse

500 Internal Server Error

Schema: InternalServerErrorResponse

{
  "nextToken": "string",
  "radioBeacons": [
    {
      "aid_type": "RBn",
      "characteristic": "A (.--)",
      "delete_flag": "string",
      "feature_number": 456,
      "frequency": "286 kHz",
      "geopolitical_heading": "UNITED STATES",
      "location": {},
      "name": "Ambrose Light",
      "notice_number": 0,
      "notice_week": "string",
      "notice_year": "string",
      "position": "40°27.1'N 73°49.5'W",
      "post_note": "string",
      "preceding_note": "string",
      "range": "20",
      "region_heading": "EAST COAST",
      "remove_from_list": "string",
      "sequence_text": "string",
      "station_remark": "string",
      "volume_number": "PUB 117"
    }
  ]
}