API Documentation
Getting Started
New to APIs?
Start with our beginner guide
OpenAPI / Postman / JSON Schema
Machine-readable documentation
Register
Create an account on our platform at datadocked.com.
Verify Your Email
Activate your account by clicking the verification link sent to your registered email.
Generate Your API Key
Log in to your account, navigate to your profile dashboard, and generate your unique API key.
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)API Credit Costs
Each API call consumes credits based on the data complexity and processing requirements.
Rate Limits
To ensure fair usage and maintain service quality, all API endpoints are rate limited. Rate limits are applied per endpoint, per user.
| Endpoint | Rate Limit |
|---|---|
get-vessel-info | 15/min |
get-vessel-particulars | 50/min |
get-vessel-location | 100/min |
get-vessels-location-bulk-search | 15/min |
get-vessel-engine-data | 50/min |
get-vessel-management-data | 50/min |
vessels-by-vessel-name | 50/min |
vessel-mou | 15/min |
get-vessel-weather | 15/min |
get-vessel-historical-data | 15/min |
get-vessels-by-area | 50/min |
port-calls-by-vessel | 15/min |
port-calls-by-port | 15/min |
get-vessels-by-navigational-status | 50/min |
get-vessels-ban-list | 15/min |
route-planner | 15/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/minEndpoint
GET https://datadocked.com/api/vessels_operations/my-creditsRequired Parameters
- x-api-key (header)Your personal API key passed in the request headers, found in your profile dashboard
Available Fields
detail, creditsimport 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()){
"detail": {
"credits": 100
}
}Vessel Operations
Retrieve comprehensive vessel data and information
Get Vessel Info
5 credits15/minEndpoint
GET https://datadocked.com/api/vessels_operations/get-vessel-infoRequired 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, dataSourceimport 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()){
"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/minEndpoint
GET https://datadocked.com/api/vessels_operations/get-vessel-particularsRequired 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, placeOfBuildimport 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()){
"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/minEndpoint
GET https://datadocked.com/api/vessels_operations/get-vessel-locationRequired 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, dataSourceimport 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()){
"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"
}
}