Skip to main content

equasis-cli

CI PyPI Python License: PolyForm Noncommercial

Look up vessels, port state control inspections, ownership history, and company fleets in Equasis from the command line, an interactive shell, or Python.

Investigating many vessels or companies through the Equasis website is slow and manual. equasis-cli turns it into scriptable commands that produce tables, JSON, JSON Lines, or CSV, handle batches of hundreds of vessels, and summarize the signals researchers look for.

The equasis-cli interactive shell showing the profile of EVER GIVEN

Features

  • Complete vessel profiles: particulars, flag performance, management companies, classification and surveys, safety management certificates, P&I insurance, recent sightings, PSC inspections with detentions and deficiencies, and name, flag, class, and company history
  • Indicators: renames, reflagging, and management changes; recent detentions; grey or black listed flags; class withdrawals; missing P&I cover; MMSI and flag mismatches. All are facts from Equasis data, with no opaque scores.
  • Search: ships and companies by name, or ships by exact IMO number, MMSI, or call sign
  • Fleets: every vessel linked to a company, with roles, class, and detention counts
  • Batches: hundreds of vessels or companies from a file, continuing past failures and streaming results as they complete
  • Output for people and programs: readable tables, or versioned JSON, JSON Lines, and CSV. Results go to stdout, messages to stderr, and exit codes are documented.
  • Interactive shell with command menus, history, and scrolling
  • Considerate by default: request pacing, retries with backoff, and a 24-hour page cache

Installation

equasis-cli requires Python 3.10 or later. Installing with pipx keeps it isolated from other Python packages:

pipx install equasis-cli

Alternatives: uv tool install equasis-cli, or pip install equasis-cli inside a virtual environment.

Getting started

  1. Register for a free account at equasis.org.

  2. Store your credentials. This checks that the login works and saves the credentials to a file only you can read:

    equasis configure --setup
    

    You can also set EQUASIS_USERNAME and EQUASIS_PASSWORD in the environment.

  3. Look up a vessel:

    equasis vessel 9811000
    

Usage

Vessels

equasis vessel 9811000                        # full profile as a table
equasis vessel 9811000 -f json                # JSON document
equasis vessel 9811000 -o ever-given.json     # format follows the file extension
equasis vessel 9811000 9074729 -o vessels.csv # several vessels: one CSV row each
equasis vessel --imo-file fleet.txt -o results.jsonl

List files contain one IMO number per line. Blank lines and # comments are ignored, and - reads from standard input:

# Vessels of interest
9811000   # EVER GIVEN
9074729

Batches keep going when a lookup fails and report every item. Add --fail-fast to stop at the first failure.

equasis search "EVER GIVEN"             # ships and companies by name
equasis search TORM --type companies    # companies only
equasis search --mmsi 353136000         # exact identifier (also --imo, --call-sign)
equasis search MAERSK --all-pages       # every page of results (default: 3 pages)

Fleets

equasis fleet "TORM A/S"               # company name
equasis fleet --company-id 0310062     # 7-digit Equasis company number
equasis fleet --company-file companies.txt -o fleets.csv

When a name matches several companies, equasis-cli asks you to choose (in a terminal) or lists the matches and exits. Use --company-id or --first-match in scripts.

Interactive shell

Run equasis with no arguments:

> vessel /imo 9811000
> search /name "EVER GIVEN"
> fleet /company "TORM A/S" /output torm.csv
> batch /file fleet.txt /format json /output results.json
> help batch

Type / for a menu of commands or parameters and press ? for keyboard shortcuts.

Output and scripting

Format Use
table Reading in a terminal (default)
json A single document with schema_version, retrieved_at, results, and indicators
jsonl One JSON object per line; batches stream results as they complete
csv Spreadsheets; one row per vessel with key facts and indicator columns
equasis vessel 9811000 -f json | jq '.indicators.observations'

Exit codes: 0 success, 1 error, 2 invalid usage, 3 authentication failed, 4 not found, 5 some batch items failed, 6 Equasis page layout changed, 130 interrupted.

See docs/usage.md for every command and option and docs/output-schema.md for the output fields.

Python

from equasis_cli import EquasisClient
from equasis_cli.enrichment import compute_indicators

with EquasisClient("you@example.com", "password") as client:
    vessel = client.get_vessel("9811000")
    print(vessel.name, vessel.flag, len(vessel.inspections))
    print(compute_indicators(vessel).observations)

Responsible use

equasis-cli reads the same pages you would open in a browser, using your own Equasis account. Equasis is a free public service, so please:

  • Follow the Equasis terms and conditions.
  • Keep request volumes modest. Requests are paced at one per second by default (--delay), each vessel takes three requests, and pages are cached for 24 hours (--refresh bypasses the cache). Split very large batches across days.
  • Verify important findings on equasis.org before relying on them.

Troubleshooting

Problem What to do
authentication failed (exit 3) Run equasis configure --test, and check that you can log in on equasis.org
could not read the Equasis page (exit 6) Equasis may have changed its website. Re-run with --save-html DIR and open an issue. Remove your name from saved pages before attaching them.
rate limiting requests (HTTP 429) Wait a while, then retry with a larger --delay
Unexpected or stale results Add --refresh, or run equasis cache clear
Anything else Re-run with --debug to log HTTP activity

Contributing

Bug reports and pull requests are welcome. See CONTRIBUTING.md and docs/development.md. Report security issues privately as described in SECURITY.md.

License

equasis-cli is source-available software licensed under the PolyForm Noncommercial License 1.0.0. It is free for personal, research, educational, nonprofit, and government use, and journalists and nonprofit researchers have an additional permission. Commercial use requires a separate license. See LICENSING.md for details and contact information.

equasis-cli is not affiliated with or endorsed by Equasis.

Metadata

Release files for equasis-cli 3.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for equasis-cli 3.0.1
File Size Uploaded
equasis_cli-3.0.1.tar.gz 94.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for equasis-cli 3.0.1
File Interpreter ABI Platform
equasis_cli-3.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 175.5 kB

Release files / equasis_cli-3.0.1.tar.gz

Download URL equasis_cli-3.0.1.tar.gz
Size 94.0 kB
Tags Source
SHA-256 checksum
How to use checksums
373ab1c262160ec8ef53aa62991bb54ce6c12fd0fe1a34dcc54b1eaadf6014b2
BLAKE2b-256 checksum
How to use checksums
8856e8197625835d57f24fdb026c6743ab07cbaff1ff9a87e21d129326e76830
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release files / equasis_cli-3.0.1-py3-none-any.whl

Download URL equasis_cli-3.0.1-py3-none-any.whl
Size 81.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5d22ce937a48c9fa2e2cb804c197c7df94bd334a4e7df9f017d15766457e05b0
BLAKE2b-256 checksum
How to use checksums
5eaa7b8c1e0574423dcea2ebfea5f53ddc0746cd4ee21363487f471b0d5b7f03
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

3.0.1 This release

2 release files

3.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page