Datalastic Maritime API Logo

How to Generate Maritime CSV Reports via API

API Knowledge zone

Generate Maritime CSV Reports via API is possible. You don’t have to go one request by one.

One subscription allows you to generate full database exports including vessel lists, port lists, historical vessel data, and other maritime datasets using a single asynchronous reporting endpoint.
These reports can then be downloaded in CSV format for further analysis.

This guide will walk you step-by-step through requesting a report, checking its processing status, and downloading the final CSV.

What Data Available To Export In CSV Format?

You can generate downloadable CSV reports for:

  • Vessel list

  • Port list

  • Historical location vessel data

  • Other maritime datasets supported by your subscription (ownership data, vessel engines data, classification society, maritime companies, inspections & detentions data and Ship Demolitions data)

How to Run Successful Report?

You can also watch the tutorial below for a step-by-step guide on how to generate a report and download maritime data directly to your computer.

Reports are processed asynchronously using:

https://api.datalastic.com/api/v0/report 

Instead of waiting for the full dataset to be returned immediately, you:

1.Submit a job (POST request)

2.Receive a report ID

3.Poll the endpoint to check job status

4.Once completed, download the report via the result_url

This is ideal for large data exports.

Step 1: Submit a Report Request

Use the /report endpoint to start a new job.
Only POST is allowed, and the payload must be JSON.

You have the flexibility to customize the report type according to your preference and select either “vessel_list” or “port_list“. The tutorial provided is an example specifically for the vessel_list. However, if you prefer to generate a port_list, simply replace any instances of “vessel_list” with “port_list” as you follow the instructions.

Request Body

{
 "api-key": "YOUR_API_KEY",
 "report_type": "vessel_list"
} 

CURL

curl -X POST -H "Content-Type: application/json" \
-d '{"api-key": "xxxxxx", "report_type": "vessel_list"}' \
"https://api.datalastic.com/api/v0/report" 

Python

import requests
r = requests.post(
 url='https://api.datalastic.com/api/v0/report',
 json={'api-key': 'xxxxxx', 'report_type': 'vessel_list'}
)
print(r.text) 

Example Response

{
 "data": {
 "created_at": "2022-07-31T16:29:21.873349Z",
 "params": {
 "report_type": "vessel_list"
 },
 "report_id": "4ddc14e0-9059-9b86-1156-8efd93f0cfe6",
 "report_type": "vessel_list",
 "status": "_PENDING_"
 },
 "meta": {
 "duration": 0.0136832,
 "endpoint": "/api/v0/report",
 "success": true
 }
} 

Note the status and report_id field in the response. After submitting report, it status is _PENDING_.

Step 2: Check the Report Status

Using report_id you can retrieve the status and result of job by just adding the previous report_id you have in the CURL. Invoking that endpoint provides you with the status first:

CURL

curl "https://api.datalastic.com/api/v0/report?api-key=xxxxxx&report_id=4ddc14e0-9059-9b86-1156-8efd93f0cfe6" 

Python

import requests
r = requests.get(
 url='https://api.datalastic.com/api/v0/report?api-key=xxxxxx&report_id=4ddc14e0-9059-9b86-1156-8efd93f0cfe6'
)
print(r.text) 

Example Response

{
 "data": {
 "report_id": "4ddc14e0-9059-9b86-1156-8efd93f0cfe6",
 "report_type": "vessel_list",
 "status": "_IN_PROGRESS_"
 },
 "meta": {
 "duration": 0.002157077,
 "endpoint": "/api/v0/report",
 "success": true
 }
} 

While processing, you will see:

  • _PENDING_ → queued

  • _IN_PROGRESS_ → processing

  • _DONE_ → ready

Keep polling periodically until the status becomes DONE.

Step 3:Download the Finished Report

Once the report is complete, the response will include a result_url that points to a ZIP file containing your CSV.

Example Response

{
 "data": {
 "report_id": "4ddc14e0-9059-9b86-1156-8efd93f0cfe6",
 "report_type": "vessel_list",
 "status": "_DONE_",
 "result_url": "https://report.datalastic.com/dl/4ddc14e0-9059-9b86-1156-8efd93f0cfe6.zip",
 "created_at": "2025-07-31T18:33:07.999153Z",
 "updated_at": "2025-07-31T19:22:37.733028Z"
 },
 "meta": {
 "duration": 0.002157077,
 "endpoint": "/api/v0/report",
 "success": true
 }
} 

Download the ZIP from result_url, extract, and you will find your CSV dataset.

In case you have lost the URL for download or you are not sure if the status returned Done or not, please feel free to make this API call to check all the current and past reports that made. You’ll be able to find the link to download as well.

https://api.datalastic.com/api/v0/report?api-key=YOUR_API_KEY&report_id=_all

Frequent Questions:

Does Generating Reports cost API credits?

Yes, report generation may consume credits depending on the type of the report wether a vessel list, port list etc… 

You can check more about this by checking our API credit consumption.

How long do reports take?

Time depends on report size. Poll until status = _DONE_.

What format is provided?

ZIP containing CSV file.

Read Other Maritime Articles 

Maritime Weather API: Current and Hourly Data

Maritime Weather API: Current and Hourly Data

If you've ever tried to bolt weather data onto a shipping or logistics tool, you know the annoying part isn't the weather data itself. It's that marine conditions and atmospheric conditions usually come from two different providers with two different schemas, and...

AIS Spoofing in the Red Sea: What’s Really Happening

AIS Spoofing in the Red Sea: What’s Really Happening

A cargo ship off Yanbu suddenly reports a position it couldn’t possibly have reached. Its speed jumps to 45 knots, far beyond what a loaded tanker can realistically do. Minutes later, the signal disappears. Hours after that, the vessel reappears somewhere else...

How To Use ChatGPT To Track Ships in Real Time?

How To Use ChatGPT To Track Ships in Real Time?

Tracking ships using ChatGPT is possible and an easy process when it is connected to a live maritime data source such as Datalastic. On its own, ChatGPT does not maintain a live database of ship positions. It may know general information about vessels, shipping...

How to Connect Datalastic to Claude and ChatGPT?

How to Connect Datalastic to Claude and ChatGPT?

Connecting Datalastic to Claude and ChatGPT is an easy and fast process that you'll be surprised by it, following this tutorial. By connecting Datalastic through its Model Context Protocol (MCP) server, you can give AI assistants direct access to real-time maritime...

Find Vessels In The Gulf Of Oman

Find Vessels In The Gulf Of Oman

Tracking vessels in the Gulf of Oman is essential for understanding maritime traffic in one of the world’s most strategically important shipping corridors. This region connects the Arabian Sea with the Strait of Hormuz, acting as a gateway for global oil shipments,...

Enterprise Vessel Tracking API

Enterprise Vessel Tracking API

An enterprise vessel tracking API is not defined by features alone. It is defined by scale, reliability, and the ability to perform under real-world pressure. In maritime operations, where systems rely on continuous data flows, even small inefficiencies can quickly...