API Documentation

Getting Started

1
Register

Create an account on our platform at datadocked.com.

2
Verify Your Email

Activate your account by clicking the verification link sent to your registered email.

3
Generate Your API Key

Log in to your account, navigate to your profile dashboard, and generate your unique API key.

4
Authentication

All API requests require authentication via request headers. Include your API key in the headers of each request.

Example Request

Pass your API key in the x-api-key header:

import requests

url = "https://datadocked.com/api/vessels_operations/get-vessel-info?imo_or_mmsi=9870666"

headers = {
    "accept": "application/json",
    "x-api-key": "YOUR_API_KEY"
}

response = requests.get(url, headers=headers)
Loading examples...

API Credit Costs

Each API call consumes credits based on the data complexity and processing requirements.

5 creditsVessel Info (comprehensive vessel data)
10 creditsVessels by Area (geographic vessel search)
3 creditsVessel Inspection Data (detailed inspection records)
1 creditAll other endpoints (location, particulars, engine data, etc.)
50 creditsPort Calls by Port

Rate Limits

To ensure fair usage and maintain service quality, all API endpoints are rate limited. Rate limits are applied per endpoint, per user.

EndpointRate Limit
get-vessel-info15/min
get-vessel-particulars50/min
get-vessel-location100/min
get-vessels-location-bulk-search15/min
get-vessel-engine-data50/min
get-vessel-management-data50/min
vessels-by-vessel-name50/min
vessel-mou15/min
get-vessel-weather15/min
get-vessel-historical-data15/min
get-vessels-by-area50/min
port-calls-by-vessel15/min
port-calls-by-port15/min
get-vessels-by-navigational-status50/min
get-vessels-ban-list15/min
route-planner15/min

Rate Limit Exceeded (429 Error)

When you exceed the rate limit, you'll receive a 429 response:

{
  "error": "Rate limit exceeded",
  "message": "You have exceeded the rate limit for this endpoint"
}

Best Practices

  • Track your requests to stay within the endpoint-specific rate limits
  • Implement exponential backoff when receiving 429 responses
  • Cache responses when possible to reduce API calls
  • Use the bulk endpoint to track up to 750 vessels per minute (50 vessels × 15 requests)

Common API Responses

Standard response codes returned across all endpoints.

Common Responses

  • 200 OK

    Request was successful

  • 400 Bad Request

    Invalid request parameters or malformed request

  • 401 Unauthorized

    Invalid or missing API key

  • 403 Forbidden

    Access denied or insufficient credits

  • 404 Not Found

    Vessel not found or endpoint does not exist

  • 429 Too Many Requests

    Rate limit exceeded - check endpoint-specific limits

  • 500 Internal Server Error

    Server error occurred

API Endpoints

Complete documentation for all available endpoints. Each section includes parameters, examples, and sample responses.

Account

Manage your API credits and account

My Credits

0 credits50/min
Endpoint
GET https://datadocked.com/api/vessels_operations/my-credits
Required Parameters
  • x-api-key (header)Your personal API key passed in the request headers, found in your profile dashboard
Available Fields
detail, credits
Example Request
import requests

url = "https://datadocked.com/api/vessels_operations/my-credits"

headers = {
    "accept": "application/json",
    "x-api-key": "YOUR_API_KEY"
}

response = requests.get(url, headers=headers)
print(response.json())
Response
{
  "detail": {
    "credits": 100
  }
}

Vessel Operations

Retrieve comprehensive vessel data and information

Get Vessel Info

5 credits15/min
Endpoint
GET https://datadocked.com/api/vessels_operations/get-vessel-info
Required Parameters
  • x-api-key (header)Your personal API key passed in the request headers, found in your profile dashboard
  • imo_or_mmsiThe IMO or MMSI number of the vessel you want to query.
