VesselFinder Vessel Tracker Scraper
Pricing
from $8.24 / 1,000 item extracteds
VesselFinder Vessel Tracker Scraper
Search VesselFinder by vessel name, IMO, MMSI, or detail URL and export public vessel identity, voyage, destination, status, position, course, speed, timestamp, and source URL.
Pricing
from $8.24 / 1,000 item extracteds
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Search VesselFinder by vessel name, IMO number, MMSI number, or a public vessel detail URL. Export one typed record per vessel with public identity, voyage, destination, AIS status, surfaced coordinates, course, speed, position timestamp, and canonical source URL.
The Actor turns repeat vessel lookups into a dataset that works with spreadsheets, databases, dashboards, webhooks, and scheduled Apify Tasks. It does not require a VesselFinder account or a separate VesselFinder API subscription.
What does this VesselFinder scraper do?
- Accepts vessel names, IMO numbers, MMSI numbers, and canonical VesselFinder detail URLs.
- Resolves each query against VesselFinder's public vessel search.
- Fetches the matching public detail record.
- Normalizes identity, dimensions, voyage, motion, and position fields.
- Deduplicates matches by IMO or MMSI.
- Saves valid vessels to the default Apify dataset.
A name can resolve more than one vessel.
Use maxItems to bound the total number of unique output records.
Who is it for?
- Fleet teams enriching internal IMO or MMSI lists.
- Maritime analysts checking public voyage and AIS context.
- Port and logistics teams reviewing destinations and vessel movement.
- Risk and due-diligence teams collecting source-linked vessel snapshots.
- Travel and cruise researchers resolving passenger vessels.
- Developers who need structured VesselFinder output without maintaining a scraper.
Why use this Actor?
- Search and exact-identifier inputs share one output contract.
- Canonical source URLs make every row auditable.
- Position timestamps distinguish fresh and older AIS reports.
- Missing upstream fields remain
nullinstead of becoming guessed values. - Duplicate inputs do not create duplicate dataset rows.
- Empty searches finish normally, while blocked detail extraction fails visibly.
- A lightweight HTTP implementation avoids unnecessary browser runtime.
What VesselFinder data can I extract?
| Group | Fields |
|---|---|
| Identity | name, imo, mmsi, callsign, vesselType, aisType |
| Registration | flag, flagCode, builtYear |
| Dimensions | lengthMeters, beamMeters, grossTonnage, deadweightTons, draughtMeters |
| Voyage | destination, eta, lastPort, navigationStatus |
| Position | latitude, longitude, courseDegrees, speedKnots |
| Freshness | positionReceivedAt, positionAge, positionRegion |
| Provenance | sourceUrl, query, scrapedAt |
VesselFinder may round coordinates on the public detail page. The Actor exports the coordinates the source actually surfaces and does not imply precision that is not available. AIS values can be delayed, incomplete, or entered manually by a vessel operator.
How to search for a vessel
By name
{"queries": ["EVER GIVEN"],"maxItems": 5}
By IMO
{"queries": ["9811000"],"maxItems": 1}
By MMSI
{"queries": ["353136000"],"maxItems": 1}
By VesselFinder URL
{"startUrls": [{ "url": "https://www.vesselfinder.com/vessels/details/9241061" }],"maxItems": 1}
Input parameters
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
queries | string array | Conditional | none | Vessel names, 7-digit IMO numbers, or 9-digit MMSI numbers. |
startUrls | request-list array | Conditional | none | Public vesselfinder.com/vessels/details/<id> URLs. |
maxItems | integer | No | 25 | Maximum unique vessel records, from 1 to 500. |
Provide at least one value in queries or startUrls.
Only VesselFinder detail URLs are accepted in startUrls.
Output example
The exact values change as public AIS data changes. This abbreviated record shows the current output shape:
{"name": "EVER GIVEN","imo": 9811000,"mmsi": 353136000,"callsign": "H3RC","vesselType": "Container Ship","aisType": "Cargo ship (HAZ-A)","flag": "Panama","builtYear": 2018,"lengthMeters": 400,"beamMeters": 59,"destination": "GB FLX","navigationStatus": null,"latitude": -31,"longitude": 35,"courseDegrees": 241.9,"speedKnots": 18.4,"draughtMeters": 15.4,"positionReceivedAt": "2026-08-22T14:31:27.000Z","positionAge": "21 hours ago","positionRegion": "South Africa","sourceUrl": "https://www.vesselfinder.com/vessels/details/9811000","query": "EVER GIVEN","scrapedAt": "2026-08-23T11:39:03.159Z"}
Understanding null values and timestamps
A null value means VesselFinder did not expose that field for that vessel at collection time.
It does not mean zero, unknown forever, or extraction success from another source.
positionReceivedAt is the source position timestamp when available.
scrapedAt is when this Actor collected the record.
Compare them before treating a position as current.
positionAge preserves VesselFinder's human-readable freshness text.
How much does it cost to track VesselFinder vessels?
The Actor uses pay-per-event pricing:
start: $0.005 once per run.item: one event for each valid vessel saved to the dataset.- No item event is charged for duplicates, no-result queries, or failed records.
Current item tiers are:
| Plan tier | Price per vessel |
|---|---|
| FREE | $0.015792 |
| BRONZE | $0.013732 |
| SILVER | $0.010711 |
| GOLD | $0.0082392 |
| PLATINUM | $0.0054928 |
| DIAMOND | $0.003845 |
At the FREE item tier, a run returning 1 vessel costs about $0.0208, 10 vessels about $0.1629, and 100 vessels about $1.5842. The calculation is the $0.005 run event plus the number of saved vessels multiplied by $0.015792. Your active Apify tier determines the item rate shown before a run.
Getting started
- Open the Actor in Apify Console.
- Add one or more names, IMO numbers, or MMSI numbers.
- Optionally add exact VesselFinder detail URLs.
- Set
maxItemsto a sensible upper bound. - Click Start.
- Open the Dataset tab to inspect vessel rows.
- Export JSON, CSV, Excel, XML, or RSS from the dataset controls.
Start with one known identifier when validating a workflow. Then expand to a fleet list after checking the returned fields and timestamp freshness.
Fleet enrichment workflow
Use stable IMO numbers when possible:
{"queries": ["9811000", "9241061", "9776171"],"maxItems": 3}
Schedule the Task and send results to your own database.
Join rows on imo, fall back to mmsi, and preserve sourceUrl for auditability.
Compare new rows with the previous dataset in your downstream system to detect changed destinations, speed, or position timestamps.
The Actor returns snapshots; it does not itself store history or send alerts.
Scheduling and monitoring
Apify Tasks can run this Actor hourly, daily, or on a custom cron schedule. For responsible monitoring:
- Keep query lists bounded.
- Prefer IMO or MMSI over ambiguous names.
- Compare
positionReceivedAt, not onlyscrapedAt. - Treat a changed vessel name or MMSI as source data that needs review.
- Configure webhooks for succeeded and failed runs.
- Store historical comparisons in your own dataset or database.
API access with cURL
Start a run and wait for results:
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~vesselfinder-vessel-tracker-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"queries":["9811000"],"maxItems":1}'
Do not commit an Apify token to source control. Use environment variables or a secret manager.
JavaScript API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/vesselfinder-vessel-tracker-scraper').call({queries: ['9811000', '9241061'],maxItems: 2,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Install the client with npm install apify-client.
Python API example
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/vesselfinder-vessel-tracker-scraper').call(run_input={'queries': ['353136000'], 'maxItems': 1})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
Install it with pip install apify-client.
Use with MCP and AI assistants
Add the Apify MCP server to Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/vesselfinder-vessel-tracker-scraper"
Use this same configuration in Claude Desktop, Cursor, or VS Code:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/vesselfinder-vessel-tracker-scraper"}}}
- Claude Desktop: add the
apifyentry to the desktop MCP configuration and restart Claude Desktop. - Cursor: add the server URL in Cursor's MCP settings.
- VS Code: add the HTTP MCP server through the MCP extension or workspace MCP settings.
Example prompts:
- "Resolve IMO 9811000 and summarize its public VesselFinder voyage record."
- "Enrich these three IMO numbers and return name, flag, destination, speed, and position timestamp."
- "Extract the Queen Mary 2 VesselFinder record from its detail URL."
Always review source timestamps before using AI-generated conclusions.
Integrations
Typical destinations include:
- Google Sheets for a shared fleet snapshot.
- Airtable for maritime research lists.
- PostgreSQL or BigQuery for historical comparisons.
- Zapier or Make for routing completed datasets.
- Webhooks for downstream processing.
- Python, JavaScript, or BI notebooks for analysis.
Use imo as the preferred stable join key.
Keep both query and sourceUrl when investigating mismatches.
Legality and responsible use
This Actor extracts public VesselFinder pages and endpoints. It does not provide satellite AIS, historical tracks, paid VesselFinder features, guaranteed real-time positions, collision risk, sanctions conclusions, ownership verification, or navigation advice.
Source fields can be stale or incomplete. Coordinates may be rounded. Destinations and navigation status can be manually entered AIS values. Do not use this output for navigation, safety-of-life decisions, surveillance, or unlawful tracking. Review VesselFinder's terms and the laws that apply to your use case.
Troubleshooting
Why did my name search return no rows?
Check spelling and try an IMO or MMSI number. A name may be too broad, changed, or absent from the current public index. A genuine no-result search completes with an empty dataset.
Why is the position old?
The vessel may be outside terrestrial AIS coverage, switched off, delayed, or available only through a paid satellite service.
Inspect positionReceivedAt and positionAge.
The Actor does not fabricate a newer position.
Why are latitude and longitude rounded?
The public VesselFinder detail page may expose rounded coordinates. The Actor preserves that public precision instead of claiming exact coordinates.
Why did the run fail after resolving vessels?
VesselFinder may have challenged or changed its public detail response. The Actor fails visibly when every resolved detail record fails, so automation does not mistake an upstream block for an empty result. Retry later and inspect the run log.
FAQ
Can I search by vessel name, IMO, and MMSI in one run?
Yes.
Put all values in queries; duplicates are removed from the output.
Can I pass VesselFinder URLs?
Yes, for canonical /vessels/details/<IMO-or-MMSI> URLs on vesselfinder.com.
Other domains and unrelated VesselFinder pages are rejected.
Does it include historical tracks?
No. Each row is a snapshot of currently public detail data. Schedule runs and retain prior datasets if your workflow needs comparisons.
Does it require a proxy or login?
No login or user-supplied proxy setting is required by the current implementation. The Actor uses a bounded public HTTP session and conservative request volume.
Is every input charged?
No. The item event is emitted only after a valid, unique vessel record is saved. The one-time start event applies once per run.
Related automation-lab Actors
This Actor is intentionally focused on VesselFinder vessel identity, voyage, and latest public position snapshots. Browse the automation-lab Apify profile for other source-specific travel, transport, and structured-data Actors that can complement a broader workflow.
Support
For reproducible problems, include:
- The input with any private business data removed.
- The Actor run URL.
- The expected vessel or field.
- Whether the issue affects a name, IMO, MMSI, or detail URL.
- The approximate time of the run.
Do not include Apify tokens, private credentials, or sensitive fleet notes.