API Documentation

Quick Start

Start testing our vessel data API immediately or follow our comprehensive setup guide to get started.

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.

Important: API Authentication Change

API keys must now be passed in request headers, not as query parameters.

Correct (Headers):

import requests

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

headers = {
    "accept": "application/json",
    "api_key": "YOUR_API_KEY"
}

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

Deprecated (Query Parameters):

url = "https://datadocked.com/api/vessels_operations/get-vessel-info?api_key=YOUR_API_KEY&imo_or_mmsi=9870666"
response = requests.get(url)

Code Examples

import requests
import json

api_key = 'YOUR_API_KEY'
imo_or_mmsi = 'VESSEL_IMO_OR_MMSI_NUMBER'
url = f"https://datadocked.com/api/vessels_operations/get-vessel-info?imo_or_mmsi={imo_or_mmsi}"

headers = {
    "accept": "application/json",
    "api_key": api_key
}

response = requests.get(url, headers=headers)
if response.status_code == 200:
    print(response.json())
else:
    print(f"Error: {response.status_code}, {response.text}")

API Reference

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

API Credit Costs

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

5 creditsVessel Info (comprehensive vessel data)
3 creditsVessel Inspection Data (detailed inspection records)
1 creditAll other endpoints (location, particulars, engine data, etc.)
VariablePort Calls by Port (depends on offset parameter)

Rate Limits

To ensure fair usage and maintain service quality, all API endpoints are rate limited:

15 requestsper minute, per endpoint, per user

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 of 15 requests per minute"
}

Best Practices

  • Track your requests to stay within the 15 requests per minute limit
  • Implement exponential backoff when receiving 429 responses
  • Cache responses when possible to reduce API calls
  • Consider batching requests or spacing them out to avoid hitting limits

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 - maximum 15 requests per minute per endpoint

  • 500 Internal Server Error

    Server error occurred

My Credits

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

Response Format

The API responds with a JSON object containing detailed vessel information:

Sample JSON Response
{
  "detail": "99929 credits left."
}
Available Fields
detail

Get Vessel Info

5 credits
View Documentation
Endpoint
GET https://datadocked.com/api/vessels_operations/get-vessel-info
Required Parameters
  • 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.
Example Request
https://datadocked.com/api/vessels_operations/get-vessel-info?imo_or_mmsi=VESSEL_IMO_OR_MMSI_NUMBER

Response Format

The API responds with a JSON object containing detailed vessel information:

Sample JSON Response
{
  "detail": {
    "name": "LAURANA",
    "mmsi": "247342000",
    "imo": "9011014",
    "country": "Italy",
    "shipType": "Miscellaneous",
    "callsign": "ICEL",
    "teu": "",
    "length": "122 m",
    "beam": "20 m",
    "eni": null,
    "image": "https://static.vesselfinder.net/ship-photo/9011014-247342000-672d4d9a1223ae7b65c7d90997ca8641/1?v1",
    "etaUtc": "Oct 01, 2025 10:15 UTC",
    "draught": "4.8 m. ( max 4.8)",
    "deadweight": "2328",
    "speed": "0.0",
    "atdUtc": "Sep 30, 2025 18:25 UTC",
    "latitude": "38.21558",
    "longitude": "15.24491",
    "course": "307.0",
    "destination": "ITMLZ",
    "distance": "88.49 kn",
    "predictedEta": "Oct 7, 16:28",
    "time": "3 hours 59 minutes",
    "hull": "SINGLE HULL",
    "builder": "FINCANTIERI PALERMO",
    "material": "STEEL/ORDINARY",
    "placeOfBuild": "PALERMO, Italy",
    "positionReceived": "Oct 02, 2025 08:27 UTC",
    "ballastWater": "0",
    "crudeOil": "0",
    "freshWater": "0",
    "gas": "0 m³",
    "grain": "0 m³",
    "bale": "0 m³",
    "unlocode_destination": "ITMLZ",
    "unlocode_lastport": "ITNAP",
    "lastPort": "Napoli, Italy",
    "countryIso": "IT",
    "typeSpecific": "Passenger/Ro-Ro Cargo Ship",
    "navigationalStatus": "Moored",
    "grossTonnage": "11193",
    "yearOfBuilt": "1992",
    "currentDraught": "4.8 m",
    "engine": {
      "engineBuilder": "GRANDI MOTORI",
      "engineType": "A420.6L",
      "enginePower(kW)": "7060",
      "fuelType": "MARINE DIESEL",
      "Propeller": "2 CONTROLLABLE PITCH"
    },
    "ports": [
      {
        "portName": "Milazzo Italy",
        "portSign": "ITMLZ",
        "arrived": "Oct 1, 10:40",
        "departed": "-"
      },
      {
        "portName": "Napoli Italy",
        "portSign": "ITNAP",
        "arrived": "Sep 30, 05:55",
        "departed": "Sep 30, 18:25"
      },
      {
        "portName": "Lipari Italy",
        "portSign": "ITLIP",
        "arrived": "Sep 29, 14:40",
        "departed": "Sep 29, 15:19"
      }
    ],
    "management": {
      "registeredOwner": "CARONTE & TOURIST ISOLE MINORI",
      "registeredOwnerAddress": "Via Ingegnere Giuseppe Franza 82, 98124, Messina ME, Italy.",
      "registeredOwnerWebsite": "http://www.carontetourist.it/",
      "registeredOwnerEmail": "[email protected], [email protected]",
      "manager": "CARONTE & TOURIST ISOLE MINORI",
      "ismAddress": "Via Ingegnere Giuseppe Franza 82, 98124, Messina ME, Italy.",
      "managerAddress": "Via Ingegnere Giuseppe Franza 82, 98124, Messina ME, Italy.",
      "managerWebsite": "http://www.carontetourist.it/",
      "managerEmail": "[email protected], [email protected]",
      "ism": "CARONTE & TOURIST ISOLE MINORI",
      "ismWeb": "http://www.carontetourist.it/",
      "ismWebsite": "http://www.carontetourist.it/",
      "ismEmail": "[email protected], [email protected]",
      "P&I": "-",
      "ClassificationSociety": "REGISTRO ITALIANO NAVALE"
    },
    "updateTime": "Oct 02, 2025 08:30 UTC",
    "dataSource": "Satellite"
  }
}
Available Fields
name, mmsi, imo, country, countryIso, shipType, typeSpecific, callsign, teu, length, beam, eni, image, etaUtc, draught, deadweight, speed, atdUtc, latitude, longitude, course, destination, distance, predictedEta, time, hull, builder, material, placeOfBuild, positionReceived, ballastWater, crudeOil, freshWater, gas, grain, bale, unlocode_destination, unlocode_lastport, lastPort, navigationalStatus, grossTonnage, yearOfBuilt, currentDraught, 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