Available Fields
name, mmsi, imo, country, countryIso, shipType, typeSpecific, callsign, teu, length, beam, eni, etaUtc, draught, deadweight, speed, atdUtc, latitude, longitude, course, destination, hull, builder, material, placeOfBuild, positionReceived, ballastWater, crudeOil, freshWater, gas, grain, bale, unlocode_destination, unlocode_lastport, lastPort, navigationalStatus, grossTonnage, netTonnage, yearOfBuilt, engine, engine.engineBuilder, engine.engineType, engine.enginePower(kW), engine.fuelType, engine.Propeller, ports, ports.portName, ports.portSign, ports.arrived, ports.departed, management, management.registeredOwner, management.registeredOwnerAddress, management.registeredOwnerWebsite, management.registeredOwnerEmail, management.manager, management.ismAddress, management.managerAddress, management.managerWebsite, management.managerEmail, management.ism, management.ismWeb, management.ismWebsite, management.ismEmail, management.P&I, management.ClassificationSociety, updateTime, dataSource
Example Request
import requests

url = "https://datadocked.com/api/vessels_operations/get-vessel-info?imo_or_mmsi=9247431"

headers = {
    "accept": "application/json",
    "x-api-key": "YOUR_API_KEY"
}

response = requests.get(url, headers=headers)
print(response.json())
Response
{
  "detail": {
    "name": "REGAL_I",
    "mmsi": "655919000",
    "imo": "9247431",
    "country": "Malawi",
    "shipType": "Tankers",
    "callsign": "7QA100",
    "teu": "-",
    "length": "269 m",
    "beam": "45 m",
    "eni": "-",
    "etaUtc": "Jan 04, 2026 04:00 UTC",
    "deadweight": "151693",
    "speed": "1.1",
    "atdUtc": "Nov 22, 2025 10:09 UTC",
    "latitude": "33.384193",
    "longitude": "128.03142",
    "course": "91",
    "destination": "Suez canal Egypt",
    "hull": "DOUBLE HULL",
    "builder": "HYUNDAI HEAVY INDUSTRIES CO., LTD.",
    "material": "STEEL",
    "placeOfBuild": "ULSAN, Korea",
    "positionReceived": "Jan 04, 2026 04:15 UTC",
    "ballastWater": "51317",
    "crudeOil": "1094930",
    "freshWater": "0",
    "gas": "0 m³",
    "grain": "0 m³",
    "bale": "0 m³",
    "unlocodeDestination": "EGSCN",
    "unlocodeLastport": "RUNVS",
    "lastPort": "Novorossiysk Russia",
    "countryIso": "MW",
    "typeSpecific": "Crude Oil Tanker",
    "navigationalStatus": "Underway using Engine",
    "grossTonnage": "79668",
    "netTonnage": "46553",
    "yearOfBuilt": "2004",
    "engine": {
      "fuelType": "MARINE DIESEL",
      "Propeller": "1 SCREW PROPELLER SOLID LB 10.00 AT 91 RPM",
      "engineType": "6S70MC",
      "engineBuilder": "HYUNDAI",
      "enginePower(kW)": "16860"
    },
    "management": {
      "P&I": "West of England P&I Club (inception 2024-02-20)",
      "ism": "OCEANPACK SHIP MANAGEMENT PVT",
      "ismWeb": "https://oceanpackship.com",
      "manager": "OCEANPACK SHIP MANAGEMENT PVT",
      "ismEmail": "[email protected]",
      "ismAddress": "Office A154, Plot 42A, Balaji Bhavan, Sector 11, CBD Belapur, Navi Mumbai, Maharashtra, 400614, India.",
      "ismWebsite": "https://oceanpackship.com",
      "managerEmail": "[email protected]",
      "managerAddress": "Office A154, Plot 42A, Balaji Bhavan, Sector 11, CBD Belapur, Navi Mumbai, Maharashtra, 400614, India.",
      "managerWebsite": "https://oceanpackship.com",
      "registeredOwner": "SEA FUSION SHIPPING INC",
      "registeredOwnerEmail": "[email protected]",
      "ClassificationSociety": "INDIAN REGISTER OF SHIPPING",
      "registeredOwnerAddress": "C/O: Oceanpack Ship Management Pvt Ltd Office A154, Plot 42A, Balaji Bhavan, Sector 11, CBD Belapur, Navi Mumbai, Maharashtra, 400614, India.",
      "registeredOwnerWebsite": "https://seafusionshipping.com"
    },
    "updateTime": "Jan 03, 2026 17:30 UTC",
    "dataSource": "Terrestrial"
  }
}

