enhance insights API models, documentation, and test coverage#59
Open
lykmapipo wants to merge 4 commits intofeature/docsfrom
Open
enhance insights API models, documentation, and test coverage#59lykmapipo wants to merge 4 commits intofeature/docsfrom
lykmapipo wants to merge 4 commits intofeature/docsfrom
Conversation
…cumentation This: - align Insights API documentation with official Global Fishing Watch API terminology - enhance docstrings with official documentation references and data caveats - update `VesselInsightDatasetVessel` model to use `VesselDataset` enum for dataset identifiers - improve `VesselInsightBody` request model with explicit field aliases and clearer parameter documentation - extend `get_vessel_insights()` to accept vessel IDs directly (`List[str]`) - add validation tests for invalid request payload scenarios - add unit tests verifying request serialization and default dataset handling - improve test coverage for resource behavior when vessel IDs are passed directly
This:
- update integration tests to pass vessel IDs directly instead of `{dataset_id, vessel_id}` objects
- add integration tests for `VESSEL-IDENTITY-FLAG-CHANGES` insight type
- add integration tests for `VESSEL-IDENTITY-MOU-LIST` insight type
This:
- update caveat references and dataset examples in documentation
- update vessel input examples to use vessel ID strings instead of `{dataset_id, vessel_id}` objects
- expand examples for `FISHING`, `VESSEL-IDENTITY-IUU-VESSEL-LIST`, and `COVERAGE` insights
- expand examples for `GAP`, `VESSEL-IDENTITY-FLAG-CHANGES`, and `VESSEL-IDENTITY-MOU-LIST` insights
- add example showing retrieval of multiple insights for multiple vessels
giselamo
approved these changes
Apr 16, 2026
| This guide provides detailed instructions on how to use the [gfw-api-python-client](https://github.com/GlobalFishingWatch/gfw-api-python-client) to access aggregated insights about vessel activities. Currently, the [Insights API](https://globalfishingwatch.org/our-apis/documentation#insights-api) focuses on providing summaries related to specific vessels over a defined time range. Here is a [Jupyter Notebook](https://github.com/GlobalFishingWatch/gfw-api-python-client/blob/develop/notebooks/usage-guides/insights-api.ipynb) version of this guide with more usage examples. | ||
|
|
||
| > **Note:** See the [Insights Data Caveats](https://globalfishingwatch.org/our-apis/documentation#insights-api-fishing-detected-in-no-take-mpas)—it is critical to avoid misinterpreting the insights. You can find the [Datasets](https://globalfishingwatch.org/our-apis/documentation#api-dataset), and [Terms of Use](https://globalfishingwatch.org/our-apis/documentation#terms-of-use) pages in the [GFW API documentation](https://globalfishingwatch.org/our-apis/documentation#introduction) for details on GFW data, API licenses, and rate limits. | ||
| > **Note:** See the [Fishing detected in no-take MPAs](https://globalfishingwatch.org/our-apis/documentation#insights-api-fishing-detected-in-no-take-mpas), [Fishing event detected outside known authorized areas](https://globalfishingwatch.org/our-apis/documentation#insights-api-fishing-event-detected-outside-known-authorized-areas), [Coverage](https://globalfishingwatch.org/our-apis/documentation#insights-api-coverage), [AIS off event (aka GAP)](https://globalfishingwatch.org/our-apis/documentation#insights-api-ais-off-event-aka-gap), and [RFMO IUU vessel list](https://globalfishingwatch.org/our-apis/documentation#insights-api-rfmo-iuu-vessel-list) Data Caveats — it is critical to avoid misinterpreting the insights. You can find the [Datasets](https://globalfishingwatch.org/our-apis/documentation#api-dataset), and [Terms of Use](https://globalfishingwatch.org/our-apis/documentation#terms-of-use) pages in the [GFW API documentation](https://globalfishingwatch.org/our-apis/documentation#introduction) for details on GFW data, API licenses, and rate limits. |
Collaborator
There was a problem hiding this comment.
Please add "Apparent fishing event detected in no-take MPAs"...
| ``` | ||
|
|
||
| ## Getting Flag Changes Insights (`VESSEL-IDENTITY-FLAG-CHANGES`) | ||
|
|
Collaborator
There was a problem hiding this comment.
Please add "In order to enable your token to get this insight, please send an email to apis@globalfishingwatch.org including the email that has created the API tokens."
| ``` | ||
|
|
||
| ## Getting Flag State Presence under Tokyo/Paris MOU black or grey Lists Insights (`VESSEL-IDENTITY-MOU-LIST`) | ||
|
|
Collaborator
There was a problem hiding this comment.
Please add "In order to enable your token to get this insight, please send an email to apis@globalfishingwatch.org including the email that has created the API tokens."
tomaslink
approved these changes
Apr 16, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This:
List[str])fishing,coverage,gap, andvessel identityinsights examples