Get Vessel Particulars

1 credit
Endpoint
GET https://datadocked.com/api/vessels_operations/get-vessel-particulars
Required Parameters
  • 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.
Example Request
https://datadocked.com/api/vessels_operations/get-vessel-particulars?imo_or_mmsi=VESSEL_IMO_OR_MMSI_NUMBER

Response Format

The API responds with a JSON object containing detailed vessel information:

Sample JSON Response
{
  "detail": {
    "name": "LAURANA",
    "imo": "9011014",
    "mmsi": "247342000",
    "countryIso": "IT",
    "country": "Italy",
    "image": "https://static.vesselfinder.net/ship-photo/9011014-247342000-672d4d9a1223ae7b65c7d90997ca8641/1?v1",
    "shipType": "Miscellaneous",
    "typeSpecific": "Passenger/Ro-Ro Cargo Ship",
    "grossTonnage": "11193",
    "teu": "",
    "length": "122 m",
    "beam": "20 m",
    "yearOfBuilt": "1992",
    "currentDraught": "4.8 m",
    "eni": null,
    "deadweight": "2328",
    "updateTime": "Oct 02, 2025 09:25 UTC",
    "bale": "0 m³",
    "hull": "SINGLE HULL",
    "ballastWater": "0",
    "freshWater": "0",
    "crudeOil": "0",
    "gas": "0 m³",
    "grain": "0 m³",
    "builder": "FINCANTIERI PALERMO",
    "material": "STEEL/ORDINARY",
    "placeOfBuild": "PALERMO, Italy"
  }
}
Available Fields
name, imo, mmsi, countryIso, country, image, shipType, typeSpecific, grossTonnage, teu, length, beam, yearOfBuilt, currentDraught, eni, deadweight, updateTime, bale, hull, ballastWater, freshWater, crudeOil, gas, grain, builder, material, placeOfBuild

Get Vessel Location

1 credit
Endpoint
GET https://datadocked.com/api/vessels_operations/get-vessel-location
Required Parameters
  • 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.
Example Request
https://datadocked.com/api/vessels_operations/get-vessel-location?imo_or_mmsi=VESSEL_IMO_OR_MMSI_NUMBER

Response Format

The API responds with a JSON object containing detailed vessel information:

Sample JSON Response
{
  "detail": {
    "name": "LAURANA",
    "imo": "9011014",
    "mmsi": "247342000",
    "latitude": "38.21559",
    "longitude": "15.24492",
    "etaUtc": "Oct 01, 2025 10:15 UTC",
    "atdUtc": "Sep 30, 2025 18:25 UTC",
    "course": "230.0",
    "speed": "0.0",
    "draught": "4.8 m. ( max 4.8)",
    "navigationalStatus": "Moored",
    "destination": "ITMLZ",
    "distance": "88.49 kn",
    "predictedEta": "Oct 7, 16:28",
    "time": "3 hours 59 minutes",
    "lastPort": "Napoli, Italy",
    "callsign": "ICEL",
    "positionReceived": "Oct 02, 2025 09:24 UTC",
    "updateTime": "Oct 02, 2025 09:30 UTC",
    "unlocode_destination": "ITMLZ",
    "unlocode_lastport": "ITNAP",
    "typeSpecific": "Passenger/Ro-Ro Cargo Ship",
    "dataSource": "Satellite"
  }
}
Available Fields
name, imo, mmsi, latitude, longitude, etaUtc, atdUtc, course, speed, draught, navigationalStatus, destination, distance, predictedEta, time, lastPort, callsign, positionReceived, updateTime, unlocode_destination, unlocode_lastport, typeSpecific, dataSource