Get Vessel Particulars

1 credit50/min
Endpoint
GET https://datadocked.com/api/vessels_operations/get-vessel-particulars
Required Parameters
  • x-api-key (header)Your personal API key passed in the request headers, found in your profile dashboard
  • imo_or_mmsiThe IMO or MMSI number of the vessel you want to query.
Available Fields
name, imo, mmsi, countryIso, country, shipType, typeSpecific, grossTonnage, netTonnage, teu, length, beam, yearOfBuilt, eni, deadweight, updateTime, bale, hull, ballastWater, freshWater, crudeOil, gas, grain, builder, material, placeOfBuild
Example Request
import requests

url = "https://datadocked.com/api/vessels_operations/get-vessel-particulars?imo_or_mmsi=9247431"

headers = {
    "accept": "application/json",
    "x-api-key": "YOUR_API_KEY"
}

response = requests.get(url, headers=headers)
print(response.json())
Response
{
  "detail": {
    "name": "REGAL_I",
    "imo": "9247431",
    "mmsi": "655919000",
    "countryIso": "MW",
    "country": "Malawi",
    "shipType": "Tankers",
    "typeSpecific": "Crude Oil Tanker",
    "grossTonnage": "79668",
    "netTonnage": "46553",
    "teu": "-",
    "length": "269 m",
    "beam": "45 m",
    "yearOfBuilt": "2004",
    "callsign": "7QA100",
    "eni": "-",
    "deadweight": "151693",
    "updateTime": "Jan 03, 2026 17:30 UTC",
    "bale": "0 m³",
    "hull": "DOUBLE HULL",
    "balastWater": "51317",
    "freshWater": "0",
    "crudeOil": "1094930",
    "gas": "0 m³",
    "grain": "0 m³",
    "builder": "HYUNDAI HEAVY INDUSTRIES CO., LTD.",
    "material": "STEEL",
    "placeOfBuild": "ULSAN, Korea"
  }
}

Get Vessel Location

1 credit100/min
Endpoint
GET https://datadocked.com/api/vessels_operations/get-vessel-location
Required Parameters
  • x-api-key (header)Your personal API key passed in the request headers, found in your profile dashboard
  • imo_or_mmsiThe IMO or MMSI number of the vessel you want to query.
Available Fields
name, imo, mmsi, latitude, longitude, etaUtc, atdUtc, course, heading, speed, draught, navigationalStatus, destination, lastPort, callsign, positionReceived, updateTime, unlocode_destination, unlocode_lastport, typeSpecific, dataSource
Example Request
import requests

url = "https://datadocked.com/api/vessels_operations/get-vessel-location?imo_or_mmsi=9247431"

headers = {
    "accept": "application/json",
    "x-api-key": "YOUR_API_KEY"
}

response = requests.get(url, headers=headers)
print(response.json())
Response
{
  "detail": {
    "name": "REGAL_I",
    "imo": "9247431",
    "mmsi": "655919000",
    "latitude": "33.384193",
    "longitude": "128.03142",
    "etaUtc": "Jan 04, 2026 04:00 UTC",
    "atdUtc": "Nov 22, 2025 10:09 UTC",
    "course": "91",
    "heading": "89",
    "speed": "1.1",
    "draught": "9 m.",
    "navigationalStatus": "Underway using Engine",
    "destination": "Suez canal Egypt",
    "lastPort": "Novorossiysk Russia",
    "callsign": "7QA100",
    "positionReceived": "Jan 04, 2026 04:15 UTC",
    "updateTime": "Jan 03, 2026 17:31 UTC",
    "unlocodeDestination": "EGSCN",
    "unlocodeLastport": "RUNVS",
    "typeSpecific": "Crude Oil Tanker",
    "dataSource": "Satellite"
  }
}
Loading more endpoints...