# Insights API 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 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. ## Prerequisites - You have installed the `gfw-api-python-client`. Refer to the [Getting Started](../getting-started) guide for installation instructions. - You will need a valid `Vessel ID` to retrieve insights for a specific vessel. You can obtain these IDs using the [Vessels API](vessels-api). ## Getting Started To interact with the Insights endpoints, you first need to instantiate the `gfw.Client` and then access the `insights` resource: ```python import os import gfwapiclient as gfw access_token = os.environ.get( "GFW_API_ACCESS_TOKEN", "", ) gfw_client = gfw.Client( access_token=access_token, ) ``` ## Getting Insights by Vessel (`get_vessel_insights`) The `get_vessel_insights()` method allows you to retrieve aggregated insights for a specific vessel within a given time range. ```python insights_result = await gfw_client.insights.get_vessel_insights( includes=["FISHING"], start_date="2020-01-01", end_date="2025-03-03", vessels=[ { "dataset_id": "public-global-vessel-identity:latest", "vessel_id": "785101812-2127-e5d2-e8bf-7152c5259f5f", } ], ) ``` ### Access the insights data as Pydantic model ```python insights = insights_result.data() print( ( insights.period.start_date, insights.period.end_date, insights.apparent_fishing.period_selected_counters.events, ) ) print(insights.model_dump()) ``` **Output:** ``` (datetime.date(2020, 1, 1), datetime.date(2025, 3, 3), 2829) ``` ### Access the insights data as a DataFrame ```python insights_df = insights_result.df() print(insights_df.info()) print(insights_df.head()) ``` **Output:** ``` RangeIndex: 1 entries, 0 to 0 Data columns (total 6 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 period 1 non-null object 1 vessel_ids_without_identity 0 non-null object 2 gap 0 non-null object 3 coverage 0 non-null object 4 apparent_fishing 1 non-null object 5 vessel_identity 0 non-null object dtypes: object(6) memory usage: 180.0+ bytes ``` ## Next Steps Explore the [Usage Guides](index) for other API resources to understand how you can combine vessel insights with event data, vessel details, and more. Check out the following resources: - [Vessels API](vessels-api) - [Events API](events-api) - [4Wings API](4wings-api) - [Reference Data API](references-data-api)