NAV
cURL

Introduction

Welcome to the Global Fishing Watch Application Programming Interfaces (API) Documentation site!

Global Fishing Watch has created a technology portal that provides application programming interfaces, or APIs, to revolutionize the way we research and monitor human impacts across the world’s ocean.

Our APIs provide software instructions that enable automatic connection of our data and products to other systems so users can easily download and integrate our datasets, code, and models to power their own platforms. By providing streamlined access to information on current fishing vessel activity, identity and history, we are helping create solutions for a resilient, sustainable ocean.

Global Fishing Watch APIs are only available for non-commercial purposes. They are used by researchers, governments and technology companies.

Global Fishing Watch offers modern, low latency, secure and scalable REST APIs. Global Fishing Watch APIs use resource-oriented URLS, support HTTPS authentication and HTTPS verbs and leverage JSON in all responses.

We combine tracking data from the publicly available automatic identification system (AIS) and integrate that with information acquired through vessel monitoring systems that are operated by governments and made available to us through partnerships that we secure. Both AIS and VMS combine global positioning with a transmitter to regularly broadcast vessel location.

Harvesting big data from satellites and other sources

We combine tracking data from the publicly available automatic identification system (AIS) and integrate that with information acquired through vessel monitoring systems that are operated by governments and made available to us through partnerships that we secure. Both AIS and VMS combine global positioning with a transmitter to regularly broadcast vessel location.

Data available

In API Version 3

You can find the following APIs and data:

If you want to learn on the differences between these APIs, gfwr (version 2) and the Data Downloads portal, you can review this document explaining the differences here.

If you want to learn which APIs are used in Vessel Viewer, you can review this document showing the exact API requests done behind each page.

In API Version 2

You can find the following APIs and data:

We are planning to expand the list in the near future, if you need any specific one that you would like us to prioritize, contact us to send your suggestion.

Quick Start

  1. Register for a Global Fishing Watch account.

  2. Request an API Access Token

  3. Agree to the terms of use and attribute Global Fishing Watch in anything you publish.

  4. Submit HTTP request - Search a fishing vessel and get the fishing events

SEARCH A FISHING VESSEL


curl --location -g --request GET 'https://gateway.api.globalfishingwatch.org/v3/vessels/search?query=7831410&datasets[0]=public-global-vessel-identity:latest' \
  -H "Authorization: Bearer [TOKEN]"

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response includes the vessels matching your query.

 {
    "limit": 20,
    "since": null,
    "total": 1,
    "entries": [
        {
            "dataset": "public-global-vessel-identity:v20231026",
            "registryInfoTotalRecords": 1,
            "registryInfo": [
                {
                    "id": "72f191cf1cb981cefc7733d32abba37e",
                    "recordId": "IMO-7831410",
                    "sourceCode": [
                        "IMO"
                    ],
                    "ssvid": "701000948",
                    "flag": "ARG",
                    "shipname": "CLAUDINA",
                    "nShipname": "CLAUDINA",
                    "callsign": "LW3058",
                    "imo": "7831410",
                    "latestVesselInfo": true,
                    "transmissionDateFrom": "2013-01-01T07:26:04Z",
                    "transmissionDateTo": "2023-04-13T14:15:39Z",
                    "geartype": [
                        "FISHING"
                    ],
                    "lengthM": 53.6,
                    "tonnageGt": 369,
                    "vesselInfoReference": "ce19d2b7-e5a6-43bf-b439-4070f10fe74e"
                }
            ],
            "registryOwners": [
                {
                    "name": "DESEADO PESQUERA",
                    "flag": "ARG",
                    "ssvid": "701000948",
                    "sourceCode": [
                        "IMO"
                    ],
                    "dateFrom": "2013-01-01T07:26:04Z",
                    "dateTo": "2023-04-13T14:15:39Z"
                }
            ],
            "registryAuthorizations": [],
            "combinedSourcesInfo": [
                {
                    "vesselId": "e9efd1586-61cf-74a8-757d-e8b4c0664c20",
                    "geartypes": [
                        {
                            "name": "SQUID_JIGGER",
                            "source": "COMBINATION_OF_REGISTRY_AND_AIS_INFERRED_NN_INFO",
                            "yearFrom": 2013,
                            "yearTo": 2016
                        },
                        {
                            "name": "OTHER",
                            "source": "COMBINATION_OF_REGISTRY_AND_AIS_INFERRED_NN_INFO",
                            "yearFrom": 2012,
                            "yearTo": 2012
                        }
                    ],
                    "shiptypes": [
                        {
                            "name": "FISHING",
                            "source": "COMBINATION_OF_REGISTRY_AND_AIS_INFERRED_NN_INFO",
                            "yearFrom": 2013,
                            "yearTo": 2016
                        },
                        {
                            "name": "OTHER",
                            "source": "COMBINATION_OF_REGISTRY_AND_AIS_INFERRED_NN_INFO",
                            "yearFrom": 2012,
                            "yearTo": 2012
                        }
                    ]
                },
                {
                    "vesselId": "9b3e9019d-d67f-005a-9593-b66b997559e5",
                    "geartypes": [
                        {
                            "name": "SQUID_JIGGER",
                            "source": "COMBINATION_OF_REGISTRY_AND_AIS_INFERRED_NN_INFO",
                            "yearFrom": 2016,
                            "yearTo": 2023
                        }
                    ],
                    "shiptypes": [
                        {
                            "name": "FISHING",
                            "source": "COMBINATION_OF_REGISTRY_AND_AIS_INFERRED_NN_INFO",
                            "yearFrom": 2016,
                            "yearTo": 2023
                        }
                    ]
                }
            ],
            "selfReportedInfo": [
                {
                    "id": "9b3e9019d-d67f-005a-9593-b66b997559e5",
                    "ssvid": "701000948",
                    "shipname": "CLAUDINA",
                    "nShipname": "CLAUDINA",
                    "flag": "ARG",
                    "callsign": "LW3058",
                    "imo": "7831410",
                    "messagesCounter": 616714906,
                    "positionsCounter": 1914662,
                    "sourceCode": [
                        "AIS"
                    ],
                    "matchFields": "SEVERAL_FIELDS",
                    "transmissionDateFrom": "2016-12-20T20:27:39Z",
                    "transmissionDateTo": "2023-04-13T18:19:16Z"
                },
                {
                    "id": "e9efd1586-61cf-74a8-757d-e8b4c0664c20",
                    "ssvid": "701000948",
                    "shipname": "CLAUDINA",
                    "nShipname": "CLAUDINA",
                    "flag": "ARG",
                    "callsign": "LW3058",
                    "imo": "0",
                    "messagesCounter": 8313445,
                    "positionsCounter": 73907,
                    "sourceCode": [
                        "AIS"
                    ],
                    "matchFields": "SEVERAL_FIELDS",
                    "transmissionDateFrom": "2012-01-01T04:38:08Z",
                    "transmissionDateTo": "2016-09-15T15:07:46Z"
                }
            ]
        }
    ],
    "metadata": {
        "query": "7831410",
        "normalizedQuery": "7831410",
        "didYouMean": {
            "shipname": {}
        }
    }
}

GET FISHING EVENTS


curl --location -g --request GET 'https://gateway.api.globalfishingwatch.org/v3/events?vessels[0]=9b3e9019d-d67f-005a-9593-b66b997559e5&datasets[0]=public-global-fishing-events:latest&start-date=2017-03-01&end-date=2017-03-31&limit=1&offset=0' \
  -H "Authorization: Bearer [TOKEN]"

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response includes the fishing events from the vessel id found in the previous request.

{
    "metadata": {
        "datasets": [
            "public-global-fishing-events:v20231026"
        ],
        "vessels": [
            "9b3e9019d-d67f-005a-9593-b66b997559e5"
        ],
        "dateRange": {
            "from": "2017-03-01",
            "to": "2017-03-31"
        }
    },
    "limit": 1,
    "offset": 0,
    "nextOffset": 1,
    "total": 160,
    "entries": [
        {
            "start": "2017-02-28T23:09:29.000Z",
            "end": "2017-03-01T04:25:22.000Z",
            "id": "49c5ab5a5ba4139b15ca9c039b0ea4f7",
            "type": "fishing",
            "position": {
                "lat": -47.1439,
                "lon": -62.7624
            },
            "regions": {
                "mpa": [],
                "eez": [
                    "8466"
                ],
                "rfmo": [
                    "ACAP",
                    "ICCAT",
                    "IWC",
                    "CCSBT"
                ],
                "fao": [
                    "41",
                    "41.3.1",
                    "41.3"
                ],
                "majorFao": [
                    "41"
                ],
                "eez12Nm": [],
                "highSeas": [],
                "mpaNoTakePartial": [],
                "mpaNoTake": []
            },
            "boundingBox": [
                -62.752836666700006,
                -47.16,
                -62.768585,
                -47.1277183333
            ],
            "distances": {
                "startDistanceFromShoreKm": 226,
                "endDistanceFromShoreKm": 225,
                "startDistanceFromPortKm": 241.536047,
                "endDistanceFromPortKm": 241.137141
            },
            "vessel": {
                "id": "9b3e9019d-d67f-005a-9593-b66b997559e5",
                "name": "CLAUDINA",
                "ssvid": "701000948"
            },
            "fishing": {
                "totalDistanceKm": 3.9377160441499495,
                "averageSpeedKnots": 0.9047619104333333,
                "averageDurationHours": 0.263236111111111,
                "potentialRisk": false
            }
        }
    ]
}

Search a fishing vessel by IMO = 7831410 using Vessel API

Get one fishing event from the fishing vessel searched in the previous request (first id in the selfReportedInfo object) and filter by Start Date=2017-03-01 and End Date=2017-03-31 using Events API

API Versioning

Communication around API versions

Version Version Status Deprecation Date Release Notes
v3 🟢 CURRENT Release Notes v3
v2 🟠 MAINTENANCE April 30 2024 Release Notes v2
v1 🔴 DEPRECATED May 31 2023

For API Dataset Versioning, check here

Version 2 API

API version 2 was moved to 🟠 MAINTENANCE which means that API is operational and available but marked as in maintenance mode. That means that the engineering team is going to work on fixing issues but not implementing new/update features. Users should plan to start using the CURRENT version: version 3. For more details, check the release notes

Get your GFW Postman collection for Version 2

You can download our Postman collection here to test some of the endpoints.

Remember to:

Map Visualization - 4Wings API - V2

4Wings introduction - V2

4Wings API (aka Map Visualization) allows you to get fast visualisation, navigation and analysis for gridded spatiotemporal datasets.You can:

Create a style for generate png tiles - V2

GENERATE PNG TILES WITH TEMPORAL FILTER


curl --location --request POST 'https://gateway.api.globalfishingwatch.org/v2/4wings/generate-png?interval=10days&datasets%5B0%5D=public-global-fishing-effort:latest&color=%23361c0c&date-range=2020-01-01,2020-01-31' \
  -H "Authorization: Bearer [TOKEN]"

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response will be:

{
  "colorRamp": {
    "stepsByZoom": {
      "0": [
        {
          "color": "rgba(54,28,12,25)",
          "value": 663
        },
        {
          "color": "rgba(54,28,12,127)",
          "value": 17471
        },
        {
          "color": "rgba(54,28,12,153)",
          "value": 27895
        },
        {
          "color": "rgba(54,28,12,178)",
          "value": 38839
        },
        {
          "color": "rgba(54,28,12,255)",
          "value": 60002
        },
        {
          "color": "rgba(54,28,12,0)",
          "value": 0
        },
        {
          "color": "rgba(54,28,12,51)",
          "value": 2400
        },
        {
          "color": "rgba(54,28,12,76)",
          "value": 5487
        },
        {
          "color": "rgba(54,28,12,102)",
          "value": 10663
        }
      ],
      "1": [
        {
          "color": "rgba(54,28,12,25)",
          "value": 165
        },
        {
          "color": "rgba(54,28,12,51)",
          "value": 600
        },
        {
          "color": "rgba(54,28,12,76)",
          "value": 1371
        },
        {
          "color": "rgba(54,28,12,127)",
          "value": 4367
        },
        {
          "color": "rgba(54,28,12,0)",
          "value": 0
        },
        {
          "color": "rgba(54,28,12,102)",
          "value": 2665
        },
        {
          "color": "rgba(54,28,12,153)",
          "value": 6973
        },
        {
          "color": "rgba(54,28,12,178)",
          "value": 9709
        },
        {
          "color": "rgba(54,28,12,255)",
          "value": 15000
        }
      ],
      "10": [
        {
          "color": "rgba(54,28,12,255)",
          "value": 0
        }
      ],
      "11": [
        {
          "color": "rgba(54,28,12,255)",
          "value": 0
        }
      ],
      "12": [
        {
          "color": "rgba(54,28,12,255)",
          "value": 0
        }
      ],
      "2": [
        {
          "color": "rgba(54,28,12,102)",
          "value": 666
        },
        {
          "color": "rgba(54,28,12,153)",
          "value": 1743
        },
        {
          "color": "rgba(54,28,12,0)",
          "value": 0
        },
        {
          "color": "rgba(54,28,12,51)",
          "value": 150
        },
        {
          "color": "rgba(54,28,12,76)",
          "value": 342
        },
        {
          "color": "rgba(54,28,12,255)",
          "value": 3750
        },
        {
          "color": "rgba(54,28,12,25)",
          "value": 41
        },
        {
          "color": "rgba(54,28,12,127)",
          "value": 1091
        },
        {
          "color": "rgba(54,28,12,178)",
          "value": 2427
        }
      ],
      "3": [
        {
          "color": "rgba(54,28,12,0)",
          "value": 0
        },
        {
          "color": "rgba(54,28,12,153)",
          "value": 435
        },
        {
          "color": "rgba(54,28,12,127)",
          "value": 272
        },
        {
          "color": "rgba(54,28,12,178)",
          "value": 606
        },
        {
          "color": "rgba(54,28,12,255)",
          "value": 937
        },
        {
          "color": "rgba(54,28,12,25)",
          "value": 10
        },
        {
          "color": "rgba(54,28,12,51)",
          "value": 37
        },
        {
          "color": "rgba(54,28,12,76)",
          "value": 85
        },
        {
          "color": "rgba(54,28,12,102)",
          "value": 166
        }
      ],
      "4": [
        {
          "color": "rgba(54,28,12,51)",
          "value": 9
        },
        {
          "color": "rgba(54,28,12,102)",
          "value": 41
        },
        {
          "color": "rgba(54,28,12,127)",
          "value": 68
        },
        {
          "color": "rgba(54,28,12,255)",
          "value": 234
        },
        {
          "color": "rgba(54,28,12,25)",
          "value": 2
        },
        {
          "color": "rgba(54,28,12,76)",
          "value": 21
        },
        {
          "color": "rgba(54,28,12,153)",
          "value": 108
        },
        {
          "color": "rgba(54,28,12,178)",
          "value": 151
        },
        {
          "color": "rgba(54,28,12,0)",
          "value": 0
        }
      ],
      "5": [
        {
          "color": "rgba(54,28,12,51)",
          "value": 2
        },
        {
          "color": "rgba(54,28,12,76)",
          "value": 5
        },
        {
          "color": "rgba(54,28,12,102)",
          "value": 10
        },
        {
          "color": "rgba(54,28,12,127)",
          "value": 17
        },
        {
          "color": "rgba(54,28,12,153)",
          "value": 27
        },
        {
          "color": "rgba(54,28,12,178)",
          "value": 37
        },
        {
          "color": "rgba(54,28,12,255)",
          "value": 58
        },
        {
          "color": "rgba(54,28,12,25)",
          "value": 0
        }
      ],
      "6": [
        {
          "color": "rgba(54,28,12,51)",
          "value": 0
        },
        {
          "color": "rgba(54,28,12,76)",
          "value": 1
        },
        {
          "color": "rgba(54,28,12,102)",
          "value": 2
        },
        {
          "color": "rgba(54,28,12,127)",
          "value": 4
        },
        {
          "color": "rgba(54,28,12,153)",
          "value": 6
        },
        {
          "color": "rgba(54,28,12,178)",
          "value": 9
        },
        {
          "color": "rgba(54,28,12,255)",
          "value": 14
        }
      ],
      "7": [
        {
          "color": "rgba(54,28,12,102)",
          "value": 0
        },
        {
          "color": "rgba(54,28,12,153)",
          "value": 1
        },
        {
          "color": "rgba(54,28,12,178)",
          "value": 2
        },
        {
          "color": "rgba(54,28,12,255)",
          "value": 3
        }
      ],
      "8": [
        {
          "color": "rgba(54,28,12,255)",
          "value": 0
        }
      ],
      "9": [
        {
          "color": "rgba(54,28,12,255)",
          "value": 0
        }
      ]
    }
  },
  "url": "https://gateway.api.globalfishingwatch.org/v2/4wings/tile/heatmap/{z}/{x}/{y}?format=png&interval=10days&datasets[0]=public-global-fishing-effort:latest&date-range=2020-01-01,2020-01-31&style=eyJjb2xvciI6WzU0LDI4LDEyXSwicmFtcCI6WzAsNjYzLjIzMTk0NDQ0NDQ0NDUsMjQwMC4wMDMzMzMzMzMzMzMsNTQ4Ny4wNDIyMjIyMjIyMjMsMTA2NjMuMDY2OTQ0NDQ0NDQzLDE3NDcxLjUxODA1NTU1NTU1NiwyNzg5NS42NjUyNzc3Nzc3NzgsMzg4MzkuNTUyNTAwMDAwMDA1LDYwMDAyLjcxNDk5OTk5OTk4XX0="
}

GENERATE PNG TILES WITH GEAR TYPE AND TEMPORAL FILTER


curl --location --request POST 'https://gateway.api.globalfishingwatch.org/
/v2/4wings/generate-png?interval=10days&datasets[0]=public-global-fishing-effort:latest&filters[0]=geartype in ("tuna_purse_seines","driftnets")&date-range=2020-01-01,2020-01-31'  \
  -H "Authorization: Bearer [TOKEN]"

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response will be:

{
  "colorRamp": {
    "stepsByZoom": {
      "0": [
        {
          "color": "rgba(22,63,137,0)",
          "value": 0
        },
        {
          "color": "rgba(22,63,137,102)",
          "value": 384
        },
        {
          "color": "rgba(22,63,137,178)",
          "value": 1502
        },
        {
          "color": "rgba(22,63,137,255)",
          "value": 1944
        },
        {
          "color": "rgba(22,63,137,25)",
          "value": 26
        },
        {
          "color": "rgba(22,63,137,51)",
          "value": 88
        },
        {
          "color": "rgba(22,63,137,76)",
          "value": 186
        },
        {
          "color": "rgba(22,63,137,127)",
          "value": 677
        },
        {
          "color": "rgba(22,63,137,153)",
          "value": 1047
        }
      ],
      "1": [
        {
          "color": "rgba(22,63,137,0)",
          "value": 0
        },
        {
          "color": "rgba(22,63,137,51)",
          "value": 22
        },
        {
          "color": "rgba(22,63,137,102)",
          "value": 96
        },
        {
          "color": "rgba(22,63,137,153)",
          "value": 261
        },
        {
          "color": "rgba(22,63,137,255)",
          "value": 486
        },
        {
          "color": "rgba(22,63,137,25)",
          "value": 6
        },
        {
          "color": "rgba(22,63,137,76)",
          "value": 46
        },
        {
          "color": "rgba(22,63,137,127)",
          "value": 169
        },
        {
          "color": "rgba(22,63,137,178)",
          "value": 375
        }
      ],
      "10": [
        {
          "color": "rgba(22,63,137,255)",
          "value": 0
        }
      ],
      "11": [
        {
          "color": "rgba(22,63,137,255)",
          "value": 0
        }
      ],
      "12": [
        {
          "color": "rgba(22,63,137,255)",
          "value": 0
        }
      ],
      "2": [
        {
          "color": "rgba(22,63,137,255)",
          "value": 121
        },
        {
          "color": "rgba(22,63,137,25)",
          "value": 1
        },
        {
          "color": "rgba(22,63,137,76)",
          "value": 11
        },
        {
          "color": "rgba(22,63,137,102)",
          "value": 24
        },
        {
          "color": "rgba(22,63,137,127)",
          "value": 42
        },
        {
          "color": "rgba(22,63,137,178)",
          "value": 93
        },
        {
          "color": "rgba(22,63,137,0)",
          "value": 0
        },
        {
          "color": "rgba(22,63,137,51)",
          "value": 5
        },
        {
          "color": "rgba(22,63,137,153)",
          "value": 65
        }
      ],
      "3": [
        {
          "color": "rgba(22,63,137,102)",
          "value": 6
        },
        {
          "color": "rgba(22,63,137,127)",
          "value": 10
        },
        {
          "color": "rgba(22,63,137,153)",
          "value": 16
        },
        {
          "color": "rgba(22,63,137,178)",
          "value": 23
        },
        {
          "color": "rgba(22,63,137,255)",
          "value": 30
        },
        {
          "color": "rgba(22,63,137,25)",
          "value": 0
        },
        {
          "color": "rgba(22,63,137,51)",
          "value": 1
        },
        {
          "color": "rgba(22,63,137,76)",
          "value": 2
        }
      ],
      "4": [
        {
          "color": "rgba(22,63,137,102)",
          "value": 1
        },
        {
          "color": "rgba(22,63,137,127)",
          "value": 2
        },
        {
          "color": "rgba(22,63,137,153)",
          "value": 4
        },
        {
          "color": "rgba(22,63,137,178)",
          "value": 5
        },
        {
          "color": "rgba(22,63,137,255)",
          "value": 7
        },
        {
          "color": "rgba(22,63,137,76)",
          "value": 0
        }
      ],
      "5": [
        {
          "color": "rgba(22,63,137,127)",
          "value": 0
        },
        {
          "color": "rgba(22,63,137,255)",
          "value": 1
        }
      ],
      "6": [
        {
          "color": "rgba(22,63,137,255)",
          "value": 0
        }
      ],
      "7": [
        {
          "color": "rgba(22,63,137,255)",
          "value": 0
        }
      ],
      "8": [
        {
          "color": "rgba(22,63,137,255)",
          "value": 0
        }
      ],
      "9": [
        {
          "color": "rgba(22,63,137,255)",
          "value": 0
        }
      ]
    }
  }
}

A Style is a document that defines the visual appearance of a map, in this case the map will be in png format, it includes what data to draw, the order to draw it in, and how to style the data when drawing it. You can find on the right, two examples:

Generate PNG v2 - HTTP Request

POST https://gateway.api.globalfishingwatch.org/v2/4wings/generate-png

Generate PNG v2 - URL Parameters

Parameter Description Required Format Param Type
color Color in hexadecimal used to generate the color ramp. If you don't send this information, by default the color will be #002457.Default value: #002457 False string query
interval Tiles are available at several time resolutions (hourly, daily, monthly and 10 days), it means one frame every one hour, one day or 10 days. For each resolution, the the max displayable length items: 1 hour: 20 days, 1 day: 1 year and 10 days: several years depending on the dataset for AIS Fishing effort it starts in 2012. Default value: 10days False Enum: ['10days', 'day', 'hour'] query
datasets[0] Specify the datasets that will be used to create the style. You can learn more about which are the possible datasets here. The parameters should be defined using an index, in case only one dataset is going to be sent: ?dataset[0]=xxxxx, in case of multiple datasets: ?dataset[0]=xxxxx&dataset[1]=yyyyy Example: public-global-fishing-effort:latest True string query
filters[0] Filters are applied to the dataset parameter with the corresponding index. For example if we want to apply a filter to dataset[0], we should apply the filter attributes to filter[0].For AIS fishing effort, the possible filters are: flag, geartype. Example: flag in ('ESP') False string query
date-range Start date and end date to filter the data Example: 2021-01-01,2021-03-01 False string query

Get fishing effort in raster format by tile coordinates - V2

GET PNG TILE BY COORDINATES


curl --location --request GET 'https://gateway.api.globalfishingwatch.org/v2/4wings/tile/heatmap/2/3/1?format=png&interval=10days&datasets[0]=public-global-fishing-effort:latest&date-range=2020-01-01,2020-01-31&style=[STYLE]' \
  -H "Authorization: Bearer [TOKEN]" \
  -o "tile-by-coordinates.png"

Make sure to replace [TOKEN] with your API Access Token and [STYLE] with the style obtained in the previous endpoint "Create a style for generate png tiles" in the 'url' field

If the request is successful, in this example the response will be a png file

This endpoint allows you to get details of the cell of the tile (in PNG or MVT format depending on the parameter).

⚠️ Before using this endpoint, remember to create your STYLE that specifies how the fishing effort will be visualized. Check more detail about how to generate your style here.

Get fishing effort in raster v2 - HTTP Request

GET https://gateway.api.globalfishingwatch.org/v2/4wings/tile/heatmap/{z}/{x}/{y}

Get fishing effort in raster v2 - URL Parameters

Parameter Description Required Format Param Type
z Zoom level (from 0 to 12) Example: 1 True number path
x X index (lat) of the tile True number path
y Y index (lon) of the tile True number path
temporal-aggregation Aggregates temporarily the data in the tile Example: True False boolean query
interval Tiles are available at several time resolutions (hourly, daily, monthly and 10 days), it means one frame every one hour, one day or 10 days. For each resolution, the max displayable length items: 1 hour: 20 days, 1 day: 1 year and 10 days: several years depending on the dataset for AIS Fishing effort it starts in 2012. Example: 10days False Enum: ['10days', 'day', 'hour'] query
datasets[0] Specify the datasets that will be used to create the style. You can learn more about which are the possible datasets here. The parameters should be defined using an index, in case only one dataset is going to be sent: ?dataset[0]=xxxxx, in case of multiple datasets: ?dataset[0]=xxxxx&dataset[1]=yyyyy. Example: public-global-fishing-effort:latest True string query
filters[0] Filters are applied to the dataset parameter with the corresponding index. For example if we want to apply a filter to dataset[0], we should apply the filter attributes to filter[0].For AIS fishing effort, the possible filters are: flag, geartype. Example: flag in ('ESP') False string query
date-range Start date and end date to filter the data Example: 2021-01-01,2021-03-01 False string query
format Format of response Example: mvt False Enum: ['mvt', 'png'] query
style Id of the style obtained with endpoint /v2/4wings/generate-png. False string

Generate bins of inputs to know the data (For example to create a color ramp of the data) - V2

GENERATE FISHING EFFORT REPORT GROUPED BY YEAR AND BY CUSTOM POLYGON IN JSON FORMAT


curl --location -g --request GET 'https://gateway.api.globalfishingwatch.org/v2/4wings/bins/1?datasets[0]=public-global-fishing-effort:latest&temporal-aggregation=false&num-bins=9&interval=10days' \
  -H "Authorization: Bearer [TOKEN]"

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response will be:

[
  [
    0, 681.7608333333334, 3155.027222222222, 11128.39916666666,
    24225.742837079433, 39811.977777777785, 59699.12027777779,
    88621.67472222226, 118122.56555555557
  ]
]

Get bins v2 - HTTP Request

GET https://gateway.api.globalfishingwatch.org/v2/4wings/bins/{z}

Get bins v2 - URL Parameters

Parameter Description Required Format Param Type
z Zoom level (from 0 to 12) True number path
temporal-aggregation Aggregates temporarily the data in the tile Example: True False boolean query
num-bins Number of bins or buckets that you would like Example: 10 False number query
interval Tiles are available at several time resolutions (hourly, daily, monthly and 10 days), it means one frame every one hour, one day or 10 days. For each resolution, the the max displayable length items: 1 hour: 20 days, 1 day: 1 year and 10 days: several years depending on the dataset for AIS Fishing effort it starts in 2012. Example: 10days False Enum: ['10days', 'day', 'hour'] query
datasets[0] Specify the datasets that will be used to create the style. You can learn more about which are the possible datasets here. The parameters should be defined using an index, in case only one dataset is going to be sent: ?dataset[0]=xxxxx, in case of multiple datasets: ?dataset[0]=xxxxx&dataset[1]=yyyyy. Example: public-global-fishing-effort:latest True string query
filters[0] Filters are applied to the dataset parameter with the corresponding index. For example if we want to apply a filter to dataset[0], we should apply the filter attributes to filter[0].For AIS fishing effort, the possible filters are: flag, geartype. Example: flag in ('ESP') False string query
date-range Start date and end date to filter the data Example: 2021-01-01,2021-03-01 False string query

Return info in the cells of the tile specified - V2

GET DETAIL OF A TILE TO ALLOW FURTHER INTERACTION

curl --location -g --request GET 'https://gateway.api.globalfishingwatch.org/v2/4wings/interaction/1/0/0/107?date-range=2021-01-01,2021-12-31&datasets[0]=public-global-fishing-effort:latest' \
  -H "Authorization: Bearer [TOKEN]"

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response will be: fishing hours and vessel id that allow you to get more detail of a vessel by using the Vessel API

{
  "total": 1,
  "limit": null,
  "offset": null,
  "nextOffset": null,
  "metadata": {},
  "entries": [
    [
      {
        "hours": 11.455833333333334,
        "id": "f2134364c-c3d5-8ee9-ddd4-5511c0500a50"
      },
      {
        "hours": 9.895000000000001,
        "id": "f042d0bcf-fe96-cad5-5833-36b4aff2e87a"
      },
      {
        "hours": 12.617222222222223,
        "id": "e2d464a53-35ed-f059-c7e2-1ac76e12c9cc"
      },
      {
        "hours": 1.238611111111111,
        "id": "c88e21112-2a09-4d56-196e-ff9cb26f76c9"
      },
      {
        "hours": 0.053055555555555564,
        "id": "b8de3c8e8-84f0-ba2f-528c-ff877e2d0e9e"
      },
      {
        "hours": 3.531944444444444,
        "id": "b5d3439b6-6d19-5385-9d6b-08a0dfd60fa7"
      },
      {
        "hours": 18.993333333333332,
        "id": "ab75d8a33-3f93-62eb-0c86-38d8c742eff3"
      },
      {
        "hours": 9.597777777777777,
        "id": "a812d4320-0608-5ad0-1929-d5206eda123a"
      },
      {
        "hours": 34.2575,
        "id": "9eab37595-5bf1-471e-2e38-c070ebb00a7a"
      },
      {
        "hours": 47.11222222222222,
        "id": "9cf14ce31-144f-dda7-ded3-743bec9e41db"
      },
      {
        "hours": 9.228888888888891,
        "id": "9aed1677e-ef23-f541-58eb-8d755d410df4"
      },
      {
        "hours": 1.6025,
        "id": "784830b33-3de5-b572-61aa-bd9496643fb1"
      },
      {
        "hours": 5.095000000000001,
        "id": "70a3ff9ca-ab64-12b2-6446-34cdf14000c6"
      },
      {
        "hours": 5.3925,
        "id": "6b3129a20-009f-1741-5877-a714ea11cf2b"
      },
      {
        "hours": 16.631666666666668,
        "id": "68ab5e789-96a1-fd61-016c-92bd413a9682"
      },
      {
        "hours": 10.718055555555555,
        "id": "65aaba596-62eb-49af-910d-f7d9d47a2d06"
      },
      {
        "hours": 9.872222222222222,
        "id": "3f7c46fe4-45f8-0685-a7e5-60d531c7c352"
      },
      {
        "hours": 8.126666666666667,
        "id": "2ab8c04ff-f0e3-a3f1-7ef4-2428604174e0"
      },
      {
        "hours": 38.58861111111111,
        "id": "1abad9a58-8758-383e-8c58-6c8029ecaa44"
      },
      {
        "hours": 10.016388888888889,
        "id": "184b291b6-619c-748c-1f32-5fe46616d0dc"
      },
      {
        "hours": 0.11166666666666666,
        "id": "1738bc096-6373-5ae6-8bd0-dd31ecf6c0eb"
      },
      {
        "hours": 2.338888888888889,
        "id": "098ac6ed6-65a9-260b-fb84-8c932eb977ae"
      },
      {
        "hours": 47.81805555555555,
        "id": "050743514-4618-79b3-8643-96ada9281517"
      },
      {
        "hours": 17.753055555555555,
        "id": "04b95cb83-31d8-06e7-0845-8691696643f5"
      }
    ]
  ]
}

Interaction v2 - HTTP Request

GET https://gateway.api.globalfishingwatch.org/v2/4wings/interaction/{z}/{x}/{y}/{cells}

Interaction v2 - URL Parameters

Parameter Description Required Format Param Type
z Zoom level (from 0 to 12) True number path
x X index (lat) of the tile True number path
y Y index (lon) of the tile True number path
cells Indexes of cells separated by comma Example: 107,1,2 True string path
limit Number maximun of results Example: 10 False number query
datasets[0] Specify the datasets that will be used to create the style. You can learn more about which are the possible datasets here. The parameters should be defined using an index, in case only one dataset is going to be sent: ?dataset[0]=xxxxx, in case of multiple datasets: ?dataset[0]=xxxxx&dataset[1]=yyyyy. Example: public-global-fishing-effort:latest True string query
filters[0] Filters are applied to the dataset parameter with the corresponding index. For example if we want to apply a filter to dataset[0], we should apply the filter attributes to filter[0].For AIS fishing effort, the possible filters are: flag, geartype. Example: flag in ('ESP') False string query
date-range Start date and end date to filter the data Example: 2021-01-01,2021-03-01 False string query

Create a report of a specified region - V2

EXAMPLE 1 - GENERATE FISHING EFFORT REPORT GROUPED BY YEAR AND BY CUSTOM POLYGON IN JSON FORMAT


curl --location -g --request POST 'https://gateway.api.globalfishingwatch.org/v2/4wings/report?spatial-resolution=low&temporal-resolution=yearly&group-by=flag&datasets[0]=public-global-fishing-effort:latest&date-range=2021-01-01T00:00:00.000Z,2022-01-01T00:00:00.000Z&format=json' \
  -H "Authorization: Bearer [TOKEN]"
  -H 'Content-Type: application/json' \
--data-raw '{"geojson":{"type":"Polygon","coordinates":[[[-76.11328125,-26.273714024406416],[-76.201171875,-26.980828590472093],[-76.376953125,-27.527758206861883],[-76.81640625,-28.30438068296276],[-77.255859375,-28.767659105691244],[-77.87109375,-29.152161283318918],[-78.486328125,-29.45873118535532],[-79.189453125,-29.61167011519739],[-79.892578125,-29.6880527498568],[-80.595703125,-29.61167011519739],[-81.5625,-29.382175075145277],[-82.177734375,-29.07537517955835],[-82.705078125,-28.6905876542507],[-83.232421875,-28.071980301779845],[-83.49609375,-27.683528083787756],[-83.759765625,-26.980828590472093],[-83.84765625,-26.35249785815401],[-83.759765625,-25.64152637306576],[-83.583984375,-25.16517336866393],[-83.232421875,-24.447149589730827],[-82.705078125,-23.966175871265037],[-82.177734375,-23.483400654325635],[-81.5625,-23.241346102386117],[-80.859375,-22.998851594142906],[-80.15625,-22.917922936146027],[-79.453125,-22.998851594142906],[-78.662109375,-23.1605633090483],[-78.134765625,-23.40276490540795],[-77.431640625,-23.885837699861995],[-76.9921875,-24.28702686537642],[-76.552734375,-24.846565348219727],[-76.2890625,-25.48295117535531],[-76.11328125,-26.273714024406416]]]}}'

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response will be:

{
  "total": 1,
  "limit": null,
  "offset": null,
  "nextOffset": null,
  "metadata": {},
  "entries": [
    {
      "public-global-fishing-effort:v20201001": [
        {
          "date": "2021",
          "flag": "ESP",
          "hours": 0.41805555555555557,
          "lat": -24.2,
          "lon": -77.8,
          "vesselIDs": 1
        },
        {
          "date": "2021",
          "flag": "ESP",
          "hours": 0.4283333333333333,
          "lat": -27.3,
          "lon": -82,
          "vesselIDs": 1
        },
        {
          "date": "2021",
          "flag": "ESP",
          "hours": 0.27555555555555555,
          "lat": -24.6,
          "lon": -78.4,
          "vesselIDs": 2
        },
        {
          "date": "2021",
          "flag": "ESP",
          "hours": 0.9591666666666667,
          "lat": -24.7,
          "lon": -78.6,
          "vesselIDs": 2
        },
        {
          "date": "2021",
          "flag": "ESP",
          "hours": 0.034444444444444444,
          "lat": -24.7,
          "lon": -78.5,
          "vesselIDs": 1
        }
      ]
    }
  ]
}

EXAMPLE 2 - GENERATE FISHING EFFORT REPORT GROUPED BY GEAR TYPE, USING EXISTING REGIONS (Russian EEZ) IN CSV FORMAT. To get details of existing regions, check Regions in the Reference data section


curl --location -g --request POST 'https://gateway.api.globalfishingwatch.org/v2/4wings/report?spatial-resolution=low&temporal-resolution=monthly&group-by=gearType&datasets[0]=public-global-fishing-effort:latest&date-range=2022-01-01,2022-05-01&format=csv' \
--header 'Authorization: Bearer [TOKEN]' \
--header 'Content-Type: application/json' \
--output 'report-grouped.json' \
--data-raw '{
    "region": {
        "dataset": "public-eez-areas",
        "id": 5690
    }
}'

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response will be a ZIP file including the CSV file and a pdf with data considerations.

EXAMPLE 3 - GENERATE REPORT WITH TOTAL FISHING HOURS PER LAT/LON GRID CELL USING EXISTING REGIONS (MPA Dorsal de Nasca) IN JSON FORMAT. To get details of existing regions, check Regions in the Reference data section


curl --location -g --request POST 'https://gateway.api.globalfishingwatch.org/v2/4wings/report?spatial-resolution=low&temporal-resolution=entire&spatial-aggregation=false&datasets[0]=public-global-fishing-effort:latest&date-range=2022-05-01,2022-12-01&format=json'\
--header 'Authorization: Bearer [TOKEN]' \
--header 'Content-Type: application/json' \
--output 'report-grouped.json' \
--data-raw '{
    "region": {
        "dataset": "public-mpa-all",
        "id": 555745302
    }
}'

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response will be:

{
  "total": 1,
  "limit": null,
  "offset": null,
  "nextOffset": null,
  "metadata": {},
  "entries": [
    {
      "public-global-fishing-effort:v20201001": [
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 2.9250000000000003,
          "lat": -15.7,
          "lon": -76.7
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.2999999999999998,
          "lat": -15.2,
          "lon": -77.5
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 2.069166666666667,
          "lat": -15.7,
          "lon": -76.8
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 0.9936111111111111,
          "lat": -15.8,
          "lon": -77.5
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 2.3311111111111114,
          "lat": -15.6,
          "lon": -77.2
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 2.0277777777777777,
          "lat": -15.7,
          "lon": -76.6
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 0.8758333333333334,
          "lat": -15.8,
          "lon": -76.6
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 3.988888888888889,
          "lat": -16,
          "lon": -76.3
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.0811111111111111,
          "lat": -15.5,
          "lon": -77.3
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 0.6916666666666667,
          "lat": -14.9,
          "lon": -76.9
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 9.885555555555555,
          "lat": -15.1,
          "lon": -77.6
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 2.058611111111111,
          "lat": -15.3,
          "lon": -77.3
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.7366666666666668,
          "lat": -17.5,
          "lon": -77.9
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.17,
          "lat": -15.9,
          "lon": -76.3
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 3.750277777777778,
          "lat": -15,
          "lon": -77
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 4.2636111111111115,
          "lat": -15.9,
          "lon": -77.3
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.0566666666666669,
          "lat": -15.9,
          "lon": -76.2
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 0.7,
          "lat": -15.8,
          "lon": -77.6
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.3966666666666665,
          "lat": -15,
          "lon": -77.2
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.2666666666666666,
          "lat": -15.7,
          "lon": -77.5
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 0.8836111111111112,
          "lat": -17.6,
          "lon": -77.8
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.6336111111111113,
          "lat": -15.4,
          "lon": -76.9
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 3.7730555555555556,
          "lat": -15.9,
          "lon": -77.4
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 2.056944444444444,
          "lat": -17.5,
          "lon": -77.8
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 3.3041666666666667,
          "lat": -16,
          "lon": -76.4
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 4.950277777777777,
          "lat": -15.1,
          "lon": -76.9
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 11.073611111111111,
          "lat": -15.5,
          "lon": -76.7
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 2.269722222222222,
          "lat": -16.1,
          "lon": -76.3
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 2.401111111111111,
          "lat": -15.6,
          "lon": -76.7
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 0.24166666666666664,
          "lat": -16.2,
          "lon": -76.5
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 0.5788888888888889,
          "lat": -16,
          "lon": -77
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 6.835277777777778,
          "lat": -16.1,
          "lon": -76.2
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.1025000000000003,
          "lat": -15.5,
          "lon": -76.8
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.0766666666666667,
          "lat": -16.5,
          "lon": -76.1
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 0.9891666666666667,
          "lat": -15.4,
          "lon": -76.8
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.395,
          "lat": -15.5,
          "lon": -77.6
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 6.915277777777777,
          "lat": -15.9,
          "lon": -77.2
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 6.261944444444444,
          "lat": -16.2,
          "lon": -76
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.3144444444444443,
          "lat": -15.1,
          "lon": -77
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 0.20166666666666666,
          "lat": -15.5,
          "lon": -76.6
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 0.10583333333333333,
          "lat": -15.6,
          "lon": -76.8
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.2480555555555557,
          "lat": -15.3,
          "lon": -77.8
        }
      ]
    }
  ]
}

Report v2 - HTTP Request

POST https://gateway.api.globalfishingwatch.org/v2/4wings/report

EXAMPLE 429 ERROR RESPONSE

{
  "statusCode": 429,
  "error": "Too Many Requests",
  "messages": [
    {
      "title": "Too Many Requests",
      "detail": "Your application token is not currently enabled to perform more than one concurrent report. If you need to generate more than one report concurrently, contact us at [email protected]",
      "metadata": {
        "currentReportBody": {
          "geojson": null,
          "region": {
            "dataset": "public-mpa-all",
            "id": "555635930"
          }
        },
        "currentReportUrl": "/v2/4wings/report?format=csv&datasets%5B0%5D=public-global-fishing-effort%3Av20201001&date-range=2023-05-01T00%3A00%3A00.000Z%2C2023-06-01T00%3A00%3A00.000Z&spatial-aggregation=true&temporal-resolution=entire&group-by=vessel_id"
      }
    }
  ]
}

Report v2 - Examples

On the right side, you can find 3 examples:

  1. Example 1 - Generate fishing effort report grouped By Year and by Custom Polygon In JSON Format
  2. Example 2 - Generate fishing effort report grouped By Gear Type, Using existing Regions (Russian Eez) In CSV Format.
  3. Example 3 - Generate report with total fishing hours per Lat/Lon grid cell (no grouping) using existing Regions (MPA Dorsal De Nasca) In JSON Format

Report v2 - URL Parameters

Parameter Description Required Format Param Type
spatial-resolution Low means at 10th degree resolution and High means at 100th degree resolution. Only required if spatial-aggregation is false or it's not sent. Example: low False Enum: ['low', 'high'] query
format As result you get a zip file that contains caveat information and also the actual file including the results that could be in different results. Example: csv True Enum: ['csv', 'tif', 'json'] query
group-by The report data can be grouped by different criteria, for example a csv by vessel_id means that you get on row for each vessel id. Only required when spatial-aggregation is True. Example: vessel_id False Enum: ['vessel_id', 'flag', 'gearType', 'flagAndGearType', 'mmsi'] query
temporal-resolution You can decide the level of detail regarding time. For example if you request csv, group by vessel_id and daily, you get one row per vessel id per day, or if you request csv, group by vessel_id and entire, you get one row per vessel id. Example: yearly True Enum: ['hourly', 'daily', 'monthly', 'yearly','entire'] query
datasets[0] Specify the datasets that will be used to create the style. You can learn more about which are the possible datasets here. The parameters should be defined using an index, in case only one dataset is going to be sent: ?dataset[0]=xxxxx, in case of multiple datasets: ?dataset[0]=xxxxx&dataset[1]=yyyyy. Example: public-global-fishing-effort:latest True string query
filters[0] Filters are applied to the dataset parameter with the corresponding index. For example if we want to apply a filter to dataset[0], we should apply the filter attributes to filter[0].For AIS fishing effort, the possible filters are: flag, geartype. Example: flag in ('ESP') False string query
date-range Start date and end date to filter the data. Maximum 366 days. Example: 2021-01-01,2021-03-01 False string query
spatial-aggregation Aggregates spatially the data in the report. With value true, the formats supported are only csv and json. Example: True False boolean query

Report v2 - Body

Key Description Required Format Param Type
geojson Geometry to filter the data in GeoJSON format False object body
region Object with region information (To get details of existing regions, check Regions in the Reference data section) False object body
region.dataset Id of the dataset to obtain the region (example: public-eez-areas) False string body
region.id Id of the region (example: 5690) False string body

This endpoint only supports geojson or region object in the same request.

Statistics on fishing activity worldwide - V2

EXAMPLE 1 - GET WORLDWIDE STATS RELATED TO FISHING EFFORT FOR A TIME PERIOD WITH NO FILTER

curl --location -g --request GET 'https://gateway.api.globalfishingwatch.org/v2/4wings/stats/?datasets[0]=public-global-fishing-effort:latest&fields=flags,vessel-ids,activity-hours&date-range=2022-10-22,2023-01-22' \
  -H 'Authorization: Bearer {access-token}'

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response will be:

[
  {
    "activityHours": 15893604.112467173,
    "flags": 181,
    "maxLat": 81.58017,
    "maxLon": 179.99969333333334,
    "minLat": -76.05226666666667,
    "minLon": -179.99952333333334,
    "vesselIds": 51236
  }
]

EXAMPLE 2 - GET WORLDWIDE STATS RELATED TO FISHING EFFORT FOR A TIME PERIOD WITH GEAR TYPE FILTER

curl --location -g --request GET 'https://gateway.api.globalfishingwatch.org/v2/4wings/stats/?datasets[0]=public-global-fishing-effort:latest&fields=flags,vessel-ids,activity-hours&date-range=2022-10-22,2023-01-22&filters[0]=geartype in ("tuna_purse_seines","driftnets")' \
  -H 'Authorization: Bearer {access-token}'

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response will be:

[
  {
    "activityHours": 100793.99916805542,
    "flags": 60,
    "maxLat": 64.15896833333333,
    "maxLon": 179.993765,
    "minLat": -43.90320833333333,
    "minLon": -179.98104999999998,
    "vesselIds": 589
  }
]

Get statistics worldwide

Stats v2 - HTTP Request

GET /v2/4wings/stats

Stats v2 - Parameters

Name In Type Required Description
fields query string false Statitics fields (separated by comma). For AIS fishing effort, available fields are: flags, vessel-ids, activity-hours
vessel-groups[0] query string false Vessel group ids to filter (separated by comma). Vessel groups applied at dataset with index 0. At the same as datasets, this query param could be send with different index to apply filters to other datasets.
datasets[0] query string true Specify the datasets that will be used to create the style. You can learn more about which are the possible datasets here. The parameters should be defined using an index, in case only one dataset is going to be sent: ?dataset[0]=xxxxx, in case of multiple datasets: ?dataset[0]=xxxxx&dataset[1]=yyyyy
filters[0] query string false Filters are applied to the dataset parameter with the corresponding index. For example if we want to apply a filter to dataset[0], we should apply the filter attributes to filter[0].For AIS fishing effort, the possible filters are: flag, geartype
date-range query string false Start date and end date to filter the data

Example responses

200 Response

[
  {
    "activityHours": 0,
    "flags": 0,
    "maxLat": 0,
    "maxLon": 0,
    "minLat": 0,
    "minLon": 0,
    "vesselIds": 0
  }
]

Stats v2 - Responses

Status Meaning Description Schema
200 OK. Stats response StatsResponse
401 Unauthorized. No Unauthorized. Error Codes
403 Forbidden You do not have permissions to do the action. Error Codes
422 Unprocessable Entity Unprocessable Entity. Validation error. Error Codes
429 Too Many Requests Too Many Request. Error Codes
503 Service Unavailable Service Unavailable. Error Codes

Vessels API - V2

Introduction Vessels API - V2

Vessels API allows you to search for vessels and get vessel identity details. You can:

Basic Search - V2

SEARCH ANY VESSEL BY MMSI = 224224000


curl --location --request GET 'https://gateway.api.globalfishingwatch.org/v2/vessels/search?query=224224000&datasets=public-global-support-vessels:latest,public-global-carrier-vessels:latest,public-global-fishing-vessels:latest&limit=10&offset=0' \
  -H "Authorization: Bearer [TOKEN]"

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response will be:

{
  "metadata": {
    "query": "224224000",
    "suggestion": null,
    "field": "shipname"
  },
  "total": 1,
  "limit": 10,
  "offset": 0,
  "nextOffset": null,
  "entries": [
    {
      "callsign": "EBSJ",
      "firstTransmissionDate": "2015-10-13T15:47:16Z",
      "flag": "ESP",
      "geartype": null,
      "id": "3c99c326d-dd2e-175d-626f-a3c488a4342b",
      "imo": "8733445",
      "lastTransmissionDate": "2019-10-15T12:10:51Z",
      "mmsi": "224224000",
      "msgCount": 1887249,
      "posCount": 73677,
      "shipname": "AGURTZA BERRIA",
      "source": "AIS",
      "vesselType": "Purse Seine Support",
      "years": [2015, 2016, 2017, 2018, 2019],
      "dataset": "public-global-support-vessels:v20201001",
      "score": 29.100689
    }
  ]
}

This endpoint searches for a vessel given a free form query. The query will be matched against any identifiers for the vessel, and a paginated, ranked results list will be returned. It allows you to perform a basic search of a vessel by sending some identifier, for example: MMSI, IMO, CALL SIGN,Shipname, etc.

Basic search v2 - HTTP Request

GET https://gateway.api.globalfishingwatch.org/v2/vessels/search

Basic search v2 - URL Parameters

Parameter Description Required Format Param Type
limit Amount of search results to return. Example: 10 True number query
offset Offset into the search results, used for pagination. It starts at 0. It is used in combination with the param “limit”, for example you send limit = 5 and you get in the response total vessels =10. So, If you send offset =0 OR you don’t send it, you will get the first 5 results (first page). Therefore, in order to get the second page, you need to send offset = 5 which is the position of the first element you want from the second page. Example: 5 True number query
datasets Specify the datasets that will be used to search the vessel. You can learn more about which are the possible datasets here. You can send several datasets separated by comma. Example: public-global-fishing-vessels:latest,public-global-carrier-vessels:latest True string query
query Free form query that allows you to search a vessel by sending some identifier, for example: MMSI, IMO, CALL SIGN,Shipname, etc. Identifier depends on the dataset. You can send one character length but we recommend sending at least 3 characters. Example: Don tito True string query
binary If the response should be in binary format (proto buffer) or not. It is useful if you want to improve the performance of your platform. A decoder is needed to transform the response. Default is False. Example: True False boolean query
suggest-field Field for suggestion. The list of fields to suggest depend on the dataset Example: shipname False string query
query-fields List of fields to match with the search query instead of the entire object property. The list of query fields depend on the dataset (separated by comma) Example: shipname,mmsi False string query

Advanced Search - V2

SEARCH ANY VESSEL BY MMSI AND IMO AND A VESSEL NAME


curl --location --request GET 'https://gateway.api.globalfishingwatch.org/v2/vessels/advanced-search?datasets=public-global-carrier-vessels:latest,public-global-fishing-vessels:latest,public-global-support-vessels:latest&query=shipname%20LIKE%20%27%25GABU%20REEFE%25%27%20OR%20imo%20%3D%20%278300949%27&limit=1&offset=0' \
  -H "Authorization: Bearer [TOKEN]"

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response will be:

{
  "metadata": {
    "query": "shipname LIKE '%GABU REEFE%' OR imo = '8300949'"
  },
  "total": 3,
  "limit": 1,
  "offset": 1,
  "nextOffset": 1,
  "entries": [
    {
      "callsign": "ER2732",
      "firstTransmissionDate": "2019-02-22T21:46:13Z",
      "flag": "MDA",
      "geartype": null,
      "id": "0b7047cb5-58c8-6e63-4bfd-96a6af515c91",
      "imo": "8300949",
      "lastTransmissionDate": "2022-02-17T14:08:20Z",
      "mmsi": "214182732",
      "msgCount": 70035084,
      "posCount": 378287,
      "shipname": "GABU REEFER",
      "source": "AIS",
      "vesselType": "Carrier",
      "years": [2019, 2020, 2021, 2022],
      "dataset": "public-global-carrier-vessels:v20201001",
      "score": 7.6147256
    }
  ]
}

This endpoint allows you to perform an advanced search by creating a query like shipname LIKE '%GABU REEFE%' OR imo = '8300949. Where you can combine several fields, for example: id (vessel id), callsign, flag, imo, mmsi, shipname, normalized_shipname, lastTransmissionDate and firstTransmissionDate.

Advanced search v2 - HTTP Request

GET https://gateway.api.globalfishingwatch.org/v2/vessels/advanced-search

Advanced search v2 - URL Parameters

Parameter Description Required Format Param Type
limit Amount of search results to return. Example: 10 True number query
offset Offset into the search results, used for pagination. It starts at 0. It is used in combination with the param “limit”, for example you send limit = 5 and you get in the response total vessels =10. So, If you send offset =0 OR you don’t send it, you will get the first 5 results (first page). Therefore, in order to get the second page, you need to send offset = 5 which is the position of the first element you want from the second page. Example: 5 True number query
datasets Specify the datasets that will be used to search the vessel. You can learn more about which are the possible datasets here. You can send several datasets separated by comma. Example: public-global-fishing-vessels:latest,public-global-carrier-vessels:latest True string query
query Advanced query that allows you to search a vessel by sending several identifiers. The list of identifiers depends on the dataset. You can combine logic operators like AND, OR, LIKE, >= , <. Example: (shipname LIKE '%SEIN PHOENIX%' OR mmsi = '441618000' OR imo = '9047271' OR callsign='D8SP') AND lastTransmissionDate >= '2021-05-29' AND firstTransmissionDate <= '2021-08-29' AND flag = 'KOR' True string query

Get list of vessels filtered by ids - V2

GET DETAILS OF TWO FISHING VESSELS AND ONE CARRIER


curl --location --request GET 'https://gateway.api.globalfishingwatch.org/v2/vessels?datasets=public-global-fishing-vessels:latest,public-global-carrier-vessels:latest,public-global-support-vessels:latest&ids=8c7304226-6c71-edbe-0b63-c246734b3c01,6583c51e3-3626-5638-866a-f47c3bc7ef7c,71e7da672-2451-17da-b239-857831602eca' \
  -H "Authorization: Bearer [TOKEN]"

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response will be:

{
  "metadata": {},
  "total": 3,
  "limit": null,
  "offset": null,
  "nextOffset": null,
  "entries": [
    {
      "callsign": "DTBY3",
      "firstTransmissionDate": "2013-09-02T03:59:51Z",
      "flag": "KOR",
      "geartype": "tuna_purse_seines",
      "id": "6583c51e3-3626-5638-866a-f47c3bc7ef7c",
      "imo": "891948900",
      "lastTransmissionDate": "2022-06-24T06:15:01Z",
      "mmsi": "441734000",
      "msgCount": 3466294,
      "posCount": 196191,
      "shipname": "ADRIA",
      "source": "AIS",
      "vesselType": "Fishing",
      "years": [2013, 2014, 2015, 2017, 2020],
      "dataset": "public-global-fishing-vessels:v20201001"
    },
    {
      "callsign": "DUQA-7",
      "firstTransmissionDate": "2017-02-15T05:54:53Z",
      "flag": "PHL",
      "geartype": "tuna_purse_seines",
      "id": "71e7da672-2451-17da-b239-857831602eca",
      "imo": "8118322",
      "lastTransmissionDate": "2019-08-09T05:56:14Z",
      "mmsi": "548012100",
      "msgCount": 1967237,
      "posCount": 105523,
      "shipname": "JOHN REYNALD",
      "source": "AIS",
      "vesselType": "Fishing",
      "years": [2017, 2018, 2019],
      "dataset": "public-global-fishing-vessels:v20201001"
    },
    {
      "callsign": "5BWC3",
      "firstTransmissionDate": "2013-05-15T20:18:31Z",
      "flag": "CYP",
      "geartype": null,
      "id": "8c7304226-6c71-edbe-0b63-c246734b3c01",
      "imo": "9076260",
      "lastTransmissionDate": "2022-07-10T23:57:22Z",
      "mmsi": "210631000",
      "msgCount": 132125326,
      "posCount": 825764,
      "shipname": "FRIO FORWIN",
      "source": "AIS",
      "vesselType": "Carrier",
      "years": [2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022],
      "dataset": "public-global-carrier-vessels:v20201001"
    }
  ]
}

After you perform a Basic or an Advanced Search, you get the vessel id, for example 58cf536b1-1fca-dac3-ad31-7411a3708dcd. You can use this endpoint to get the details of a list of specific vessel ids.

Get by ids v2 - HTTP Request

GET https://gateway.api.globalfishingwatch.org/v2/vessels

Get by ids v2 - URL Parameters

Parameter Description Required Format Param Type
datasets Specify the datasets that will be used to search the vessel. You can learn more about which are the possible datasets here. You can send several datasets separated by comma. Example: public-global-fishing-vessels:latest,public-global-carrier-vessels:latest True string query
ids List of vessel ids separated by comma. You can get this information using the search endpoints Example: 6583c51e3-3626-5638-866a-f47c3bc7ef7c True string query
binary If the response should be in binary format (proto buffer) or not. It is useful if you want to improve the performance of your platform. A decoder is needed to transform the response. Default is False. Example: True False boolean query

Get vessel by id - V2

GET DETAILS OF ONE VESSEL


curl --location --request GET 'https://gateway.globalfishingwatch.org/v2/vessels/8c7304226-6c71-edbe-0b63-c246734b3c01?datasets=public-global-carrier-vessels:latest' \\
  -H "Authorization: Bearer [TOKEN]"

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response will be:

{
  "callsign": "5BWC3",
  "firstTransmissionDate": "2013-05-15T20:18:31Z",
  "flag": "CYP",
  "geartype": null,
  "id": "8c7304226-6c71-edbe-0b63-c246734b3c01",
  "imo": "9076260",
  "lastTransmissionDate": "2022-07-10T23:57:22Z",
  "mmsi": "210631000",
  "msgCount": 132125326,
  "posCount": 825764,
  "shipname": "FRIO FORWIN",
  "source": "AIS",
  "vesselType": "Carrier",
  "years": [2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022],
  "dataset": "public-global-carrier-vessels:v20201001"
}

After you perform a Basic or an Advanced Search, you get the vessel id, for example 58cf536b1-1fca-dac3-ad31-7411a3708dcd. You can use this endpoint to get the details of ONE vessel id.

Get by id v2 - HTTP Request

GET https://gateway.api.globalfishingwatch.org/v2/vessels/{vesselId}

Get by id v2 - URL Parameters

Parameter Description Required Format Param Type
vesselId Example: 6583c51e3-3626-5638-866a-f47c3bc7ef7c True string path
datasets Specify the dataset that will be used to search the vessel. You can learn more about which are the possible datasets here. You can send only one dataset. Example: public-global-fishing-vessels:latest True string query

Events API - V2

Introduction Events API - V2

Events API allows you to explore different activities of a vessel. You can analyze:

Check more detail about data caveats here.

Get All Events (GET endpoint) - V2

GET FISHING EVENTS


curl --location --request GET 'https://gateway.api.globalfishingwatch.org/v2/events?vessels=9b3e9019d-d67f-005a-9593-b66b997559e5&datasets=public-global-fishing-events:latest&start-date=2017-01-01&end-date=2017-01-31&limit=1&offset=0' \
  -H "Authorization: Bearer [TOKEN]"

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response will be:

{
  "metadata": {
    "datasets": ["public-global-fishing-events:v20201001"],
    "vessels": ["9b3e9019d-d67f-005a-9593-b66b997559e5"],
    "dateRange": {
      "from": "2017-01-01",
      "to": "2017-01-31"
    },
    "encounterTypes": []
  },
  "total": 10,
  "nextOffset": 1,
  "offset": 0,
  "limit": 1,
  "entries": [
    {
      "id": "718a4d93c16f78d9a54e9bc56d20c7e0",
      "type": "fishing",
      "start": "2017-01-18T23:56:16.000Z",
      "end": "2017-01-19T03:42:27.000Z",
      "position": {
        "lat": -46.1538,
        "lon": -63.2245
      },
      "regions": {
        "mpa": [],
        "eez": [8466],
        "rfmo": ["ICCAT"]
      },
      "boundingBox": [
        -63.21452500000001, -46.1618533333, -63.23098, -46.1495283333
      ],
      "distances": {
        "startDistanceFromShoreKm": 221,
        "endDistanceFromShoreKm": 220,
        "startDistanceFromPortKm": 242.616953,
        "endDistanceFromPortKm": 240.71707800000001
      },
      "vessel": {
        "id": "9b3e9019d-d67f-005a-9593-b66b997559e5",
        "name": "CLAUDINA",
        "ssvid": "701000948"
      },
      "fishing": {
        "totalDistanceKm": 2.1365631888840078,
        "averageSpeedKnots": 0.49600001274,
        "averageDurationHours": 0.15707175925925926
      }
    }
  ]
}

GET ENCOUNTER EVENTS


curl --location --request GET 'https://gateway.api.globalfishingwatch.org/v2/events?datasets=public-global-encounters-events:latest&vessels=8c7304226-6c71-edbe-0b63-c246734b3c01&limit=1&offset=0' \
  -H "Authorization: Bearer [TOKEN]"

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response will be:

{
  "metadata": {
    "datasets": ["public-global-encounters-events:v20201001"],
    "vessels": ["8c7304226-6c71-edbe-0b63-c246734b3c01"],
    "dateRange": {
      "from": null,
      "to": null
    },
    "encounterTypes": [
      "fishing-carrier",
      "fishing-support",
      "carrier-fishing",
      "support-fishing"
    ]
  },
  "total": 2,
  "nextOffset": 1,
  "offset": 0,
  "limit": 1,
  "entries": [
    {
      "id": "da55e5723374f99f91887d4f51256d5a.2",
      "type": "encounter",
      "start": "2016-07-23T00:00:00.000Z",
      "end": "2016-07-23T11:50:00.000Z",
      "position": {
        "lat": 72.0866,
        "lon": 8.0857
      },
      "regions": {
        "mpa": [],
        "eez": [],
        "rfmo": ["ICCAT"]
      },
      "boundingBox": [
        8.085723348900002, 72.0865557573, 8.085723348900002, 72.0865557573
      ],
      "distances": {
        "startDistanceFromShoreKm": 426,
        "endDistanceFromShoreKm": 426,
        "startDistanceFromPortKm": 425.01421899999997,
        "endDistanceFromPortKm": 425.01421899999997
      },
      "vessel": {
        "id": "8c7304226-6c71-edbe-0b63-c246734b3c01",
        "flag": "CYP",
        "name": "FRIO FORWIN",
        "type": "carrier",
        "ssvid": "210631000"
      },
      "encounter": {
        "vessel": {
          "id": "208659960-0142-40c1-339a-c816edcab44b",
          "flag": "RUS",
          "name": "FORPOST",
          "type": "fishing",
          "ssvid": "273355780"
        },
        "medianDistanceKilometers": 0.065,
        "medianSpeedKnots": 0.5,
        "type": "carrier-fishing"
      }
    }
  ]
}

GET LOITERING EVENTS


curl --location --request GET 'https://gateway.api.globalfishingwatch.org/v2/events?datasets=public-global-loitering-events-carriers:latest&vessels=8c7304226-6c71-edbe-0b63-c246734b3c01&limit=1&offset=0' \
  -H "Authorization: Bearer [TOKEN]"

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response will be:

{
  "metadata": {
    "datasets": ["public-global-loitering-events-carriers:v20201001"],
    "vessels": ["8c7304226-6c71-edbe-0b63-c246734b3c01"],
    "dateRange": {
      "from": null,
      "to": null
    },
    "encounterTypes": []
  },
  "total": 107,
  "nextOffset": 1,
  "offset": 0,
  "limit": 1,
  "entries": [
    {
      "id": "9991a9e4b2ee7313c33f5263308d045c",
      "type": "loitering",
      "start": "2013-06-12T11:40:09.000Z",
      "end": "2013-06-12T12:01:09.000Z",
      "position": {
        "lat": 32.2075,
        "lon": -13.9346
      },
      "regions": {
        "mpa": [],
        "eez": [8363],
        "rfmo": ["ICCAT"]
      },
      "boundingBox": [-13.9335216667, 32.2104016667, -13.9357016667, 32.20455],
      "distances": {
        "startDistanceFromShoreKm": 239,
        "endDistanceFromShoreKm": 239,
        "startDistanceFromPortKm": 242.068016,
        "endDistanceFromPortKm": 241.65545300000002
      },
      "vessel": {
        "id": "8c7304226-6c71-edbe-0b63-c246734b3c01",
        "name": "FRIO FORWIN",
        "type": "carrier",
        "ssvid": "210631000"
      },
      "loitering": {
        "totalTimeHours": 0.35,
        "totalDistanceKm": 0.6822365329451406,
        "averageSpeedKnots": 1.0525093072279246,
        "averageDistanceFromShoreKm": 239.00000000000003
      }
    }
  ]
}

GET PORT VISITS


curl --location --request GET 'https://gateway.api.globalfishingwatch.org/v2/events?datasets=public-global-port-visits-c2-events:latest&vessels=914f83946-6af4-04c6-4974-44a203a87952&limit=1&offset=0' \
  -H "Authorization: Bearer [TOKEN]"

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response will be:

{
  "metadata": {
    "datasets": ["public-global-port-visits-c2-events:v20201001"],
    "vessels": ["914f83946-6af4-04c6-4974-44a203a87952"],
    "dateRange": {
      "from": null,
      "to": null
    },
    "encounterTypes": []
  },
  "total": 63,
  "nextOffset": 1,
  "offset": 0,
  "limit": 1,
  "entries": [
    {
      "id": "a7b8b2f40b75ea6bec8bc8dbcb56741e",
      "type": "port_visit",
      "start": "2014-04-15T20:09:21.000Z",
      "end": "2014-04-28T12:15:34.000Z",
      "position": {
        "lat": 42.2182,
        "lon": -8.7915
      },
      "regions": {
        "mpa": ["348806", "555557037", "555583119", "555593050"],
        "eez": [5693],
        "rfmo": ["ICCAT"]
      },
      "boundingBox": [
        -8.7508320328, 42.2291383982, -8.8819075644, 42.2035438605
      ],
      "distances": {
        "startDistanceFromShoreKm": 0,
        "endDistanceFromShoreKm": 2,
        "startDistanceFromPortKm": 0,
        "endDistanceFromPortKm": 0
      },
      "vessel": {
        "id": "914f83946-6af4-04c6-4974-44a203a87952",
        "name": "IRENE",
        "ssvid": "355794000"
      },
      "port_visit": {
        "visitId": "f5fafee33631a3948c8e2042b5810cdc",
        "confidence": 3,
        "durationHrs": 304.1036111111111,
        "startAnchorage": {
          "id": "esp-cangas",
          "lat": 42.229138398208576,
          "lon": -8.750832032773074,
          "flag": "ESP",
          "name": "CANGAS",
          "at_dock": true,
          "anchorage_id": "0d2f61f7",
          "top_destination": "VIGO",
          "distance_from_shore_km": 0
        },
        "intermediateAnchorage": {
          "id": "esp-cangas",
          "lat": 42.229138398208576,
          "lon": -8.750832032773074,
          "flag": "ESP",
          "name": "CANGAS",
          "at_dock": true,
          "anchorage_id": "0d2f61f7",
          "top_destination": "VIGO",
          "distance_from_shore_km": 0
        },
        "endAnchorage": {
          "id": "esp-vigo",
          "lat": 42.20354386049306,
          "lon": -8.881907564441319,
          "flag": "ESP",
          "name": "VIGO",
          "at_dock": false,
          "anchorage_id": "0d25f581",
          "top_destination": "VIGO",
          "distance_from_shore_km": 2
        }
      }
    }
  ]
}

Change the API Dataset to select the event type:

Events GET v2 - HTTP Request

GET https://gateway.api.globalfishingwatch.org/v2/events

Events GET v2 - URL Parameters

Parameter Description Required Format Param Type
limit Amount of search results to return. Example: 10 True number query
offset Offset into the search results, used for pagination. It starts at 0. It is used in combination with the param “limit”, for example you send limit = 5 and you get in the response total vessels =10. So, If you send offset =0 OR you don’t send it, you will get the first 5 results (first page). Therefore, in order to get the second page, you need to send offset = 5 which is the position of the first element you want from the second page. Example: 5 True number query
sort Property used to sort using a property. The list of possible values depends on the dataset. Before the property you can use ‘+’ or ‘-’ and based on that prefix, you can decide if it will be sort ascending + (ASC) or descending - (DESC).Example: -start False Enum: ['+start', '-start', '+end', '-end'] query
datasets Specify the datasets that will be used to search the vessel. You can learn more about which are the possible datasets here. You can send several datasets separated by comma. Example: public-global-fishing-events:latest,public-global-encounter-events:latest True string query
vessels List of vessel ids separated by comma. You can get this information using the search endpoints Example: 8c7304226-6c71-edbe-0b63-c246734b3c01,6583c51e3-3626-5638-866a-f47c3bc7ef7c False string query
types Event types separated by comma. Possible values: port,encounter,loitering,gap,port_visit Example: fishing False string query
start-date Start date in format YYYY-MM-DD of the start date of the event (inclusive). Filter the events that their end date is greater or equal than the start date filter. Example: 2020-01-01 False string query
end-date End date in format YYYY-MM-DD of the end date of the event (exclusive). Filter the events that their start date is less than the end date filter. Example: 2020-02-01 False string query
include-regions Flag to specify if the matching with regions should be executed or not. Check our data caveats for details on how the region is matching. Default value is True. Example: True False boolean query
confidences This param applies only to port visits events, check data caveats to understand the different levels. Values go from 2 to 4, where 2 is low confidence, 3 is medium and 4 is high confidence. Values are separated by comma. Possible values: 2, 3, 4 Example: 3,4 False string query
encounter-types Possible values: carrier-fishing, fishing-carrier, fishing-support, support-fishing Example: carrier-fishing,fishing-carrier False string query

Get All Events (POST endpoint) - V2

EXAMPLE 1 - GET FISHING EVENTS


curl --location --request POST 'https://gateway.api.globalfishingwatch.org/v2/events?offset=0&limit=1' \
--header 'Authorization: Bearer [TOKEN]' \
--header 'Content-Type: application/json' \
--data-raw '{
    "datasets": [ "public-global-fishing-events:latest"],
    "startDate": "2017-01-01",
    "endDate": "2017-01-31",
    "flags": ["CHN"],
    "geometry": {
        "type": "Polygon",
        "coordinates": [
          [
            [
              120.36621093749999,
              26.725986812271756
            ],
            [
              122.36572265625,
              26.725986812271756
            ],
            [
              122.36572265625,
              28.323724553546015
            ],
            [
              120.36621093749999,
              28.323724553546015
            ],
            [
              120.36621093749999,
              26.725986812271756
            ]
          ]
        ]
      }

}'

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response will be:

{
  "metadata": {
    "datasets": ["public-global-fishing-events:v20201001"],
    "dateRange": {
      "from": "2017-01-01",
      "to": "2017-01-31"
    },
    "encounterTypes": [],
    "flags": ["CHN"],
    "geometry": {
      "type": "FeatureCollection",
      "features": [
        {
          "type": "Feature",
          "geometry": {
            "type": "Polygon",
            "coordinates": [
              [
                [120.36621093749999, 26.725986812271756],
                [122.36572265625, 26.725986812271756],
                [122.36572265625, 28.323724553546015],
                [120.36621093749999, 28.323724553546015],
                [120.36621093749999, 26.725986812271756]
              ]
            ]
          }
        }
      ]
    }
  },
  "total": 1774,
  "nextOffset": 1,
  "offset": 0,
  "limit": 1,
  "entries": [
    {
      "id": "dc0e88984dd9106fe1e1d2151da6d4ec",
      "type": "fishing",
      "start": "2017-01-01T00:00:45.000Z",
      "end": "2017-01-01T00:56:45.000Z",
      "position": {
        "lat": 27.2241,
        "lon": 121.742
      },
      "regions": {
        "mpa": [],
        "eez": ["8486"],
        "rfmo": ["WCPFC", "ACAP", "APFIC", "IWC"],
        "fao": ["61"],
        "major_fao": ["61"],
        "eez12nm": []
      },
      "boundingBox": [
        121.7405466667, 27.1961733333, 121.7431733333, 27.2491533333
      ],
      "distances": {
        "startDistanceFromShoreKm": 68,
        "endDistanceFromShoreKm": 66,
        "startDistanceFromPortKm": 46.575801,
        "endDistanceFromPortKm": 41.298395
      },
      "vessel": {
        "id": "4d8d5aded-d958-b88b-4ccb-3e8542670060",
        "flag": "CHN",
        "name": "ZHERUIYU02109",
        "type": "fishing",
        "ssvid": "412431417"
      },
      "fishing": {
        "totalDistanceKm": 17.691522682956926,
        "averageSpeedKnots": 3.3749999999999996,
        "averageDurationHours": 0.3111111111111111
      }
    }
  ]
}

EXAMPLE 2 - GET ENCOUNTER EVENTS


curl --location --request POST 'https://gateway.api.globalfishingwatch.org/v2/events?offset=0&limit=1' \
--header 'Authorization: Bearer [TOKEN]' \
--header 'Content-Type: application/json' \
--data-raw '{
    "datasets": [ "public-global-encounters-events:latest"],
    "startDate": "2017-01-01",
    "endDate": "2017-01-31",
    "vessels": ["55d38c0ee-e0d7-cb32-ac9c-8b3680d213b3"],
    "flags": ["TWN"],
    "duration": 60,
    "geometry": {
        "type": "Polygon",
        "coordinates": [
          [
            [
              -130.9735107421875,
              -17.691128657307427
            ],
            [
              -130.4901123046875,
              -17.691128657307427
            ],
            [
              -130.4901123046875,
              -17.209017141391765
            ],
            [
              -130.9735107421875,
              -17.209017141391765
            ],
            [
              -130.9735107421875,
              -17.691128657307427
            ]
          ]
        ]
      }


}'

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response will be:

{
  "metadata": {
    "datasets": ["public-global-encounters-events:v20201001"],
    "vessels": ["55d38c0ee-e0d7-cb32-ac9c-8b3680d213b3"],
    "dateRange": {
      "from": "2017-01-01",
      "to": "2017-01-31"
    },
    "encounterTypes": [
      "fishing-carrier",
      "fishing-support",
      "carrier-fishing",
      "support-fishing"
    ],
    "flags": ["TWN"],
    "geometry": {
      "type": "FeatureCollection",
      "features": [
        {
          "type": "Feature",
          "geometry": {
            "type": "Polygon",
            "coordinates": [
              [
                [-130.9735107421875, -17.691128657307427],
                [-130.4901123046875, -17.691128657307427],
                [-130.4901123046875, -17.209017141391765],
                [-130.9735107421875, -17.209017141391765],
                [-130.9735107421875, -17.691128657307427]
              ]
            ]
          }
        }
      ]
    }
  },
  "total": 1,
  "nextOffset": 1,
  "offset": 0,
  "limit": 1,
  "entries": [
    {
      "id": "05e5fcf80f3542a33154214f0a586f19.2",
      "type": "encounter",
      "start": "2017-01-01T00:50:00.000Z",
      "end": "2017-01-01T04:30:00.000Z",
      "position": {
        "lat": -17.4783,
        "lon": -130.7285
      },
      "regions": {
        "mpa": [],
        "eez": [],
        "rfmo": ["WCPFC", "SPRFMO", "IWC", "ACAP", "IATTC"],
        "fao": ["77"],
        "major_fao": ["77"],
        "eez12nm": []
      },
      "boundingBox": [
        -130.7285232872, -17.4782849293, -130.7285232872, -17.4782849293
      ],
      "distances": {
        "startDistanceFromShoreKm": 602,
        "endDistanceFromShoreKm": 602,
        "startDistanceFromPortKm": 760.023188,
        "endDistanceFromPortKm": 760.023188
      },
      "vessel": {
        "id": "55d38c0ee-e0d7-cb32-ac9c-8b3680d213b3",
        "flag": "TWN",
        "name": "JIN HSIANG FA",
        "type": "fishing",
        "ssvid": "416077500"
      },
      "encounter": {
        "vessel": {
          "id": "46ae0e5f9-9304-7ac9-dc78-462d84320bf5",
          "flag": "TWN",
          "name": "SHUN TIAN FA 168",
          "type": "carrier",
          "ssvid": "416602000"
        },
        "medianDistanceKilometers": 0.016,
        "medianSpeedKnots": 1.067,
        "type": "fishing-carrier"
      }
    }
  ]
}

EXAMPLE 3 - GET LOITERING EVENTS


curl --location --request POST 'https://gateway.api.globalfishingwatch.org/v2/events?offset=0&limit=1' \
--header 'Authorization: Bearer [TOKEN]' \
--header 'Content-Type: application/json' \
--data-raw '{
    "datasets": [ "public-global-loitering-events-carriers:latest"],
    "startDate": "2017-01-01",
    "endDate": "2017-01-31",
    "vessels": ["82be6f228-8ce4-26d1-bf81-3b7979d0c72f"],
    "flags": ["KOR"],
    "duration": 60,
    "geometry": {
        "type": "Polygon",
        "coordinates": [
          [
            [
              43.835981972515576,
              -6.785011952437713
            ],
            [
              43.83602857589722,
              -6.785011952437713
            ],
            [
              43.83602857589722,
              -6.784984652340707
            ],
            [
              43.835981972515576,
              -6.784984652340707
            ],
            [
              43.835981972515576,
              -6.785011952437713
            ]
          ]
        ]
      }
}'

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response will be:

{
  "metadata": {
    "datasets": ["public-global-loitering-events-carriers:v20201001"],
    "vessels": ["82be6f228-8ce4-26d1-bf81-3b7979d0c72f"],
    "dateRange": {
      "from": "2017-01-01",
      "to": "2017-01-31"
    },
    "encounterTypes": [],
    "flags": ["KOR"],
    "geometry": {
      "type": "FeatureCollection",
      "features": [
        {
          "type": "Feature",
          "geometry": {
            "type": "Polygon",
            "coordinates": [
              [
                [43.835981972515576, -6.785011952437713],
                [43.83602857589722, -6.785011952437713],
                [43.83602857589722, -6.784984652340707],
                [43.835981972515576, -6.784984652340707],
                [43.835981972515576, -6.785011952437713]
              ]
            ]
          }
        }
      ]
    }
  },
  "total": 0,
  "nextOffset": 1,
  "offset": 0,
  "limit": 1,
  "entries": []
}

EXAMPLE 4 - GET PORT VISITS


curl --location --request POST 'https://gateway.api.globalfishingwatch.org/v2/events?offset=0&limit=1' \
--header 'Authorization: Bearer [TOKEN]' \
--header 'Content-Type: application/json' \
--data-raw '{
    "datasets": [ "public-global-port-visits-c2-events:latest"],
    "startDate": "2017-01-01",
    "endDate": "2017-01-31",
    "vessels": ["e0248aed9-99b4-bae7-6b87-ff0a3c464676"],
    "flags": ["ATG"],
    "duration": 60,
    "geometry":{
        "type": "Polygon",
        "coordinates": [
          [
            [
              30.552978515625,
              46.255846818480315
            ],
            [
              31.22314453125,
              46.255846818480315
            ],
            [
              31.22314453125,
              46.59661864884465
            ],
            [
              30.552978515625,
              46.59661864884465
            ],
            [
              30.552978515625,
              46.255846818480315
            ]
          ]
        ]
      }



}'

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response will be:

{
  "metadata": {
    "datasets": ["public-global-port-visits-c2-events:v20201001"],
    "vessels": ["e0248aed9-99b4-bae7-6b87-ff0a3c464676"],
    "dateRange": {
      "from": "2017-01-01",
      "to": "2017-01-31"
    },
    "encounterTypes": [],
    "flags": ["ATG"],
    "geometry": {
      "type": "FeatureCollection",
      "features": [
        {
          "type": "Feature",
          "geometry": {
            "type": "Polygon",
            "coordinates": [
              [
                [30.552978515625, 46.255846818480315],
                [31.22314453125, 46.255846818480315],
                [31.22314453125, 46.59661864884465],
                [30.552978515625, 46.59661864884465],
                [30.552978515625, 46.255846818480315]
              ]
            ]
          }
        }
      ]
    }
  },
  "total": 1,
  "nextOffset": 1,
  "offset": 0,
  "limit": 1,
  "entries": [
    {
      "id": "4f76e3bf40fcb9af92f6e7250154c86d",
      "type": "port_visit",
      "start": "2017-01-01T00:00:00.000Z",
      "end": "2017-01-01T09:35:02.000Z",
      "position": {
        "lat": 46.3181,
        "lon": 31.0484
      },
      "regions": {
        "mpa": [],
        "eez": ["5695"],
        "rfmo": ["ACAP", "IWC", "ICCAT", "GFCM"],
        "fao": ["37", "37.4.2", "37.4"],
        "major_fao": ["37"],
        "eez12nm": []
      },
      "boundingBox": [
        31.0767735168, 46.2917746863, 31.0090529428, 46.3757554864
      ],
      "distances": {
        "startDistanceFromShoreKm": 28,
        "endDistanceFromShoreKm": 20,
        "startDistanceFromPortKm": 0,
        "endDistanceFromPortKm": 0
      },
      "vessel": {
        "id": "e0248aed9-99b4-bae7-6b87-ff0a3c464676",
        "flag": "ATG",
        "name": "JORK",
        "type": "cargo",
        "ssvid": "305656000"
      },
      "port_visit": {
        "visitId": "ffe81fe2608c6de1799a701b736951ca",
        "confidence": 4,
        "durationHrs": 9.58388888888889,
        "startAnchorage": {
          "anchorage_id": "40c652c5",
          "at_dock": false,
          "distance_from_shore_km": 28,
          "flag": "UKR",
          "id": "ukr-nikolaev",
          "lat": 46.291774686340844,
          "lon": 31.076773516760372,
          "name": null,
          "top_destination": "NIKOLAEV"
        },
        "intermediateAnchorage": {
          "anchorage_id": "40c65295",
          "at_dock": false,
          "distance_from_shore_km": 26,
          "flag": "UKR",
          "id": "ukr-nikolaev",
          "lat": 46.30317322627217,
          "lon": 31.073053845170914,
          "name": null,
          "top_destination": "NIKOLAEV"
        },
        "endAnchorage": {
          "anchorage_id": "40c64c1b",
          "at_dock": false,
          "distance_from_shore_km": 20,
          "flag": "UKR",
          "id": "ukr-nikolaev",
          "lat": 46.37575548639163,
          "lon": 31.009052942845823,
          "name": null,
          "top_destination": "NIKOLAEV"
        }
      }
    }
  ]
}

EXAMPLE 5 - GET FISHING EVENTS WITHIN SENEGAL EEZ

    curl --location --request POST 'https://gateway.api.globalfishingwatch.org/v2/events?offset=0&limit=1' \
    --header 'Authorization: Bearer [TOKEN]' \
    --header 'Content-Type: application/json' \
    --data-raw '{
        "datasets": [ "public-global-fishing-events:latest"],
        "startDate": "2020-10-01",
        "endDate": "2020-12-31",
        "flags": ["CHN"],
        "region":  {
            "dataset": "public-eez-areas",
            "id": 8371
        }
    }'

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response will be:

{
  "metadata": {
    "datasets": ["public-global-fishing-events:v20201001"],
    "dateRange": {
      "from": "2020-10-01",
      "to": "2020-12-31"
    },
    "encounterTypes": [],
    "flags": ["CHN"],
    "geometry": {
      "type": "FeatureCollection",
      "features": [
        {
          "id": 8371,
          "type": "Feature",
          "value": "Senegalese Exclusive Economic Zone",
          "geometry": {
            "type": "MultiPolygon",
            "coordinates": [
              [
                [
                  [-19.663713889, 10.646065556],
                  [-19.770719167, 10.828273889],
                  [-19.847704722, 10.978088056],
                  [-19.900462777, 11.092828333],
                  [-19.975555556, 11.279166667],
                  [-20.056666667, 11.519444445],
                  [-20.121666667, 11.768888889],
                  [-20.166111111, 12.0125],
                  [-20.189332011, 12.205035051],
                  [-20.18920767, 12.202218501],
                  [-20.211145269, 12.686621676],
                  [-20.213729528, 12.771151138],
                  [-20.213406305, 12.903321288],
                  [-20.211200542, 12.970761536],
                  [-20.206279711, 13.0575],
                  [-16.756111111, 13.0575],
                  [-16.755277778, 13.055833333],
                  [-16.746944487, 13.064166624],
                  [-16.742762565, 13.056762457],
                  [-16.746835828, 13.067911268],
                  [-16.743340135, 13.073076725],
                  [-16.740498543, 13.074127436],
                  [-16.734648824, 13.073445559],
                  [-16.731267809, 13.075275421],
                  [-16.729505658, 13.07888031],
                  [-16.730089426, 13.085918426],
                  [-16.733118058, 13.089609146],
                  [-16.727655173, 13.092269778],
                  [-16.725892544, 13.097848773],
                  [-16.729770302, 13.098020554],
                  [-16.731532812, 13.100681305],
                  [-16.735234022, 13.102311969],
                  [-16.736291528, 13.104715347],
                  [-16.735145926, 13.11132431],
                  [-16.733824015, 13.113126755],
                  [-16.72985828, 13.11372745],
                  [-16.728536368, 13.107118606],
                  [-16.719371438, 13.108062744],
                  [-16.716022611, 13.110208511],
                  [-16.716287017, 13.11235416],
                  [-16.716992021, 13.113126755],
                  [-16.719283224, 13.111753344],
                  [-16.724042058, 13.11492908],
                  [-16.725628257, 13.118791461],
                  [-16.724570752, 13.121881366],
                  [-16.722984552, 13.122053146],
                  [-16.721398235, 13.119306445],
                  [-16.718666434, 13.118791461],
                  [-16.711880565, 13.120765566],
                  [-16.708179354, 13.126516342],
                  [-16.709061026, 13.132953644],
                  [-16.707298159, 13.133211136],
                  [-16.704301476, 13.130378723],
                  [-16.699277639, 13.133382678],
                  [-16.702186227, 13.135871768],
                  [-16.701833606, 13.143081546],
                  [-16.706945657, 13.14737308],
                  [-16.709061026, 13.153467059],
                  [-16.705888033, 13.155698657],
                  [-16.70271504, 13.152179718],
                  [-16.698484421, 13.154153824],
                  [-16.701481104, 13.161964417],
                  [-16.699807644, 13.162650943],
                  [-16.69592905, 13.159046054],
                  [-16.689406037, 13.15999031],
                  [-16.687026024, 13.166513443],
                  [-16.685392542, 13.167287138],
                  [-16.679596271, 13.152535204],
                  [-16.677008408, 13.131199718],
                  [-16.673902645, 13.128583901],
                  [-16.651596821, 13.085234849],
                  [-16.647403236, 13.040871141],
                  [-16.651147124, 12.997043557],
                  [-16.531465118, 12.997633952],
                  [-16.515311156, 12.907429484],
                  [-16.449018084, 12.912594692],
                  [-16.414338903, 12.772543411],
                  [-16.367193163, 12.771420893],
                  [-16.367193163, 12.70095725],
                  [-16.363098106, 12.703723209],
                  [-16.313200775, 12.713627925],
                  [-16.280765137, 12.707336882],
                  [-16.270339622, 12.711871647],
                  [-16.239052233, 12.719126695],
                  [-16.177077309, 12.719126695],
                  [-16.171945845, 12.717798551],
                  [-16.145849861, 12.728839159],
                  [-16.140013281, 12.729813856],
                  [-16.1283097, 12.746137273],
                  [-16.1283097, 12.828989976],
                  [-15.957487147, 12.828989976],
                  [-15.922269413, 12.750789967],
                  [-15.915867713, 12.740386804],
                  [-15.874589286, 12.710774021],
                  [-15.856139318, 12.714033516],
                  [-15.826947615, 12.706288779],
                  [-15.788934246, 12.730002952],
                  [-15.66812969, 12.710873831],
                  [-15.654843887, 12.704961114],
                  [-15.655409309, 12.799014761],
                  [-15.628303916, 12.866221282],
                  [-15.566481866, 12.898057787],
                  [-15.530804596, 12.902988793],
                  [-15.517853025, 12.912328458],
                  [-15.467347664, 12.934245876],
                  [-15.440409409, 12.930649585],
                  [-15.338080247, 13.033682835],
                  [-15.278439318, 13.00634732],
                  [-15.298059231, 12.75978187],
                  [-15.383535949, 12.689277191],
                  [-15.41565113, 12.698313931],
                  [-15.398853097, 12.680443686],
                  [-15.404087181, 12.654427206],
                  [-15.4016936, 12.648872103],
                  [-15.406021594, 12.644812032],
                  [-15.417976635, 12.585388444],
                  [-15.458644512, 12.546319872],
                  [-15.470500865, 12.54034427],
                  [-15.491990539, 12.512991189],
                  [-15.545913339, 12.490768433],
                  [-15.659264178, 12.437611423],
                  [-15.672329953, 12.437962182],
                  [-15.705846049, 12.447624481],
                  [-15.732542155, 12.463399454],
                  [-15.743488254, 12.473244056],
                  [-15.755084184, 12.478162175],
                  [-15.766838591, 12.471034503],
                  [-15.812617414, 12.459844124],
                  [-15.860809993, 12.453403641],
                  [-15.903204562, 12.478193685],
                  [-15.937430457, 12.478736953],
                  [-15.990489514, 12.488013011],
                  [-16.016221921, 12.516243714],
                  [-16.023522535, 12.521953168],
                  [-16.055983506, 12.512581234],
                  [-16.086384194, 12.510082978],
                  [-16.22398853, 12.45968557],
                  [-16.223870573, 12.456901439],
                  [-16.228834867, 12.453861237],
                  [-16.366114617, 12.383823275],
                  [-16.377712846, 12.375583649],
                  [-16.382984757, 12.363224029],
                  [-16.39341987, 12.36491071],
                  [-16.36363857, 12.449374249],
                  [-16.413956885, 12.45326302],
                  [-16.437216339, 12.464006944],
                  [-16.440103135, 12.390489802],
                  [-16.593740284, 12.485105054],
                  [-16.654444152, 12.447885164],
                  [-16.673221689, 12.449435603],
                  [-16.662500165, 12.437958075],
                  [-16.648994654, 12.437958075],
                  [-16.608213095, 12.417493148],
                  [-16.568080996, 12.386790995],
                  [-16.560039495, 12.388524078],
                  [-16.509774498, 12.359801221],
                  [-16.503960733, 12.354962018],
                  [-16.507224202, 12.35446918],
                  [-16.543774247, 12.362022281],
                  [-16.557129144, 12.360305667],
                  [-16.585244656, 12.351035952],
                  [-16.603519678, 12.348461151],
                  [-16.643408656, 12.361163974],
                  [-16.691908121, 12.359962344],
                  [-16.897455407, 12.240292728],
                  [-19.559839098, 10.704801666],
                  [-19.663145237, 10.645221352],
                  [-19.663713889, 10.646065556]
                ],
                [
                  [-16.286841197, 12.480505218],
                  [-16.238164771, 12.473253967],
                  [-16.249482093, 12.487701612],
                  [-16.278407476, 12.490736991],
                  [-16.286841197, 12.480505218]
                ]
              ],
              [
                [
                  [-16.461880922, 13.167114258],
                  [-16.145252352, 13.166410997],
                  [-16.208591264, 13.147271805],
                  [-16.227017174, 13.152255175],
                  [-16.200217659, 13.105283714],
                  [-16.289656484, 13.025796282],
                  [-16.392446353, 13.101677033],
                  [-16.497569806, 13.0167554],
                  [-16.581530248, 13.079829993],
                  [-16.544594363, 13.167949667],
                  [-16.461880922, 13.167114258]
                ]
              ],
              [
                [
                  [-15.806064248, 13.348731875],
                  [-15.733041048, 13.351306915],
                  [-15.714695812, 13.354225158],
                  [-15.701289654, 13.359889865],
                  [-15.682067275, 13.371219635],
                  [-15.645897627, 13.357830048],
                  [-15.631621634, 13.354618038],
                  [-15.650685404, 13.354287453],
                  [-15.670264972, 13.360977138],
                  [-15.744575477, 13.338455657],
                  [-15.785545746, 13.334155808],
                  [-15.806045487, 13.336522655],
                  [-15.806064248, 13.348731875]
                ]
              ],
              [
                [
                  [-15.51848495, 13.390445709],
                  [-15.503517151, 13.394393921],
                  [-15.487105965, 13.392333865],
                  [-15.449695826, 13.376026154],
                  [-15.384754777, 13.357314944],
                  [-15.372403741, 13.357143402],
                  [-15.330057264, 13.360748171],
                  [-15.304120064, 13.367099642],
                  [-15.287184954, 13.372936249],
                  [-15.250304938, 13.401088714],
                  [-15.229482651, 13.419799805],
                  [-15.216601133, 13.454990268],
                  [-15.200529337, 13.525886536],
                  [-15.180191702, 13.543211254],
                  [-15.219900864, 13.381802342],
                  [-15.324043769, 13.339623873],
                  [-15.403078809, 13.344462753],
                  [-15.471487048, 13.366456893],
                  [-15.493827471, 13.387938069],
                  [-15.51359931, 13.384717657],
                  [-15.521798652, 13.388333114],
                  [-15.51848495, 13.390445709]
                ]
              ],
              [
                [
                  [-15.477269054, 13.592834354],
                  [-15.486561537, 13.591002464],
                  [-15.521773934, 13.592147828],
                  [-15.728268031, 13.591936644],
                  [-15.725005928, 13.593658142],
                  [-15.677347611, 13.604284658],
                  [-15.63973019, 13.599900344],
                  [-15.621340756, 13.614096986],
                  [-15.559231069, 13.631164319],
                  [-15.509380495, 13.620636869],
                  [-15.49753472, 13.61458615],
                  [-15.484501077, 13.611672747],
                  [-15.479488317, 13.609213658],
                  [-15.4743897, 13.610149184],
                  [-15.477269054, 13.592834354]
                ]
              ],
              [
                [
                  [-16.508076906, 13.59329164],
                  [-20.073055555, 13.593333334],
                  [-20.073611111, 14.85],
                  [-20, 14.916666667],
                  [-19.858333334, 15.166666666],
                  [-19.747222223, 15.416666667],
                  [-19.641666666, 15.666666666],
                  [-19.594444445, 15.916666667],
                  [-19.558333333, 16.068055555],
                  [-16.509283066, 16.067174434],
                  [-16.503430331, 16.067870404],
                  [-16.50073975, 16.073398461],
                  [-16.495021357, 16.075878819],
                  [-16.491560327, 16.071689185],
                  [-16.486605232, 16.071126692],
                  [-16.477420342, 16.063754279],
                  [-16.4699358, 16.068747547],
                  [-16.463301097, 16.077555006],
                  [-16.462824022, 16.080476224],
                  [-16.455960089, 16.08822684],
                  [-16.454737768, 16.099513638],
                  [-16.448192259, 16.117815694],
                  [-16.44434227, 16.122940725],
                  [-16.442616069, 16.139175394],
                  [-16.448963766, 16.147433462],
                  [-16.453557613, 16.158733121],
                  [-16.450748899, 16.163914361],
                  [-16.448032393, 16.176359356],
                  [-16.448361073, 16.180674142],
                  [-16.443623183, 16.198849374],
                  [-16.436175359, 16.208044122],
                  [-16.429340625, 16.069388661],
                  [-16.427234947, 15.974018986],
                  [-16.440427856, 15.825929481],
                  [-16.430589143, 15.770313032],
                  [-16.450672683, 15.726974867],
                  [-16.587354129, 15.504787753],
                  [-16.656082424, 15.416342325],
                  [-16.797348003, 15.173281216],
                  [-16.869711586, 15.095126856],
                  [-16.900533125, 15.050589337],
                  [-17.069307237, 14.855025685],
                  [-17.122034377, 14.813682103],
                  [-17.190908736, 14.785144145],
                  [-17.175354634, 14.778123867],
                  [-17.145410684, 14.758042972],
                  [-17.104022194, 14.720934029],
                  [-17.049418537, 14.647725496],
                  [-17.022306852, 14.576975714],
                  [-16.992299127, 14.533104973],
                  [-16.930270724, 14.504595901],
                  [-16.879398915, 14.454514845],
                  [-16.852986282, 14.415740742],
                  [-16.838064128, 14.365254128],
                  [-16.839958461, 14.346898694],
                  [-16.828758775, 14.335819434],
                  [-16.8091441, 14.305208657],
                  [-16.79524864, 14.26873307],
                  [-16.791777824, 14.246729095],
                  [-16.767576144, 14.235721476],
                  [-16.736882276, 14.19900096],
                  [-16.72803071, 14.181712745],
                  [-16.591091668, 14.220161941],
                  [-16.586061621, 14.230793632],
                  [-16.557391152, 14.241319988],
                  [-16.547351174, 14.266071323],
                  [-16.343464222, 14.369237504],
                  [-16.339338691, 14.366465221],
                  [-16.347410806, 14.266716634],
                  [-16.182953946, 14.25928851],
                  [-16.162130979, 14.186963463],
                  [-16.323015046, 14.075226236],
                  [-16.333622182, 14.070269132],
                  [-16.384133395, 14.031602321],
                  [-16.389820355, 13.969995972],
                  [-16.405109016, 13.9043666],
                  [-16.397038998, 13.86662966],
                  [-16.395703091, 13.846877326],
                  [-16.355913022, 13.726865339],
                  [-16.36650318, 13.724937158],
                  [-16.324718403, 13.702290452],
                  [-16.456512945, 13.601593497],
                  [-16.452962927, 13.593318635],
                  [-16.508076906, 13.59329164]
                ]
              ],
              [
                [
                  [-15.948641658, 12.442531466],
                  [-15.958660722, 12.443218231],
                  [-15.96882486, 12.446907684],
                  [-15.930983898, 12.445323455],
                  [-15.948641658, 12.442531466]
                ]
              ],
              [
                [
                  [-16.470849634, 12.359962344],
                  [-16.483751375, 12.358013967],
                  [-16.478191339, 12.394091202],
                  [-16.47626559, 12.394828107],
                  [-16.440415877, 12.365420097],
                  [-16.470849634, 12.359962344]
                ]
              ]
            ]
          },
          "properties": {
            "Y_1": 14.0656,
            "x_1": -16.26891,
            "bbox": {
              "type": "Polygon",
              "coordinates": [
                [
                  [-20.2137295277812, 10.6452213523326],
                  [-20.2137295277812, 16.2080441224395],
                  [-15.1801917021989, 16.2080441224395],
                  [-15.1801917021989, 10.6452213523326],
                  [-20.2137295277812, 10.6452213523326]
                ]
              ]
            },
            "UNION": "Senegal",
            "value": "Senegalese Exclusive Economic Zone",
            "gfw_id": 14,
            "GEONAME": "Senegalese Exclusive Economic Zone",
            "UN_SOV1": 686,
            "UN_SOV2": null,
            "UN_SOV3": null,
            "UN_TER1": 686,
            "UN_TER2": null,
            "UN_TER3": null,
            "AREA_KM2": 353555,
            "ISO_SOV1": "SEN",
            "ISO_SOV2": null,
            "ISO_SOV3": null,
            "ISO_TER1": "SEN",
            "ISO_TER2": null,
            "ISO_TER3": null,
            "POL_TYPE": "Union EEZ and country",
            "MRGID_EEZ": 8371,
            "MRGID_SOV1": 2225,
            "MRGID_SOV2": 0,
            "MRGID_SOV3": 0,
            "MRGID_TER1": 2225,
            "MRGID_TER2": 0,
            "MRGID_TER3": 0,
            "SOVEREIGN1": "Senegal",
            "SOVEREIGN2": null,
            "SOVEREIGN3": null,
            "TERRITORY1": "Senegal",
            "TERRITORY2": null,
            "TERRITORY3": null
          }
        }
      ]
    },
    "region": {
      "dataset": "public-eez-areas",
      "id": 8371
    }
  },
  "total": 305,
  "nextOffset": 1,
  "offset": 0,
  "limit": 1,
  "entries": [
    {
      "id": "4960d7ec2478e22d22f5d29d7e10402a",
      "type": "fishing",
      "start": "2020-09-30T08:26:23.000Z",
      "end": "2020-10-01T00:35:22.000Z",
      "position": {
        "lat": 14.6969,
        "lon": -17.3969
      },
      "regions": {
        "mpa": ["555705172"],
        "eez": ["8371"],
        "rfmo": ["IWC", "ACAP", "NAMMCO", "ICCAT", "SRFC"],
        "fao": ["34", "34.3", "34.3.1", "34.3.12"],
        "majorFao": ["34"],
        "eez12Nm": [],
        "highSeas": [],
        "mpaNoTakePartial": [],
        "mpaNoTake": []
      },
      "boundingBox": [-17.3972083333, 14.696845, -17.3964616667, 14.6971716667],
      "distances": {
        "startDistanceFromShoreKm": 3,
        "endDistanceFromShoreKm": 3,
        "startDistanceFromPortKm": 0,
        "endDistanceFromPortKm": 0
      },
      "vessel": {
        "id": "d6a882499-98cc-7b37-4463-88bde48b4dcb",
        "flag": "CHN",
        "name": "HAI SHANG 68",
        "ssvid": "412371178",
        "authorizations": [
          {
            "isAuthorized": "true",
            "rfmo": "ICCAT"
          }
        ]
      },
      "fishing": {
        "totalDistanceKm": 3.5046170151699143,
        "averageSpeedKnots": 0.003614457831325301,
        "averageDurationHours": 0.08908754208754209,
        "potentialRisk": false,
        "vesselAuthorizationStatus": "authorized"
      }
    }
  ]
}

Change the API Dataset to select the event type:

Events POST v2 - HTTP Request

GET https://gateway.api.globalfishingwatch.org/v2/events

Events POST v2 - URL Parameters

Parameter Description Required Format Param Type
limit Amount of search results to return. Example: 10 True number query
offset Offset into the search results, used for pagination. It starts at 0. It is used in combination with the param “limit”, for example you send limit = 5 and you get in the response total vessels =10. So, If you send offset =0 OR you don’t send it, you will get the first 5 results (first page). Therefore, in order to get the second page, you need to send offset = 5 which is the position of the first element you want from the second page. Example: 5 True number query
sort Property used to sort using a property. The list of possible values depends on the dataset. Before the property you can use ‘+’ or ‘-’ and based on that prefix, you can decide if it will be sort ascending + (ASC) or descending - (DESC).Example: -start False Enum: ['+start', '-start', '+end', '-end'] query

Events POST v2 - Body Parameters

Parameter Description Required Format Param Type
datasets Specify the datasets that will be used to search the vessel. You can learn more about which are the possible datasets here. You can send several datasets in array format. Example: ['public-global-fishing-events:latest', 'public-global-encounter-events:latest'] True [string] body
vessels List of vessel ids. You can get this information using the search endpoints Example: ['8c7304226-6c71-edbe-0b63-c246734b3c01', '6583c51e3-3626-5638-866a-f47c3bc7ef7c'] False [string] body
types Event types. Possible values: port, encounter, loitering, gap, port_visit. Example: ['fishing'] False [string] body
startDate Start date in format YYYY-MM-DD of the start date of the event (inclusive). Filter the events that their end date is greater or equal than the start date filter. Example: 2020-01-01 False string body
endDate End date in format YYYY-MM-DD of the end date of the event (exclusive). Filter the events that their start date is less than the end date filter. Example: 2020-02-01 False string body
confidences This param applies only to port visits events, check data caveats to understand the different levels. Values go from 2 to 4, where 2 is low confidence, 3 is medium and 4 is high confidence. Possible values: 2, 3, 4 Example: ['3','4'] False [string] body
encounterTypes Possible values: carrier-fishing, fishing-carrier, fishing-support, support-fishing Example: ['carrier-fishing','fishing-carrier'] False [string] body
duration Minimum duration (greater than or equal to), in minutes, of the event. Example: 30 False number body
vesselTypes Vessel types of the vessels involved in the events. Possible values: fishing, carrier, support, passenger, other_non_fishing, seismic_vessel, bunker_or_tanker, cargo Example: ['fishing', 'carrier'] False [string] body
vesselGroups Ids of the vessel groups. Example: ['my-vessel-group'] False [string] body
flags Flags of the vessels involved in the events, in ISO3. Example: ['ESP', 'FRA'] False [string] body
geometry Region where the events occur. False object body
region Region where the events occur.You can send the region id, you can get it from Reference Data False object body

Get one by Event ID - V2

GET A PORT VISIT EVENT BY ITS ID


curl --location --request GET 'https://gateway.api.globalfishingwatch.org/v2/events/c2f0967e061f99a01793edac065de003?datasets=public-global-port-visits-c2-events:latest' \
  -H "Authorization: Bearer [TOKEN]"

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response will be:

{
  "id": "c2f0967e061f99a01793edac065de003",
  "type": "port_visit",
  "start": "2020-01-26T05:52:47.000Z",
  "end": "2020-01-29T14:39:33.000Z",
  "position": {
    "lat": 20.8374,
    "lon": -17.0161
  },
  "regions": {
    "mpa": [],
    "eez": [8369],
    "rfmo": ["ICCAT"]
  },
  "boundingBox": [-17.0147743934, 20.7287971969, -17.0301185356, 20.8284907611],
  "distances": {
    "startDistanceFromShoreKm": 7,
    "endDistanceFromShoreKm": 2,
    "startDistanceFromPortKm": 0,
    "endDistanceFromPortKm": 0
  },
  "vessel": {
    "id": "8c7304226-6c71-edbe-0b63-c246734b3c01",
    "name": "FRIO FORWIN",
    "ssvid": "210631000"
  },
  "port_visit": {
    "visitId": "54a297966f51994d8bad91ba58945f8c",
    "confidence": 4,
    "durationHrs": 80.77944444444445,
    "startAnchorage": {
      "id": "mrt-nouadhibou",
      "lat": 20.72879719687954,
      "lon": -17.014774393446658,
      "flag": "MRT",
      "name": "NOUADHIBOU",
      "at_dock": false,
      "anchorage_id": "0ea1bbe7",
      "top_destination": "NOUADHIBOU",
      "distance_from_shore_km": 7
    },
    "intermediateAnchorage": {
      "id": "mrt-nouadhibou",
      "lat": 20.885489104200627,
      "lon": -17.003218026679036,
      "flag": "MRT",
      "name": "NOUADHIBOU",
      "at_dock": false,
      "anchorage_id": "0ea1b6ad",
      "top_destination": "NOUADHIBOU",
      "distance_from_shore_km": 4
    },
    "endAnchorage": {
      "id": "mrt-nouadhibou",
      "lat": 20.828490761089796,
      "lon": -17.030118535609358,
      "flag": "MRT",
      "name": "NOUADHIBOU",
      "at_dock": true,
      "anchorage_id": "0ea1b0c3",
      "top_destination": "NOUADHIBOU",
      "distance_from_shore_km": 2
    }
  }
}

Get by event id v2 - HTTP Request

GET https://gateway.api.globalfishingwatch.org/v2/events/{eventId}

Get by event id v2 - URL Parameters

Parameter Description Required Format Param Type
eventId True string path
raw If true, return all content of the event without parsing False boolean query
datasets Specify the datasets that will be used to search the vessel. You can learn more about which are the possible datasets here. You can send several datasets separated by comma. Example: public-global-fishing-events:latest,public-global-encounter-events:latest True string query

Statistics on events (POST) - V2

Get events statistics worldwide or for a specific region. The available events to get stats are:

EXAMPLE 1 - GET ENCOUNTERS STATS

curl --location --request POST 'https://gateway.api.globalfishingwatch.org/v2/events/stats' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {access-token}'
--header 'Content-Type: application/json' \
--data-raw '{
    "datasets": [ "public-global-encounters-events:latest"],
    "encounterTypes": ["carrier-fishing", "fishing-carrier"],
    "vesselTypes": ["carrier"],
    "startDate": "2018-01-01",
    "endDate": "2023-01-31",
    "timeseriesInterval": "year",
    "flags": ["RUS"],
    "duration": 60
}
'

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response will be:

{
  "numFlags": 1,
  "numVessels": 202,
  "numEvents": 23230,
  "flags": ["RUS"],
  "timeseries": [
    {
      "date": "2018-01-01T00:00:00.000Z",
      "value": 4494
    },
    {
      "date": "2019-01-01T00:00:00.000Z",
      "value": 4242
    },
    {
      "date": "2020-01-01T00:00:00.000Z",
      "value": 4664
    },
    {
      "date": "2021-01-01T00:00:00.000Z",
      "value": 4783
    },
    {
      "date": "2022-01-01T00:00:00.000Z",
      "value": 4643
    },
    {
      "date": "2023-01-01T00:00:00.000Z",
      "value": 404
    }
  ]
}

EXAMPLE 2 - GET FISHING EVENTS STATS IN A CUSTOM REGION

curl --location --request POST 'https://gateway.api.globalfishingwatch.org//v2/events/stats' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {access-token}'
--header 'Content-Type: application/json' \
--data-raw '{
    "datasets": [ "public-global-fishing-events:latest"],
    "startDate": "2018-01-01",
    "endDate": "2023-01-31",
    "timeseriesInterval": "year",
    "duration": 90,
    "geometry":{"type":"MultiPolygon","coordinates":[[[[-58.15342633,-32.356403276],[-58.16805183,-32.359000619],[-58.184795664,-32.379219766],[-58.192409931,-32.391977392],[-58.193236164,-32.395055309],[-58.191125697,-32.400694246],[-58.194202127,-32.416740918],[-58.193898065,-32.421293436],[-58.200104417,-32.439695043],[-58.203068501,-32.469794853],[-58.201773268,-32.482103825],[-58.199452453,-32.48651512],[-58.198189657,-32.494591443],[-58.1909169,-32.506733087],[-58.184742646,-32.529503992],[-58.173524528,-32.553211355],[-58.165369884,-32.559773049],[-58.161893615,-32.567770973],[-58.159343751,-32.608650802],[-58.151728474,-32.62249165],[-58.151480284,-32.635035765],[-58.153010794,-32.641369091],[-58.149292387,-32.653570867],[-58.145301188,-32.659776215],[-58.143623423,-32.665853784],[-58.142912012,-32.675649681],[-58.148653602,-32.690020187],[-58.146101053,-32.707362162],[-58.148179071,-32.73123023],[-58.14123188,-32.751686231],[-58.141575555,-32.757396873],[-58.146951161,-32.761720555],[-58.14325427,-32.768691322],[-58.138638482,-32.770629602],[-58.135694082,-32.785976586],[-58.130758029,-32.801498671],[-58.12284602,-32.814061796],[-58.121850748,-32.82451262],[-58.125803727,-32.833189037],[-58.118631373,-32.853729616],[-58.11323325,-32.886529032],[-58.114730058,-32.895617282],[-58.121359728,-32.902057784],[-58.114789226,-32.918915937],[-58.113440989,-32.925924348],[-58.114673138,-32.927592234],[-58.113667629,-32.93986786],[-58.114402803,-32.966621671],[-58.119544774,-32.98206643],[-58.117304543,-32.990437423],[-58.124303771,-32.999824842],[-58.126772533,-33.007898604],[-58.125627861,-33.017099642],[-58.126974786,-33.02044177],[-58.130380817,-33.021945453],[-58.130076688,-33.028447656],[-58.13639079,-33.036502418],[-58.145125702,-33.042909231],[-58.152890334,-33.056053578],[-58.157767888,-33.059454364],[-58.167855355,-33.070938913],[-58.171621097,-33.07757795],[-58.190545784,-33.082063935],[-58.20357497,-33.083064676],[-58.217409645,-33.089760457],[-58.226105363,-33.092454759],[-58.229059871,-33.094206846],[-58.23173247,-33.098114538],[-58.24229906,-33.097167419],[-58.26464951,-33.103257289],[-58.274157515,-33.108160081],[-58.296088631,-33.103355406],[-58.308711192,-33.104855771],[-58.316347337,-33.103650705],[-58.319896027,-33.104192307],[-58.326565333,-33.107984139],[-58.334930123,-33.109173568],[-58.351201872,-33.117847445],[-58.37674193,-33.11489371],[-58.381859593,-33.134746496],[-58.389796431,-33.152533877],[-58.392322222,-33.171894929],[-58.39592379,-33.182181078],[-58.39140114,-33.198990159],[-58.391069256,-33.20561281],[-58.391582845,-33.220615805],[-58.395984501,-33.247423443],[-58.387047693,-33.275469435],[-58.387268996,-33.304045888],[-58.404901857,-33.321471301],[-58.430538696,-33.337315138],[-58.434248957,-33.341044457],[-58.438287022,-33.349102535],[-58.441513198,-33.360251944],[-58.443260942,-33.380153055],[-58.454591357,-33.393804471],[-58.456374996,-33.397844667],[-58.460268366,-33.412833067],[-58.464415537,-33.454967867],[-58.468550176,-33.46031186],[-58.479401304,-33.483322774],[-58.480264012,-33.488111484],[-58.48077669,-33.517791379],[-58.478041927,-33.553805081],[-58.479856494,-33.586243485],[-58.478916634,-33.617127032],[-58.481100391,-33.637515218],[-58.487874996,-33.651897059],[-58.493461906,-33.670607619],[-58.494350582,-33.680173282],[-58.47943317,-33.714776411],[-58.468057168,-33.734126473],[-58.455313818,-33.76015984],[-58.452826355,-33.784736997],[-58.449108288,-33.79554959],[-58.439122338,-33.810083477],[-58.439000681,-33.830576292],[-58.431369825,-33.847419786],[-58.43127944,-33.852632918],[-58.432118254,-33.85690005],[-58.438362706,-33.867637254],[-58.441619598,-33.879114621],[-58.428425775,-33.893523576],[-58.425638696,-33.901883358],[-58.42532535,-33.907932313],[-58.405,-33.955],[-58.376666667,-34],[-58.345,-34.038333333],[-58.333333333,-34.103333333],[-58.323333333,-34.123333333],[-58.316666667,-34.15],[-58.293333333,-34.166666667],[-58.251666667,-34.2],[-58.208333333,-34.221666667],[-58.166666667,-34.253333333],[-58.091666667,-34.295],[-58.065,-34.333333333],[-58.02,-34.361666667],[-58.01,-34.38],[-57.94,-34.443333333],[-57.935,-34.55],[-57.951666667,-34.666666667],[-57.533333333,-34.783333333],[-57.333333333,-34.866666667],[-57,-35.183333333],[-56.716666667,-35.171666667],[-55.866666667,-35.633333334],[-54.277051457,-37.095171775],[-53.922631024,-37.249589551],[-53.349558934,-37.516174588],[-53.125984692,-37.62930317],[-52.999508183,-37.706596921],[-52.667141949,-37.859911042],[-52.694583731,-37.933319234],[-52.723742913,-38.005066515],[-52.781652076,-38.133212609],[-52.818230445,-38.206396929],[-52.852702656,-38.271079163],[-52.892380372,-38.341464162],[-52.93240984,-38.408702342],[-52.991277275,-38.501030558],[-53.047565098,-38.583554818],[-53.098741187,-38.653935419],[-53.160180737,-38.733344606],[-53.266857511,-38.880382604],[-53.300855412,-38.938100266],[-53.343162719,-39.0059623],[-53.420352922,-39.12047819],[-53.490878482,-39.215859706],[-53.579826859,-39.328213772],[-53.641305593,-39.447996003],[-53.697813609,-39.548030311],[-53.767108475,-39.659553473],[-53.837380873,-39.76258815],[-53.904023374,-39.852678791],[-53.978250462,-39.945689344],[-54.058772289,-40.039203987],[-54.140932398,-40.12792611],[-54.222923475,-40.210500517],[-54.308385881,-40.290929116],[-54.381247969,-40.355601372],[-54.522649834,-40.475286705],[-54.5896488,-40.529592468],[-54.656633327,-40.581421888],[-54.725185257,-40.632085711],[-54.799129295,-40.684219878],[-54.982622233,-40.806158763],[-55.059932704,-40.854269793],[-55.14474833,-40.904422269],[-55.272853929,-40.97519824],[-55.345894371,-41.013314313],[-55.431307029,-41.055941103],[-55.53293563,-41.104108399],[-55.631284789,-41.147863472],[-55.716757759,-41.190838995],[-55.809465128,-41.234946431],[-55.894350461,-41.273363007],[-55.964556955,-41.303501092],[-56.13147113,-41.371343049],[-56.343878744,-41.453779341],[-56.430510239,-41.486171388],[-56.602131463,-41.545753547],[-56.881434625,-41.636740043],[-56.968842286,-41.662845414],[-57.058930719,-41.688132286],[-57.232589165,-41.73156739],[-57.313056102,-41.75290048],[-57.458834918,-41.798025491],[-57.60636055,-41.838910956],[-57.689322414,-41.859900528],[-57.77520308,-41.880137525],[-57.964785723,-41.920478506],[-58.018397281,-42.008509338],[-58.077150872,-42.097624248],[-58.141760571,-42.188271294],[-58.204764026,-42.270445379],[-58.269734621,-42.349689806],[-58.335089398,-42.424491534],[-58.407529831,-42.502392183],[-58.483831894,-42.579380103],[-58.560267257,-42.67524804],[-58.640996392,-42.768868251],[-58.734760057,-42.86928214],[-58.794721063,-42.929420777],[-58.860523109,-42.992145996],[-58.921208859,-43.047275226],[-58.978059958,-43.096698751],[-59.043011588,-43.150770607],[-59.117667335,-43.20995537],[-59.172244336,-43.440205973],[-59.196633828,-43.531230245],[-59.236481833,-43.657059727],[-59.283260847,-43.782363315],[-59.310377766,-43.847302783],[-59.341297708,-43.915925313],[-59.37116949,-43.977725566],[-59.403682698,-44.040780895],[-59.471170767,-44.160362166],[-59.508977174,-44.221896377],[-59.550776059,-44.286131604],[-59.596124477,-44.351913036],[-59.646495794,-44.420812628],[-59.696772052,-44.485763638],[-59.758558403,-44.561017858],[-59.816355994,-44.627398619],[-59.873606461,-44.689744259],[-59.93733864,-44.755585983],[-59.997308382,-44.814448305],[-60.060678503,-44.87370552],[-60.130715766,-44.935961936],[-60.194956684,-44.990359294],[-60.265502365,-45.04733662],[-60.341124528,-45.105465567],[-60.410790852,-45.156524432],[-60.501840038,-45.219906266],[-60.569156876,-45.264549913],[-60.593001909,-45.332237491],[-60.620056503,-45.402408722],[-60.649296878,-45.47203445],[-60.680611542,-45.540878005],[-60.798487166,-46.252942691],[-60.892346482,-46.827400481],[-60.876141565,-46.892003775],[-60.860125752,-46.963867549],[-60.846673352,-47.034147016],[-60.835115986,-47.106411626],[-60.823861804,-47.197094417],[-60.816262363,-47.287515135],[-60.812178204,-47.380255259],[-60.81132071,-47.470464402],[-60.789357567,-47.57001835],[-60.771806104,-47.669766298],[-63.010277579,-49.136763174],[-63.216903298,-49.27356026],[-64.573338447,-50.36154789],[-64.61197803,-50.444077188],[-64.692970462,-50.623161323],[-64.79013278,-50.85254852],[-64.906905274,-51.142135709],[-65.015149355,-51.414864114],[-64.951999257,-51.541358402],[-64.943769184,-51.576673068],[-64.927231182,-51.654362447],[-64.895229135,-51.819863575],[-64.782348031,-52.43408733],[-64.696960756,-52.530644417],[-64.69081124,-52.535669033],[-64.527312376,-52.619264009],[-63.669138833,-52.928926212],[-63.503463349,-52.991130652],[-63.382281589,-53.039296868],[-63.289889857,-53.077671032],[-63.186481469,-53.122576509],[-63.014353379,-53.201204205],[-62.090246253,-53.574389554],[-62.017541046,-53.604329688],[-61.874168954,-53.666558527],[-61.620494975,-53.781988593],[-58.541962783,-56.227816107],[-58.598928057,-56.296476374],[-58.654927131,-56.360029108],[-58.740975646,-56.452477612],[-58.808303331,-56.521031303],[-58.880443073,-56.590216544],[-58.948844595,-56.652227825],[-59.01990807,-56.713362815],[-59.093607859,-56.77358818],[-59.171856516,-56.834340035],[-59.25779333,-56.897648328],[-59.355169571,-56.965465481],[-59.442012051,-57.022792975],[-59.53587506,-57.081696217],[-59.63482843,-57.140636466],[-59.729628223,-57.194307893],[-59.829290444,-57.248003524],[-59.921526326,-57.295386165],[-60.025215134,-57.346164751],[-60.127774885,-57.393968715],[-60.234255394,-57.441208292],[-60.361712251,-57.494753364],[-60.470158273,-57.537887357],[-60.583359099,-57.580671399],[-60.692912806,-57.619999848],[-60.781276617,-57.650308492],[-60.891010724,-57.686252031],[-60.993508065,-57.718198027],[-61.103274907,-57.750732886],[-61.223506916,-57.784459507],[-61.33360071,-57.813641041],[-61.450971666,-57.847987317],[-61.555058016,-57.876905199],[-61.669233364,-57.906955205],[-61.783112164,-57.935291548],[-61.89242823,-57.960984829],[-62.007595737,-57.986503544],[-62.118560476,-58.009613652],[-62.236928568,-58.032729184],[-62.363140753,-58.055667083],[-62.464203633,-58.072794974],[-62.585649106,-58.09194578],[-62.70129094,-58.108755488],[-62.78764548,-58.120403444],[-62.904448872,-58.134999131],[-62.998322387,-58.145733459],[-63.108174375,-58.157223391],[-63.305703869,-58.174907412],[-63.499557443,-58.188671454],[-63.628639994,-58.201220765],[-63.760971992,-58.212439077],[-63.951831707,-58.22570631],[-64.153774234,-58.236045771],[-64.352891792,-58.242555435],[-64.544580812,-58.245382666],[-64.728217396,-58.262856069],[-64.901445022,-58.276201878],[-65.037667254,-58.295087169],[-65.185224829,-58.313451793],[-65.336067798,-58.330034654],[-65.466023779,-58.342534366],[-65.59549255,-58.353411055],[-65.732283561,-58.363191894],[-65.852431789,-58.370348573],[-66.056526848,-58.380686846],[-66.221889676,-58.38690667],[-66.36336728,-58.390252948],[-66.517055734,-58.391837329],[-66.663875033,-58.391336126],[-66.805434229,-58.389010129],[-66.953719381,-58.384617011],[-67.118916269,-58.377362994],[-67.266666667,-58.368752742],[-67.266666667,-56.38],[-65.726666667,-56.38],[-65.726666667,-55.381666667],[-66.078333333,-55.183333333],[-66.416666667,-55.121666667],[-66.498636207,-55.116105147],[-66.524894791,-55.116441149],[-66.541629865,-55.118358262],[-66.575993898,-55.118139035],[-66.585575249,-55.118744105],[-66.605946275,-55.121919726],[-66.623743681,-55.120685602],[-66.643446364,-55.121258641],[-66.679219162,-55.118177489],[-66.71011652,-55.119827943],[-66.729553447,-55.095212908],[-66.742753318,-55.063917542],[-66.758391003,-55.038316007],[-66.770396071,-55.025395044],[-66.777062918,-55.02019201],[-66.791620391,-55.012102387],[-66.807592912,-55.006691247],[-66.822973116,-55.003609162],[-66.828313956,-54.999285257],[-66.833472284,-54.996730221],[-66.849952602,-54.99088032],[-66.875303374,-54.986517548],[-66.887786775,-54.985255862],[-66.896490093,-54.983015423],[-66.908760152,-54.978290778],[-66.921689079,-54.975092401],[-66.933041752,-54.974582257],[-66.94123952,-54.975301372],[-66.951846967,-54.972343926],[-66.962741597,-54.971864261],[-66.974861027,-54.969690097],[-66.97897598,-54.971914117],[-66.994077394,-54.975602248],[-67.00879098,-54.977635121],[-67.023474561,-54.975268423],[-67.030272873,-54.976252663],[-67.034741089,-54.975927891],[-67.058406193,-54.965357369],[-67.068872762,-54.947665804],[-67.073399406,-54.946241402],[-67.091902954,-54.945169133],[-67.105251153,-54.947747714],[-67.123389242,-54.934309084],[-67.13145724,-54.930822426],[-67.139683058,-54.928913911],[-67.156528039,-54.929030393],[-67.165420868,-54.930585254],[-67.174983352,-54.933794046],[-67.181509833,-54.931771593],[-67.192961652,-54.929930838],[-67.204481711,-54.923968164],[-67.212182684,-54.921727379],[-67.219782039,-54.920761374],[-67.225914595,-54.917703153],[-67.234554765,-54.915136916],[-67.259883492,-54.915350992],[-67.268940566,-54.910775127],[-67.277525114,-54.908580965],[-67.292051146,-54.908967294],[-67.298863504,-54.906847402],[-67.309410329,-54.90642649],[-67.342087721,-54.913570667],[-67.350178865,-54.914453246],[-67.355179529,-54.916804413],[-67.365766279,-54.917479258],[-67.371029444,-54.91981314],[-67.376570265,-54.920297189],[-67.383639747,-54.918812709],[-67.392049526,-54.920012293],[-67.399621155,-54.919925604],[-67.402458118,-54.921135108],[-67.407647134,-54.919635434],[-67.411559849,-54.920266542],[-67.424513694,-54.916594312],[-67.433077411,-54.919494509],[-67.435661111,-54.922024676],[-67.441353372,-54.918078352],[-67.4464889,-54.917481979],[-67.449582508,-54.91595985],[-67.45797678,-54.916318362],[-67.463148451,-54.918920109],[-67.46931989,-54.918026886],[-67.475805688,-54.921435849],[-67.477622644,-54.923930059],[-67.49442508,-54.926605944],[-67.499914018,-54.923135954],[-67.516282681,-54.919668692],[-67.52686246,-54.913787281],[-67.537001654,-54.915268254],[-67.541752618,-54.914125673],[-67.55729819,-54.908226455],[-67.564390845,-54.901954224],[-67.574215947,-54.901652544],[-67.582063987,-54.905248484],[-67.590966219,-54.905529321],[-67.595946717,-54.907255843],[-67.613508067,-54.904100669],[-67.630674539,-54.907284791],[-67.640642586,-54.903423533],[-67.656273746,-54.907954845],[-67.661544589,-54.907993001],[-67.66792575,-54.910296977],[-67.676879374,-54.909439394],[-67.688124616,-54.909901797],[-67.693631943,-54.911284875],[-67.701451968,-54.908080267],[-67.708922379,-54.907154395],[-67.720125536,-54.903245614],[-67.742576739,-54.903496822],[-67.746398191,-54.902301818],[-67.752822382,-54.902941231],[-67.759038669,-54.9000552],[-67.775813585,-54.89505063],[-67.788096457,-54.892582411],[-67.793627446,-54.889159851],[-67.813157816,-54.892201388],[-67.824054671,-54.885433036],[-67.83301966,-54.88378902],[-67.852787808,-54.886491804],[-67.856998184,-54.889808118],[-67.866719086,-54.894824058],[-67.876928358,-54.894396064],[-67.890822791,-54.891835393],[-67.900629574,-54.884623211],[-67.921823122,-54.881216177],[-67.928299055,-54.877920646],[-67.943819473,-54.87505823],[-67.955656026,-54.87516097],[-67.962489197,-54.872977811],[-67.970217509,-54.874410295],[-67.983030027,-54.874422505],[-67.997118224,-54.877016981],[-68.004777318,-54.876657207],[-68.012155091,-54.875066345],[-68.035605719,-54.875697386],[-68.040479245,-54.877210341],[-68.049234254,-54.87797937],[-68.057545196,-54.880437637],[-68.065850218,-54.881290503],[-68.079514591,-54.886104957],[-68.096006538,-54.887487045],[-68.102867065,-54.889842264],[-68.111979792,-54.889764266],[-68.120538627,-54.888559421],[-68.126311322,-54.889403349],[-68.136839504,-54.886635707],[-68.144989439,-54.885649257],[-68.153713213,-54.887292451],[-68.161332004,-54.885768176],[-68.165839896,-54.886316832],[-68.169495009,-54.885422107],[-68.176632316,-54.886457038],[-68.184153527,-54.885495498],[-68.192427213,-54.88724228],[-68.195851238,-54.889222724],[-68.200688968,-54.889060638],[-68.209000633,-54.890579535],[-68.21355292,-54.892283738],[-68.217488927,-54.891038652],[-68.233057663,-54.891946998],[-68.238960238,-54.891343665],[-68.249134364,-54.892707172],[-68.254395528,-54.890933571],[-68.26190351,-54.890095029],[-68.269995319,-54.891142368],[-68.277560121,-54.889290013],[-68.283609417,-54.886385223],[-68.291650136,-54.884825294],[-68.299804157,-54.884326509],[-68.307582775,-54.88138305],[-68.315506411,-54.879569452],[-68.336047154,-54.878130687],[-68.352337976,-54.879306059],[-68.370324735,-54.882294804],[-68.386200438,-54.881963284],[-68.389853176,-54.882815174],[-68.402914954,-54.887287228],[-68.410563466,-54.891123704],[-68.42116051,-54.898806948],[-68.442918467,-54.897916425],[-68.468003065,-54.899066666],[-68.486494611,-54.898503236],[-68.489583333,-54.897698128],[-68.50148669,-54.898361919],[-68.510840366,-54.900482553],[-68.518711174,-54.900944472],[-68.538270451,-54.905573869],[-68.546688318,-54.908695872],[-68.552541331,-54.912445784],[-68.559040008,-54.914225606],[-68.569932693,-54.909208309],[-68.578738462,-54.908066655],[-68.587318308,-54.909862003],[-68.595740621,-54.913705255],[-68.601725598,-54.918613188],[-68.605607742,-54.919247414],[-68.619225583,-54.91738518],[-68.614789104,-54.896864271],[-68.610190869,-54.894876837],[-68.611824036,-54.894218445],[-68.612859845,-54.80067122],[-68.620692527,-54.685155272],[-68.601029356,-54.690788384],[-68.58612197,-54.69782126],[-68.5361048,-54.730454984],[-68.511858148,-54.75166168],[-68.398337246,-54.745842561],[-68.388627045,-54.733506258],[-68.380998152,-54.726083344],[-68.350665684,-54.704769085],[-68.341279435,-54.700175218],[-68.326430609,-54.695180769],[-68.316176067,-54.693168395],[-68.300540964,-54.69218061],[-68.284943455,-54.693646859],[-68.243626665,-54.703151511],[-68.198407936,-54.719618061],[-68.11802173,-54.724146862],[-68.101404391,-54.726493496],[-68.085413488,-54.731586007],[-68.049587569,-54.748643934],[-67.922944945,-54.762864699],[-67.666732505,-54.780466478],[-67.536694649,-54.774689734],[-67.326378527,-54.792447982],[-67.021104841,-54.805696291],[-67.004543645,-54.808767859],[-66.928753452,-54.829556026],[-66.819286256,-54.837135248],[-66.772418952,-54.847287894],[-66.665907408,-54.892847749],[-66.635882697,-54.913209815],[-66.615033063,-54.930426455],[-66.602621277,-54.934760084],[-66.528972521,-54.951164736],[-66.461116608,-54.951897306],[-66.455184494,-54.950579059],[-66.44815863,-54.941105981],[-66.437134995,-54.92991724],[-66.424495358,-54.920592647],[-66.410551551,-54.913362248],[-66.390529259,-54.90727965],[-66.330285965,-54.895855332],[-66.318815704,-54.894993206],[-66.198155518,-54.89288434],[-66.125598897,-54.895187701],[-66.084625026,-54.88674081],[-66.079296722,-54.870883348],[-66.072021849,-54.857149178],[-66.06270674,-54.844708118],[-66.047508231,-54.830645536],[-66.029739349,-54.820014559],[-66.003649939,-54.809340492],[-65.993714982,-54.805926021],[-65.978278914,-54.802802462],[-65.967798063,-54.802085699],[-65.957299852,-54.80247242],[-65.916922346,-54.808102209],[-65.904978516,-54.803761732],[-65.89492911,-54.801400944],[-65.884689871,-54.80008875],[-65.869214027,-54.800114066],[-65.853927414,-54.802526919],[-65.810797465,-54.812807937],[-65.787471913,-54.807446594],[-65.776585527,-54.806106607],[-65.765617871,-54.805966963],[-65.718721785,-54.808420732],[-65.6957814,-54.81197489],[-65.67668229,-54.818605721],[-65.659307228,-54.828942602],[-65.647268874,-54.839482526],[-65.631883852,-54.835588686],[-65.591773893,-54.828940034],[-65.580475426,-54.828318098],[-65.561089935,-54.829287653],[-65.548791266,-54.817267799],[-65.535738483,-54.808207322],[-65.498883596,-54.791223161],[-65.484204951,-54.786789922],[-65.469021095,-54.784652924],[-65.424663557,-54.784123787],[-65.404472204,-54.786996124],[-65.386526535,-54.792903605],[-65.371687196,-54.776774724],[-65.354445869,-54.763291799],[-65.345940272,-54.75802674],[-65.335549815,-54.736652364],[-65.360367552,-54.742900948],[-65.372002048,-54.744491859],[-65.409963608,-54.745208229],[-65.457035707,-54.740977892],[-65.694267573,-54.762293617],[-65.704610914,-54.762155881],[-65.714884688,-54.760950372],[-65.77838911,-54.750144257],[-65.8586327,-54.746350524],[-65.879411363,-54.74163384],[-65.89051213,-54.738116455],[-65.920049156,-54.723443268],[-65.942694378,-54.72189642],[-65.972280036,-54.716015397],[-66.315582445,-54.615429459],[-66.404934627,-54.581784845],[-66.434007184,-54.575779628],[-66.470098557,-54.570990478],[-66.504067055,-54.563383212],[-66.519316407,-54.558662406],[-66.528980469,-54.554190587],[-66.542449619,-54.545622579],[-66.554383775,-54.535020472],[-66.564292068,-54.522909838],[-66.577684606,-54.516561988],[-66.590266674,-54.508077176],[-66.615028319,-54.484755223],[-66.712790513,-54.427452096],[-66.728051291,-54.413772001],[-66.767912291,-54.36528584],[-66.805539245,-54.342993669],[-66.941203431,-54.306881331],[-66.987027406,-54.289732913],[-67.001109984,-54.281342386],[-67.017190674,-54.267219212],[-67.05936714,-54.250712804],[-67.168344089,-54.219542799],[-67.181386287,-54.214811401],[-67.344774811,-54.142064772],[-67.627202144,-53.991037873],[-67.635298282,-53.984996685],[-67.646198237,-53.974482671],[-67.667715255,-53.946953119],[-67.677410015,-53.927231863],[-67.683157639,-53.903470909],[-67.709250596,-53.904567179],[-67.724735954,-53.903287028],[-67.744720375,-53.897886285],[-67.763164565,-53.888486446],[-67.775507986,-53.879048486],[-67.789413753,-53.863713078],[-67.797602603,-53.850507857],[-67.804814919,-53.832361555],[-67.836031415,-53.817811275],[-67.849034244,-53.810524985],[-68.038881807,-53.684683685],[-68.055773188,-53.670582878],[-68.072070309,-53.649158074],[-68.127362229,-53.583626275],[-68.13603419,-53.570039085],[-68.15040601,-53.53523319],[-68.159739865,-53.49671375],[-68.169400885,-53.48008523],[-68.178549808,-53.457642234],[-68.181672834,-53.442686984],[-68.182295098,-53.423635586],[-68.205030295,-53.414864585],[-68.290058913,-53.419988325],[-68.306681896,-53.419605149],[-68.380931036,-53.407644033],[-68.423077248,-53.399401285],[-68.456776642,-53.397570088],[-68.472433243,-53.395469778],[-68.492424521,-53.388892744],[-68.558556371,-53.354839298],[-68.607339458,-53.320994037],[-68.607083494,-53.069295691],[-68.594627696,-53.053274255],[-68.578849182,-53.039265111],[-68.51502252,-53.002529344],[-68.465957137,-52.965688231],[-68.436864472,-52.947995916],[-68.467471336,-52.930616558],[-68.494162559,-52.909747873],[-68.563550428,-52.833684752],[-68.606804302,-52.794756265],[-68.606665015,-52.657790542],[-68.438693661,-52.403950776],[-68.435040117,-52.39669323],[-68.432392955,-52.39808166],[-68.428578139,-52.397137523],[-68.419222713,-52.391910553],[-68.419606209,-52.329769134],[-68.564794779,-52.325134158],[-68.586119652,-52.304019928],[-68.71465075,-52.282390475],[-68.832111001,-52.276210665],[-68.927100777,-52.232265353],[-68.963793874,-52.213039279],[-69.05326283,-52.187290072],[-69.189816833,-52.150211334],[-69.445322329,-52.15141585],[-69.409985923,-52.146228458],[-69.36540171,-52.145014714],[-69.269529766,-52.109401654],[-69.25395306,-52.10501238],[-69.193928109,-52.099273737],[-69.173918927,-52.099565362],[-69.1137,-52.109459807],[-69.098783693,-52.113138576],[-69.044132585,-52.134401901],[-68.966073206,-52.176327507],[-68.938136049,-52.187202374],[-68.920092556,-52.190998892],[-68.882140526,-52.203559686],[-68.812040738,-52.204105733],[-68.802661435,-52.205461834],[-68.774486042,-52.212193264],[-68.716671147,-52.206984607],[-68.700737868,-52.207634106],[-68.595199599,-52.231428737],[-68.761713348,-52.069225614],[-68.832943438,-51.974893953],[-68.903987552,-51.868149046],[-68.946056857,-51.827418693],[-68.955420077,-51.815825276],[-69.009650607,-51.718828978],[-69.060301989,-51.745719071],[-69.15408801,-51.777980008],[-69.177539142,-51.784296666],[-69.187985965,-51.786014336],[-69.198555837,-51.786617915],[-69.228976057,-51.786191416],[-69.24445536,-51.783380185],[-69.259302191,-51.778176008],[-69.273149072,-51.770707694],[-69.289468373,-51.757554965],[-69.299707776,-51.745610658],[-69.307947143,-51.732208246],[-69.315477102,-51.712647735],[-69.31866991,-51.693144647],[-69.322492513,-51.692151092],[-69.353646934,-51.688857634],[-69.386719043,-51.6919173],[-69.607228954,-51.724716586],[-69.628113783,-51.724535836],[-69.64850556,-51.720020954],[-69.658236669,-51.716192553],[-69.671952031,-51.708599895],[-69.684312241,-51.698957032],[-69.695013535,-51.687500946],[-69.703792919,-51.674513182],[-69.710434631,-51.660312926],[-69.714775444,-51.645249163],[-69.716708679,-51.6296921],[-69.715467775,-51.608843385],[-69.707889169,-51.58388858],[-69.697326581,-51.565870798],[-69.690693157,-51.557786936],[-69.67925329,-51.547068305],[-69.66166717,-51.535801667],[-69.629424267,-51.523061131],[-69.615735418,-51.518990029],[-69.5816102,-51.511444754],[-69.544144751,-51.490571426],[-69.524132001,-51.483233179],[-69.487987087,-51.476235434],[-69.440134491,-51.472068324],[-69.417861963,-51.463986821],[-69.394925715,-51.458484644],[-69.36674871,-51.455980857],[-69.354840926,-51.45589759],[-69.279075952,-51.45988522],[-69.262088122,-51.462252299],[-69.147122266,-51.502070765],[-69.141740727,-51.502934691],[-69.127979775,-51.491784856],[-69.118609515,-51.48567418],[-69.092822169,-51.473784352],[-69.152402165,-51.365567165],[-69.174762977,-51.307232547],[-69.180546773,-51.279414515],[-69.19206437,-51.262563231],[-69.198325104,-51.248564179],[-69.202371751,-51.233772461],[-69.206386817,-51.20604257],[-69.236443314,-51.102943162],[-69.277244237,-51.121234227],[-69.329276445,-51.150660862],[-69.361588895,-51.171017995],[-69.375780706,-51.177616307],[-69.390828223,-51.181919497],[-69.406362864,-51.183822162],[-69.416802218,-51.1837315],[-69.432301471,-51.181559319],[-69.452080725,-51.17496033],[-69.470061553,-51.164403086],[-69.48546221,-51.150346582],[-69.497613129,-51.133401945],[-69.505986029,-51.11430587],[-69.510216887,-51.093888588],[-69.510121758,-51.073037773],[-69.503943706,-51.047744226],[-69.497157984,-51.033641064],[-69.473746889,-50.993675267],[-69.463871872,-50.980977197],[-69.452088631,-50.970026755],[-69.39738061,-50.931801879],[-69.312309805,-50.888384266],[-69.259197308,-50.850987167],[-69.249906963,-50.845800199],[-69.228486771,-50.836520328],[-69.230286562,-50.815234838],[-69.240839381,-50.794689342],[-69.245508659,-50.778734523],[-69.249885656,-50.746301354],[-69.248589389,-50.725542062],[-69.244807273,-50.710394954],[-69.233891686,-50.679121349],[-69.209634296,-50.630495982],[-69.17791377,-50.574618897],[-69.174843486,-50.5419452],[-69.166524288,-50.5165948],[-69.158399773,-50.502765833],[-69.140585929,-50.481524096],[-69.122192003,-50.453301832],[-69.086540472,-50.412974067],[-69.071149288,-50.393486915],[-69.050460983,-50.36319985],[-68.966703561,-50.287613341],[-68.958284207,-50.273128324],[-68.948484591,-50.261231998],[-68.936973265,-50.250982879],[-68.919439871,-50.240294154],[-68.894531983,-50.229819729],[-68.880020656,-50.225063066],[-68.864954264,-50.222571427],[-68.849639587,-50.222406979],[-68.815632362,-50.201114957],[-68.800882384,-50.194472424],[-68.790536384,-50.191405484],[-68.774549244,-50.188936387],[-68.76376004,-50.188739151],[-68.747957943,-50.190013902],[-68.645032749,-50.156842535],[-68.577200371,-50.137078619],[-68.58881533,-50.124191548],[-68.598230545,-50.110548129],[-68.611121385,-50.080406402],[-68.650101986,-50.092551281],[-68.671382571,-50.094724254],[-68.728687513,-50.088823652],[-68.772271233,-50.082534941],[-68.80237991,-50.08452542],[-68.833611817,-50.081619833],[-68.840433118,-50.084022304],[-68.87521907,-50.103007172],[-68.889946637,-50.108073365],[-68.905282225,-50.110791322],[-69.008396447,-50.115557547],[-69.030156964,-50.113834745],[-69.050151867,-50.108272508],[-69.068567983,-50.098702696],[-69.076932489,-50.092537457],[-69.088168779,-50.081747814],[-69.102754277,-50.060325339],[-69.111344829,-50.03587413],[-69.113498502,-50.00774505],[-69.110223534,-49.982362611],[-69.100613138,-49.958642705],[-69.085296788,-49.938138972],[-69.073771724,-49.927950697],[-69.060820427,-49.919650581],[-69.012969823,-49.899395982],[-69.003053993,-49.895913836],[-68.987632901,-49.892686741],[-68.962220111,-49.891567874],[-68.950393416,-49.887895915],[-68.914509565,-49.870469188],[-68.894012744,-49.864246705],[-68.872660939,-49.86253225],[-68.802957131,-49.868034971],[-68.7444023,-49.864163608],[-68.733537357,-49.864601176],[-68.719401434,-49.866574207],[-68.742687611,-49.835982857],[-68.790007792,-49.814160503],[-68.80297585,-49.805179653],[-68.814370322,-49.794271298],[-68.823907683,-49.781706867],[-68.83135062,-49.767798996],[-68.836513932,-49.752893748],[-68.839269143,-49.737362006],[-68.839547695,-49.721590241],[-68.836063459,-49.700865786],[-68.828324965,-49.681327141],[-68.816673979,-49.663837216],[-68.801625059,-49.649168442],[-68.78384283,-49.637968654],[-68.76411263,-49.630732483],[-68.743305831,-49.62777951],[-68.703279723,-49.630486471],[-68.660588934,-49.642010097],[-68.62186134,-49.659393862],[-68.598572102,-49.67470278],[-68.585687197,-49.684917369],[-68.574650327,-49.697105318],[-68.520389765,-49.767231328],[-68.496951467,-49.78954027],[-68.487695257,-49.800691186],[-68.462338649,-49.843676093],[-68.453609084,-49.863475724],[-68.433799337,-49.874569754],[-68.42524592,-49.880533116],[-68.389718724,-49.911762996],[-68.380170351,-49.923561062],[-68.359841486,-49.953259546],[-68.344569469,-49.987553583],[-68.342978827,-49.989262558],[-68.328288217,-49.995882487],[-68.319043045,-50.001665323],[-68.306491144,-50.012137933],[-68.297324303,-50.021974954],[-68.26119517,-50.024266748],[-68.189927905,-50.015696921],[-68.111490756,-49.993304745],[-68.026842234,-49.953694229],[-67.946822385,-49.911207371],[-67.902864407,-49.88105613],[-67.874996428,-49.844975892],[-67.860645653,-49.823380146],[-67.827662328,-49.749848464],[-67.815775218,-49.691399734],[-67.817832928,-49.6647996],[-67.812331203,-49.614098333],[-67.806262542,-49.590978381],[-67.804932946,-49.545699193],[-67.796488012,-49.507776968],[-67.791368598,-49.491763169],[-67.8223368,-49.490964863],[-67.83373764,-49.489378659],[-67.844880671,-49.486492828],[-67.8680901,-49.478886359],[-67.877739693,-49.47461679],[-67.891237726,-49.466368395],[-67.90326617,-49.45609467],[-67.910318311,-49.448245392],[-67.919250174,-49.435189561],[-67.926011486,-49.420888597],[-67.930433056,-49.405700357],[-67.932330112,-49.379453202],[-67.927233106,-49.352806838],[-67.916972529,-49.328695858],[-67.907916072,-49.315808804],[-67.896948417,-49.304503667],[-67.884341667,-49.295060923],[-67.870408589,-49.287714842],[-67.855494857,-49.282647677],[-67.841533175,-49.280169287],[-67.832093087,-49.267888788],[-67.829729661,-49.252016383],[-67.822834185,-49.232140132],[-67.815010216,-49.218423023],[-67.805124417,-49.206108618],[-67.797508227,-49.198831621],[-67.784756525,-49.189516704],[-67.77069744,-49.182325338],[-67.756989418,-49.177787632],[-67.734309165,-49.141785316],[-67.73034683,-49.109066522],[-67.727530731,-49.098671061],[-67.721254706,-49.083795342],[-67.715773546,-49.074524263],[-67.705764877,-49.061855323],[-67.693847878,-49.050962177],[-67.680319502,-49.041413741],[-67.663801123,-49.00199577],[-67.640597347,-48.961633614],[-67.631238443,-48.949322939],[-67.616026411,-48.9354278],[-67.455911306,-48.817733644],[-67.356101221,-48.773399684],[-67.286465444,-48.752769414],[-67.28341918,-48.751090632],[-67.274927154,-48.728593953],[-67.266874661,-48.714683817],[-67.252877204,-48.698480049],[-67.23715151,-48.685960139],[-67.231077458,-48.659594411],[-67.219155566,-48.63614732],[-67.205459516,-48.620142352],[-67.17912891,-48.5975694],[-67.166728059,-48.588565695],[-67.153097086,-48.581562527],[-67.088384035,-48.55436211],[-67.03636239,-48.524774022],[-67.022349781,-48.518183445],[-67.002406041,-48.51290377],[-66.94896085,-48.50720275],[-66.938339321,-48.489017398],[-66.924491081,-48.473783065],[-66.912213291,-48.464399751],[-66.894105237,-48.454993646],[-66.873034818,-48.435707602],[-66.864371389,-48.429279139],[-66.828142901,-48.409925229],[-66.808031883,-48.393970782],[-66.793747446,-48.385449306],[-66.735161346,-48.363833411],[-66.690893778,-48.339391287],[-66.676032967,-48.33427132],[-66.660553459,-48.331543208],[-66.585792209,-48.324360801],[-66.560732615,-48.323934451],[-66.552137021,-48.308533864],[-66.538633657,-48.292622931],[-66.526494621,-48.2827233],[-66.515765932,-48.276223048],[-66.499432906,-48.264159362],[-66.484954899,-48.257117703],[-66.469534525,-48.252490642],[-66.453571475,-48.250398111],[-66.430807427,-48.250344119],[-66.422990761,-48.235634634],[-66.414325673,-48.223167738],[-66.382598835,-48.188879412],[-66.361939562,-48.172713004],[-66.3491049,-48.164297666],[-66.335133659,-48.157945433],[-66.322449018,-48.154199848],[-66.30998445,-48.139213652],[-66.293585156,-48.125604176],[-66.284392295,-48.120186235],[-66.269653062,-48.113969947],[-66.225770939,-48.101668441],[-66.217994053,-48.085283066],[-66.208896486,-48.072398496],[-66.197886169,-48.061104658],[-66.185237014,-48.051682518],[-66.153019315,-48.033696],[-66.120770304,-48.021094428],[-66.078180918,-48.011531287],[-66.061164385,-48.00979361],[-66.051423399,-47.991416868],[-66.050828701,-47.965375163],[-66.039770362,-47.927186159],[-66.027388497,-47.904100729],[-66.009961691,-47.883750165],[-66.113183821,-47.923190838],[-66.126891714,-47.926649823],[-66.196480788,-47.939239667],[-66.274548051,-47.968902751],[-66.294321633,-47.972261409],[-66.338816041,-47.975159929],[-66.353625376,-47.974330915],[-66.411862174,-47.961251373],[-66.426953097,-47.95644395],[-66.445537031,-47.946450865],[-66.453935305,-47.940040987],[-66.465149747,-47.92885691],[-66.471582373,-47.920476047],[-66.479486485,-47.906751168],[-66.487551979,-47.881668231],[-66.488786317,-47.855349373],[-66.486192179,-47.839725105],[-66.481163752,-47.824706376],[-66.473827173,-47.810669927],[-66.46078048,-47.794086558],[-66.448865171,-47.78365235],[-66.430705177,-47.772908098],[-66.410695025,-47.766213461],[-66.379965045,-47.761473576],[-66.305265109,-47.763507399],[-66.249005382,-47.736282058],[-66.181220342,-47.712241837],[-66.156049188,-47.705272406],[-66.150585415,-47.702732102],[-66.12348817,-47.679351715],[-66.114864363,-47.673318317],[-66.080433617,-47.652001467],[-66.060951527,-47.643788496],[-66.045442385,-47.640424186],[-66.029596316,-47.639555758],[-65.966228938,-47.641207621],[-65.909883045,-47.64727292],[-65.881101552,-47.589892517],[-65.833805371,-47.484024428],[-65.825749644,-47.394412641],[-65.8165535,-47.348666123],[-65.831472488,-47.312439781],[-65.848821019,-47.259394218],[-65.864878161,-47.248759078],[-65.881061213,-47.235828336],[-65.910277609,-47.217430219],[-65.92128026,-47.207058345],[-65.931878635,-47.193108043],[-65.946550304,-47.190128909],[-65.956344596,-47.186797724],[-66.004435681,-47.16481143],[-66.059884118,-47.179197021],[-66.074718948,-47.18199846],[-66.205006997,-47.189484826],[-66.318059112,-47.172845826],[-66.375983264,-47.165400443],[-66.386316156,-47.162963227],[-66.397848276,-47.158771895],[-66.439178428,-47.161282203],[-66.453743426,-47.160434077],[-66.484841889,-47.154344443],[-66.516050467,-47.142139887],[-66.535072847,-47.145764931],[-66.565179709,-47.148001463],[-66.58081652,-47.147136868],[-66.591840998,-47.14500119],[-66.614660269,-47.15021403],[-66.636078177,-47.150952545],[-66.65716161,-47.147110534],[-66.68130939,-47.136922019],[-66.708724022,-47.137293962],[-66.718538184,-47.135865484],[-66.732873944,-47.131920187],[-66.82900557,-47.097097878],[-66.841629857,-47.09000196],[-66.884566718,-47.061383585],[-66.897687768,-47.04960123],[-66.951015651,-46.992450959],[-67.027747217,-46.931725611],[-67.04186086,-46.924680378],[-67.052525775,-46.917219279],[-67.062781643,-46.914627888],[-67.077227035,-46.908888581],[-67.086286808,-46.903846483],[-67.098777478,-46.89459488],[-67.11292001,-46.879467355],[-67.128047146,-46.855513791],[-67.147220415,-46.834224084],[-67.17777114,-46.814171249],[-67.189667552,-46.80296673],[-67.198636576,-46.791361764],[-67.21919848,-46.787682692],[-67.239808465,-46.779708371],[-67.287176982,-46.754450055],[-67.299425727,-46.744921593],[-67.310089562,-46.733564454],[-67.363388461,-46.721508664],[-67.382807912,-46.713822667],[-67.482801763,-46.647731251],[-67.494102756,-46.637957393],[-67.503821353,-46.626608841],[-67.603241668,-46.490674257],[-67.630792968,-46.445074015],[-67.668696544,-46.356152512],[-67.718201684,-46.192643708],[-67.721786355,-46.175395071],[-67.724252116,-46.135846888],[-67.723869544,-46.11958412],[-67.718887579,-46.078137386],[-67.708443269,-46.040430938],[-67.667558889,-45.947409563],[-67.658963062,-45.933501204],[-67.646549878,-45.918226587],[-67.644199844,-45.907104155],[-67.638780091,-45.892091526],[-67.633867316,-45.882645785],[-67.616587184,-45.856604142],[-67.606441577,-45.844923429],[-67.594561217,-45.834186719],[-67.586933841,-45.821387349],[-67.576782416,-45.808991814],[-67.56478167,-45.798376598],[-67.549535216,-45.788918973],[-67.537875133,-45.767768144],[-67.524332671,-45.752109717],[-67.507856176,-45.739575377],[-67.461074829,-45.71217119],[-67.455973456,-45.696705593],[-67.456150824,-45.653779832],[-67.451207947,-45.627505232],[-67.433534088,-45.587574933],[-67.409841722,-45.550810413],[-67.402624455,-45.542770004],[-67.390280052,-45.53228408],[-67.363709376,-45.517623541],[-67.343463842,-45.493191253],[-67.331184473,-45.4818789],[-67.291832367,-45.454470164],[-67.24035915,-45.393100118],[-67.204064243,-45.354451403],[-67.170478707,-45.323982808],[-67.13711422,-45.280883781],[-67.073111055,-45.226920737],[-67.058252856,-45.216707587],[-67.012611952,-45.191062141],[-66.972815935,-45.166514701],[-66.896802972,-45.139562778],[-66.876613007,-45.1358935],[-66.795847312,-45.129662926],[-66.684946966,-45.115742194],[-66.67861352,-45.09747211],[-66.670990321,-45.083846822],[-66.661339228,-45.071574168],[-66.649895498,-45.060953307],[-66.636938084,-45.052243137],[-66.622782838,-45.045655978],[-66.607774812,-45.041352398],[-66.595984191,-45.03970029],[-66.584112458,-45.02915244],[-66.556829574,-45.008562142],[-66.538217844,-44.997458159],[-66.499096077,-44.982065618],[-66.451771001,-44.971472495],[-66.434477162,-44.96144639],[-66.414111858,-44.95477655],[-66.399986463,-44.952850372],[-66.371161891,-44.945779024],[-66.356597756,-44.943688089],[-66.312381114,-44.944496645],[-66.298756259,-44.945870091],[-66.285477566,-44.937787143],[-66.270487079,-44.921623187],[-66.258528948,-44.911573371],[-66.245151681,-44.903508357],[-66.22567593,-44.896175004],[-66.215471999,-44.894066643],[-66.199893756,-44.892920315],[-66.169946001,-44.895650652],[-66.118621456,-44.888758163],[-66.097475695,-44.889238859],[-66.03464025,-44.903682457],[-66.009176533,-44.903365361],[-65.993384595,-44.905781648],[-65.973308414,-44.91284749],[-65.948736456,-44.927301758],[-65.935627336,-44.919200553],[-65.926093031,-44.914900927],[-65.898726131,-44.906857087],[-65.884202532,-44.904024058],[-65.835108048,-44.903426879],[-65.819607698,-44.905662899],[-65.808365182,-44.908924441],[-65.821605204,-44.883438479],[-65.826937537,-44.863758673],[-65.828250256,-44.848511372],[-65.826052782,-44.795167398],[-65.822475444,-44.779544663],[-65.816448237,-44.764694076],[-65.808125978,-44.750997098],[-65.795774467,-44.736963708],[-65.794412487,-44.718025973],[-65.790528903,-44.70268043],[-65.773885843,-44.665681042],[-65.765021098,-44.651845532],[-65.730248216,-44.611405889],[-65.704998307,-44.589374176],[-65.692406704,-44.580939458],[-65.638613118,-44.551134938],[-65.624215028,-44.54610248],[-65.60728799,-44.543159879],[-65.596031183,-44.534976225],[-65.586415732,-44.529635262],[-65.537911912,-44.511729029],[-65.520309111,-44.495452606],[-65.502439028,-44.485182737],[-65.482843071,-44.478794584],[-65.46477439,-44.476313643],[-65.458204823,-44.463671605],[-65.448668679,-44.450687864],[-65.437171456,-44.439403829],[-65.427439421,-44.432266304],[-65.420878832,-44.415101002],[-65.413547922,-44.400919733],[-65.398772747,-44.382526499],[-65.390062868,-44.368566645],[-65.375611579,-44.352973862],[-65.3578302,-44.340601941],[-65.363180304,-44.324660095],[-65.386103642,-44.298203316],[-65.39187309,-44.289129313],[-65.398620225,-44.274489751],[-65.402927543,-44.258956315],[-65.405904419,-44.238272721],[-65.408390118,-44.192118351],[-65.405943645,-44.176734688],[-65.39465687,-44.138108995],[-65.38636321,-44.118243581],[-65.37745064,-44.104764622],[-65.366483474,-44.092897123],[-65.336938681,-44.07061286],[-65.335493203,-44.062643855],[-65.339802526,-44.048008475],[-65.3415803,-44.035816422],[-65.349009907,-44.02779046],[-65.358078353,-44.014876753],[-65.368339839,-43.99071447],[-65.375007088,-43.961441253],[-65.375345225,-43.944821864],[-65.373278267,-43.926134377],[-65.37805507,-43.913628801],[-65.395746945,-43.895379219],[-65.404624831,-43.882560315],[-65.411402023,-43.868517137],[-65.416893599,-43.84848189],[-65.418127022,-43.82774431],[-65.41540614,-43.793430658],[-65.422227198,-43.777594734],[-65.430882835,-43.748005148],[-65.434027284,-43.670261079],[-65.430017159,-43.644491451],[-65.423312954,-43.625379008],[-65.416296917,-43.611476234],[-65.40349938,-43.594678669],[-65.393578002,-43.578319821],[-65.355410684,-43.527375811],[-65.344580902,-43.515145997],[-65.331904476,-43.504842561],[-65.312531519,-43.494315747],[-65.272726602,-43.468020377],[-65.268532931,-43.463956202],[-65.232695467,-43.414844016],[-65.224926371,-43.406380126],[-65.142208688,-43.341912072],[-65.14295128,-43.31245976],[-65.137090507,-43.28668259],[-65.11653463,-43.245458674],[-65.106759732,-43.232617939],[-65.095046645,-43.221516734],[-65.076947775,-43.209913283],[-65.053818914,-43.201373862],[-65.047567222,-43.198066354],[-65.039217978,-43.192129885],[-65.008677049,-43.163235287],[-64.994719213,-43.153299261],[-64.806316048,-43.056215476],[-64.786410212,-43.049658294],[-64.665164611,-43.023405685],[-64.685824582,-43.016896214],[-64.710915391,-43.004254302],[-64.755572856,-42.974375745],[-64.778036364,-42.96283387],[-64.889136882,-42.922333084],[-64.956782439,-42.905928384],[-64.970298532,-42.900172995],[-64.992237453,-42.887601572],[-65.025870562,-42.880628879],[-65.044707888,-42.872807144],[-65.053430591,-42.867497493],[-65.06538729,-42.857936757],[-65.083943038,-42.840413887],[-65.094132237,-42.827951514],[-65.099754882,-42.818803094],[-65.106271697,-42.804083664],[-65.116314386,-42.769477267],[-65.118903401,-42.748013566],[-65.116818802,-42.726495019],[-65.112238763,-42.710926382],[-65.101213532,-42.686303513],[-65.093127948,-42.673128699],[-65.083108485,-42.66135743],[-65.054901836,-42.6376227],[-65.039114006,-42.610380201],[-65.016113104,-42.582892461],[-65.00779815,-42.575583205],[-64.993940765,-42.566451458],[-64.96606039,-42.551369735],[-64.952522441,-42.545992446],[-64.889456976,-42.532298585],[-64.848372177,-42.528767943],[-64.810512766,-42.489961255],[-64.786474897,-42.47230349],[-64.754573637,-42.45769743],[-64.744197704,-42.454884286],[-64.724914946,-42.451681435],[-64.712864581,-42.444040594],[-64.700946034,-42.438228784],[-64.702138302,-42.416649839],[-64.698907803,-42.396285425],[-64.68752128,-42.355741503],[-64.67555494,-42.333292573],[-64.680682842,-42.330090641],[-64.722660438,-42.329754407],[-64.759019731,-42.324269264],[-64.795246937,-42.313936897],[-64.824290293,-42.302278887],[-64.837729628,-42.295542587],[-64.859688335,-42.294492427],[-64.888165408,-42.288731374],[-64.902585107,-42.282770573],[-64.990059245,-42.237679578],[-65.040207329,-42.200386485],[-65.084297787,-42.154111854],[-65.155269296,-42.037304317],[-65.163795639,-42.019260125],[-65.167740569,-42.0048101],[-65.174141985,-41.95978368],[-65.174284778,-41.943890844],[-65.171907831,-41.928176113],[-65.150503134,-41.86652913],[-65.107495704,-41.791851041],[-65.100913483,-41.77594526],[-65.121366919,-41.733348278],[-65.134563818,-41.688032911],[-65.137161311,-41.661684633],[-65.134187428,-41.640690984],[-65.122529945,-41.60297761],[-65.116161204,-41.589018424],[-65.102807284,-41.568880158],[-65.095606434,-41.549495036],[-65.132077083,-41.518950001],[-65.147520395,-41.4988827],[-65.154178485,-41.485197135],[-65.168348885,-41.448896626],[-65.175526439,-41.416960473],[-65.199898789,-41.360960129],[-65.204241957,-41.341119324],[-65.205811726,-41.318256429],[-65.244422006,-41.202271574],[-65.273766616,-41.026580516],[-65.275109951,-41.011575212],[-65.275372664,-40.96121983],[-65.270126215,-40.928674766],[-65.266094845,-40.913115761],[-65.254436849,-40.88102558],[-65.235121561,-40.845358663],[-65.231741187,-40.825127525],[-65.220554479,-40.796495178],[-65.209095166,-40.779052022],[-65.188489754,-40.759034893],[-65.174094936,-40.748352122],[-65.10038486,-40.703292473],[-65.083098144,-40.689861572],[-65.075783799,-40.67606717],[-65.066403852,-40.66357135],[-65.059116754,-40.65611998],[-65.046833105,-40.646463849],[-65.023633176,-40.632472643],[-64.978603294,-40.616643874],[-64.956058041,-40.611813993],[-64.888905483,-40.605999192],[-64.872361325,-40.607637144],[-64.778123043,-40.624971128],[-64.758298571,-40.630787607],[-64.724365803,-40.648382861],[-64.7111854,-40.656845154],[-64.699488065,-40.667261765],[-64.684048183,-40.688252535],[-64.677587999,-40.702521362],[-64.673702748,-40.71640479],[-64.665706842,-40.728794061],[-64.659548812,-40.742223421],[-64.627173415,-40.748008917],[-64.612808864,-40.751692844],[-64.523463526,-40.786703321],[-64.385260607,-40.815945217],[-64.145442429,-40.912769248],[-64.134781912,-40.914914352],[-64.110395416,-40.907278758],[-64.071102205,-40.8998482],[-64.04965005,-40.900225213],[-64.028772079,-40.905169647],[-64.009429383,-40.914453892],[-63.990809616,-40.928246949],[-63.97919653,-40.938878048],[-63.967379689,-40.954367811],[-63.929754933,-40.967377076],[-63.916157118,-40.97404687],[-63.817689237,-41.045645118],[-63.796489574,-41.054173717],[-63.769911104,-41.058905217],[-63.623487448,-41.060871142],[-63.478245066,-41.05423707],[-63.3862203,-41.060659797],[-63.377728396,-41.059696798],[-63.334958906,-41.049669264],[-63.31916195,-41.048067773],[-63.106310903,-41.054617554],[-63.080778579,-41.050320706],[-62.966697478,-41.004818153],[-62.909520278,-40.992405429],[-62.884240772,-40.975576544],[-62.865538441,-40.960259028],[-62.856026925,-40.954780025],[-62.840778781,-40.948595163],[-62.820811142,-40.943538369],[-62.804429998,-40.941719941],[-62.793439217,-40.942016206],[-62.772110183,-40.944803019],[-62.756602827,-40.943957373],[-62.739676002,-40.932666598],[-62.713528311,-40.918944105],[-62.643352343,-40.896507351],[-62.523771227,-40.839779332],[-62.39443984,-40.787735219],[-62.378213671,-40.756548357],[-62.393600946,-40.746076755],[-62.408466637,-40.730785851],[-62.426686509,-40.702389596],[-62.434838499,-40.683137512],[-62.438221347,-40.667813754],[-62.439123081,-40.651203496],[-62.44350211,-40.635691352],[-62.446795058,-40.61343491],[-62.444915063,-40.584486386],[-62.438823473,-40.562143691],[-62.452828956,-40.555912979],[-62.466832422,-40.547552359],[-62.475330343,-40.541771018],[-62.48685416,-40.531542296],[-62.496669755,-40.519664621],[-62.527820072,-40.47400874],[-62.536057691,-40.45497961],[-62.548430991,-40.40760934],[-62.571353813,-40.373411178],[-62.580677127,-40.352764068],[-62.588946506,-40.322763414],[-62.590054092,-40.306699671],[-62.588569151,-40.290666408],[-62.580295788,-40.259855087],[-62.574240256,-40.244021067],[-62.565597143,-40.229437436],[-62.543944829,-40.200249864],[-62.517857807,-40.174556279],[-62.492754444,-40.154763881],[-62.476001123,-40.145141062],[-62.447034183,-40.133726487],[-62.443759433,-40.124878613],[-62.459186099,-40.091230724],[-62.464959569,-40.070584971],[-62.466321517,-40.054550809],[-62.465093995,-40.038505796],[-62.46130879,-40.022865416],[-62.454058982,-40.00279817],[-62.445937783,-39.988337521],[-62.438910729,-39.979163101],[-62.431333274,-39.962961932],[-62.42423553,-39.930202481],[-62.411701298,-39.896429432],[-62.414541575,-39.867253716],[-62.413010114,-39.851835174],[-62.408005118,-39.833866586],[-62.40794014,-39.809203703],[-62.403286999,-39.789284617],[-62.393230975,-39.763982844],[-62.381334208,-39.746480126],[-62.374064872,-39.738770294],[-62.361735641,-39.728753556],[-62.352700588,-39.72321708],[-62.338178035,-39.716779654],[-62.328008214,-39.713803166],[-62.3123065,-39.711394601],[-62.296421498,-39.71150282],[-62.285927736,-39.712974454],[-62.26569954,-39.719195248],[-62.251637837,-39.726585342],[-62.212292938,-39.751185855],[-62.210045765,-39.71449196],[-62.184036981,-39.573210614],[-62.174036794,-39.545104981],[-62.173383663,-39.52826003],[-62.199729154,-39.516459522],[-62.21339987,-39.508020261],[-62.262041176,-39.471729144],[-62.289987765,-39.442070353],[-62.305068138,-39.436718017],[-62.318877429,-39.429167948],[-62.343698102,-39.40888898],[-62.354073325,-39.39652449],[-62.36548369,-39.378464225],[-62.372201236,-39.363765086],[-62.378983761,-39.343181551],[-62.391868685,-39.330835528],[-62.407459469,-39.31207779],[-62.415378319,-39.298679244],[-62.421122273,-39.284214245],[-62.425165252,-39.263876922],[-62.425110641,-39.245191579],[-62.439002326,-39.214982917],[-62.445190261,-39.194834492],[-62.447017666,-39.173836631],[-62.444789811,-39.151524229],[-62.450052853,-39.14086375],[-62.454868965,-39.126334357],[-62.457811087,-39.101037896],[-62.45549042,-39.080776827],[-62.448921206,-39.058571855],[-62.438666524,-39.039200929],[-62.427747195,-39.025782841],[-62.418572785,-39.004150315],[-62.427333033,-38.984505086],[-62.442008951,-38.973246907],[-62.452608128,-38.961722684],[-62.461278545,-38.94868527],[-62.467807645,-38.934454278],[-62.472913595,-38.91422909],[-62.473740793,-38.894089466],[-62.480380249,-38.879159065],[-62.484559137,-38.863945782],[-62.490195935,-38.81623111],[-62.487066653,-38.78984552],[-62.477099193,-38.765215426],[-62.457851428,-38.735983676],[-62.447263664,-38.724665766],[-62.435054252,-38.715119766],[-62.395248562,-38.69429532],[-62.38006871,-38.68964662],[-62.359050371,-38.687287755],[-62.338006035,-38.689402162],[-62.309821189,-38.696726517],[-62.295278988,-38.701803816],[-62.151197336,-38.710668143],[-62.129778671,-38.714351998],[-62.114515469,-38.720112234],[-62.090827619,-38.732939984],[-62.070939527,-38.748888498],[-62.045004053,-38.783974106],[-62.026104287,-38.822941739],[-62.020568932,-38.831009464],[-62.015778553,-38.834461749],[-61.997052697,-38.841813229],[-61.825983656,-38.881270732],[-61.797124777,-38.882239151],[-61.777332438,-38.878940428],[-61.760154175,-38.872668011],[-61.749470445,-38.870057162],[-61.733069582,-38.868376247],[-61.714883296,-38.8685088],[-61.700230416,-38.870776433],[-61.686073911,-38.875185788],[-61.670583397,-38.882232347],[-61.659701055,-38.8888404],[-61.639892418,-38.89723247],[-61.535926996,-38.908864964],[-61.517924188,-38.902337482],[-61.452901402,-38.885654539],[-61.429311011,-38.882525145],[-61.333341548,-38.881475433],[-61.148258936,-38.900065714],[-61.088069267,-38.888022497],[-61.071215713,-38.879541476],[-61.057523957,-38.874272918],[-61.025972089,-38.868646848],[-61.015605946,-38.868197992],[-60.991913866,-38.869629081],[-60.966976373,-38.874503024],[-60.872985082,-38.875590414],[-60.674687947,-38.844272118],[-60.515052513,-38.828314665],[-60.358840292,-38.807646587],[-59.904116976,-38.73957618],[-59.886063874,-38.738526992],[-59.817967247,-38.740107895],[-59.653393582,-38.686016277],[-59.087420496,-38.596364257],[-59.056058487,-38.585744402],[-59.030308849,-38.580484168],[-58.982010655,-38.55520702],[-58.966632349,-38.549621463],[-58.751406729,-38.490962565],[-58.597780672,-38.462817726],[-58.525452676,-38.429541213],[-58.445771289,-38.407675728],[-58.432266784,-38.404982062],[-58.353929187,-38.394901856],[-58.310414398,-38.374812105],[-58.191409679,-38.336552724],[-58.166672907,-38.325517139],[-58.122108923,-38.295364741],[-58.108271812,-38.287528964],[-58.080992158,-38.276895355],[-58.047741374,-38.271076546],[-57.908528406,-38.205551812],[-57.836357906,-38.163463556],[-57.731678826,-38.115514459],[-57.652364334,-38.071076089],[-57.636014251,-38.056239904],[-57.635065734,-38.054710037],[-57.635378336,-38.035430467],[-57.640366937,-38.016168936],[-57.641806992,-37.995715672],[-57.637364223,-37.942454413],[-57.626468828,-37.891845322],[-57.621358478,-37.87562202],[-57.602231875,-37.829492722],[-57.569419248,-37.774976035],[-57.52835359,-37.72407505],[-57.443510322,-37.639989638],[-57.430673998,-37.630275367],[-57.417276491,-37.623130807],[-57.389300067,-37.585637224],[-57.379288807,-37.574159648],[-57.367650672,-37.564335499],[-57.26382519,-37.489450103],[-57.236782265,-37.464979707],[-57.137711788,-37.354167545],[-57.101047759,-37.290026134],[-56.966923648,-37.099792435],[-56.86593025,-36.9729535],[-56.768640365,-36.869137278],[-56.766606496,-36.865267277],[-56.765004721,-36.847909272],[-56.772062398,-36.609162804],[-56.772828091,-36.603874175],[-56.793309585,-36.556255198],[-56.798545147,-36.535727092],[-56.799562191,-36.51985766],[-56.798357062,-36.442578793],[-56.833196192,-36.441616435],[-56.859905597,-36.450852397],[-56.889491522,-36.471632066],[-56.903639559,-36.478325211],[-56.913577879,-36.481523184],[-56.928974247,-36.484336898],[-56.939401271,-36.484860729],[-56.960135057,-36.482644651],[-56.979958514,-36.476176929],[-56.998009717,-36.465738779],[-57.020328104,-36.444961027],[-57.031245249,-36.430296717],[-57.050230429,-36.423122587],[-57.162184321,-36.366540565],[-57.314823754,-36.244770059],[-57.329664575,-36.228107907],[-57.346799827,-36.203666523],[-57.354534334,-36.188773474],[-57.369562023,-36.179311078],[-57.384677992,-36.165033918],[-57.3938936,-36.152438549],[-57.401037241,-36.138562702],[-57.408164479,-36.120373712],[-57.412571906,-36.099070207],[-57.427617254,-36.066957795],[-57.440510874,-36.05507583],[-57.450262878,-36.042427014],[-57.457876724,-36.028386947],[-57.465715654,-36.007838376],[-57.471265972,-35.98380644],[-57.473100842,-35.953578718],[-57.49110473,-35.883807651],[-57.493299909,-35.863040839],[-57.489918431,-35.837184664],[-57.476987615,-35.801855978],[-57.461731765,-35.736116179],[-57.444915657,-35.689020298],[-57.4323023,-35.667095245],[-57.399633139,-35.631295481],[-57.30243601,-35.507510797],[-57.238627406,-35.437927512],[-57.283502713,-35.367662718],[-57.32224564,-35.317286878],[-57.385047962,-35.25939558],[-57.418588286,-35.22263135],[-57.505512537,-35.151614059],[-57.54599873,-35.125478422],[-57.572797015,-35.102066658],[-57.643541095,-35.079368286],[-57.657878906,-35.071672682],[-57.730577981,-35.024657917],[-57.790699983,-35.004452112],[-57.80416408,-34.998802506],[-57.816661931,-34.991252429],[-57.861383736,-34.956318628],[-57.90685732,-34.931354868],[-57.934869276,-34.933614494],[-57.945208484,-34.933426263],[-57.955472973,-34.932171298],[-57.970490008,-34.92832117],[-58.002362033,-34.917301115],[-58.016836584,-34.910065231],[-58.033965105,-34.8969744],[-58.053412179,-34.876570567],[-58.092779238,-34.868558161],[-58.103222422,-34.864718057],[-58.125334563,-34.853833882],[-58.168894046,-34.849412319],[-58.179380128,-34.847350502],[-58.194547834,-34.842192495],[-58.229796579,-34.826956597],[-58.245169746,-34.818648381],[-58.290503335,-34.785017561],[-58.363412458,-34.744711634],[-58.376668447,-34.735939884],[-58.384659713,-34.728970889],[-58.395153135,-34.717031336],[-58.417427776,-34.683721065],[-58.427947738,-34.664608149],[-58.435441946,-34.655867977],[-58.462489303,-34.64195164],[-58.481063375,-34.630191881],[-58.49916578,-34.621767547],[-58.526318745,-34.606918937],[-58.542916965,-34.594221684],[-58.556513815,-34.578352002],[-58.568399223,-34.555120301],[-58.573357729,-34.534390074],[-58.583753258,-34.522415368],[-58.592382502,-34.508413248],[-58.604021459,-34.484140886],[-58.608548603,-34.468144035],[-58.611419888,-34.43895717],[-58.61069367,-34.423546181],[-58.606062435,-34.403519825],[-58.597950138,-34.385784534],[-58.622450959,-34.37358143],[-58.631139164,-34.367639814],[-58.642882183,-34.35710008],[-58.655688978,-34.340429464],[-58.666347883,-34.316440768],[-58.670136133,-34.295762939],[-58.668673688,-34.269553569],[-58.660441151,-34.244627777],[-58.6460058,-34.222703122],[-58.634765119,-34.211629208],[-58.618626807,-34.200597646],[-58.601389223,-34.18643269],[-58.579189476,-34.174420442],[-58.564667589,-34.170031308],[-58.549648869,-34.167889405],[-58.499052788,-34.16929088],[-58.492108229,-34.158742347],[-58.490508984,-34.129104846],[-58.485740321,-34.102774069],[-58.503694486,-34.093006784],[-58.519330094,-34.079746687],[-58.529097932,-34.067856629],[-58.539070741,-34.049944469],[-58.544032556,-34.0353786],[-58.546700905,-34.020223929],[-58.546472099,-33.995525207],[-58.543065948,-33.974963337],[-58.551256364,-33.937198895],[-58.554488096,-33.89674009],[-58.600551477,-33.842487663],[-58.611434666,-33.826870543],[-58.634133755,-33.780797616],[-58.647004654,-33.726289105],[-58.649054821,-33.711157674],[-58.649242548,-33.67766174],[-58.639504234,-33.592678249],[-58.636062004,-33.578433727],[-58.63171729,-33.567318723],[-58.635633251,-33.534314674],[-58.631406081,-33.484501128],[-58.617820139,-33.421666993],[-58.599266587,-33.368516381],[-58.574413029,-33.319469342],[-58.565897226,-33.307025272],[-58.528679571,-33.262107751],[-58.533134485,-33.236414149],[-58.531742353,-33.206541175],[-58.529323932,-33.19027708],[-58.521383911,-33.156354345],[-58.526847357,-33.143260513],[-58.530636793,-33.128019026],[-58.531526615,-33.101906265],[-58.526944421,-33.07745946],[-58.521770834,-33.062529486],[-58.514310127,-33.048600811],[-58.501307233,-33.030549481],[-58.485403111,-33.013599005],[-58.467648437,-33.00097892],[-58.452764942,-32.994207712],[-58.41699834,-32.981349639],[-58.401469308,-32.977142317],[-58.390828001,-32.975747185],[-58.374739231,-32.975809245],[-58.258761754,-32.991780085],[-58.259010875,-32.969926307],[-58.254956602,-32.942585641],[-58.251208776,-32.926832255],[-58.246105674,-32.913217555],[-58.259617936,-32.891930239],[-58.27150261,-32.867136575],[-58.276511373,-32.851964594],[-58.291232609,-32.745620229],[-58.310469779,-32.672167817],[-58.322726799,-32.538313946],[-58.318784346,-32.473457279],[-58.31359464,-32.454084028],[-58.28737902,-32.395201031],[-58.275279464,-32.378281234],[-58.25994128,-32.364230649],[-58.251260369,-32.358476904],[-58.237236331,-32.351614394],[-58.222315045,-32.347018427],[-58.206860245,-32.344801037],[-58.191248667,-32.345016277],[-58.180941905,-32.346511087],[-58.165912406,-32.350739782],[-58.15342633,-32.356403276]],[[-64.073310706,-42.523136468],[-64.107589456,-42.53069955],[-64.122603687,-42.532589951],[-64.182404745,-42.530019398],[-64.172749975,-42.535134056],[-64.146911946,-42.552225567],[-64.130069798,-42.56635853],[-64.110303066,-42.592135004],[-64.101354847,-42.610977958],[-64.097322127,-42.626106958],[-64.095700353,-42.64167999],[-64.096529283,-42.657315282],[-64.099788596,-42.672629536],[-64.10539839,-42.687247322],[-64.113221141,-42.700810288],[-64.123065075,-42.712985938],[-64.13483337,-42.723581072],[-64.136032465,-42.727468335],[-64.122892721,-42.739521548],[-64.088007632,-42.778661392],[-64.054815569,-42.766592786],[-64.043720657,-42.763888285],[-64.011110029,-42.759827813],[-63.950387105,-42.759633071],[-63.761580509,-42.727604049],[-63.733234817,-42.717760073],[-63.731688859,-42.696789465],[-63.725874933,-42.676823842],[-63.707516627,-42.6322014],[-63.683895193,-42.592024944],[-63.681193722,-42.583455946],[-63.697475719,-42.444117005],[-63.691114905,-42.346764789],[-63.694097635,-42.334670565],[-63.713330454,-42.321429674],[-63.733141117,-42.304760698],[-63.740728371,-42.29758671],[-63.750605531,-42.285442325],[-63.758466438,-42.271905319],[-63.767195666,-42.251352255],[-63.77383685,-42.228624672],[-63.794423357,-42.188216144],[-63.803111476,-42.177027846],[-63.809182496,-42.172438613],[-63.843791131,-42.18012533],[-63.917527341,-42.205375188],[-63.971481413,-42.234676041],[-63.952121329,-42.281460296],[-63.945790063,-42.314829467],[-63.946409688,-42.336283889],[-63.952062246,-42.358390886],[-63.952766203,-42.387575284],[-63.959296839,-42.412944832],[-63.970664015,-42.435037754],[-63.980418978,-42.449033775],[-63.991562867,-42.461289021],[-64.020704676,-42.48371936],[-64.03274266,-42.498407058],[-64.044883628,-42.508786374],[-64.058522299,-42.517100215],[-64.073310706,-42.523136468]]],[[[-58.251505018,-34.191333532],[-58.257094741,-34.190234303],[-58.259853959,-34.175694108],[-58.265737652,-34.167930961],[-58.265803814,-34.164608478],[-58.247214437,-34.168048858],[-58.244910359,-34.174237728],[-58.243333459,-34.175335169],[-58.242628812,-34.185976029],[-58.245695234,-34.189400673],[-58.251505018,-34.191333532]]]]}
}'

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response will be:

{
  "numFlags": 19,
  "numVessels": 1256,
  "numEvents": 295713,
  "flags": [
    "KIR",
    "ARE",
    "CHN",
    "GBR",
    "KOR",
    "VUT",
    "UKR",
    "ESP",
    "CHL",
    "RUS",
    "unknown",
    "LKA",
    "BLZ",
    "URY",
    "TWN",
    "FLK",
    "AFG",
    "JPN",
    "PRT",
    "ARG"
  ],
  "timeseries": [
    {
      "date": "2018-01-01T00:00:00.000Z",
      "value": 54140
    },
    {
      "date": "2019-01-01T00:00:00.000Z",
      "value": 54359
    },
    {
      "date": "2020-01-01T00:00:00.000Z",
      "value": 52382
    },
    {
      "date": "2021-01-01T00:00:00.000Z",
      "value": 68233
    },
    {
      "date": "2022-01-01T00:00:00.000Z",
      "value": 60836
    },
    {
      "date": "2023-01-01T00:00:00.000Z",
      "value": 5763
    }
  ]
}

EXAMPLE 3 - GET PORT VISITS STATS IN A REGION ID (SENEGAL)

curl --location --request POST 'https://gateway.api.globalfishingwatch.org/v2/events/stats' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {access-token}'
--header 'Content-Type: application/json' \
--data-raw '{
    "confidences": [ "3","4"],
    "datasets": [ "public-global-port-visits-c2-events:latest"],
    "startDate": "2018-01-01",
    "endDate": "2019-01-31",
    "timeseriesInterval": "year",
    "region":  {
        "dataset": "public-eez-areas",
        "id": 8371
    }
}
'

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response will be:

{
  "numFlags": 0,
  "numVessels": 762476,
  "numEvents": 18081901,
  "flags": ["unknown"],
  "timeseries": [
    {
      "date": "2018-01-01T00:00:00.000Z",
      "value": 16691646
    },
    {
      "date": "2019-01-01T00:00:00.000Z",
      "value": 1390255
    }
  ]
}

Events Stats POST v2 - HTTP Request

POST /v2/events/stats

Events Stats POST v2 - URL Parameters

It has no query param. All parameters should be sent in the body.

Name In Type Required Description
body body EventsStatsBodyDto true none

Events Stats POST v2 - Responses

Status Meaning Description Schema
201 Created Event Stats Response EventsStatsV2
401 Unauthorized. No Unauthorized. Error Codes
403 Forbidden You do not have permissions to do the action. Error Codes
422 Unprocessable Entity Unprocessable Entity. Validation error. Error Codes
500 Internal Server Error Server side issue. Please contact us at [email protected] Error Codes

Schema - V2

Stats Response - V2

[
  {
    "activityHours": 0,
    "flags": 0,
    "maxLat": 0,
    "maxLon": 0,
    "minLat": 0,
    "minLon": 0,
    "vesselIds": 0
  }
]

4Wings Stats response

Stats response Properties - V2

Name Type Required Restrictions Description
activityHours number false none Total activity hours (if field is requested). For AIS, total fishing effort in hours.
flags number false none Total different flags (if field is requested).
maxLat number false none Maximum latitude with data
maxLon number false none Maximun longitude with data
minLat number false none Minimum latitude with data
minLon number false none Minimum longitude with data
vesselIds number false none Total different vessel ids (if field is requested). Please refer to Key Concept section to understand what a "vessel id" means.

Events Stats Body Dto - V2

{
  "confidences": ["3", "4"],
  "datasets": [
    "public-global-fishing-events:latest",
    "public-global-encounter-events:latest"
  ],
  "duration": 30,
  "encounterTypes": ["carrier-fishing", "fishing-carrier"],
  "endDate": "2020-02-01",
  "flags": ["ESP"],
  "gapIntentionalDisabling": true,
  "geometry": {},
  "region": {},
  "startDate": "2020-01-01",
  "timeseriesInterval": "day",
  "types": ["fishing"],
  "vesselGroups": ["1", "2"],
  "vesselTypes": ["carrier"],
  "vessels": [
    "8c7304226-6c71-edbe-0b63-c246734b3c01",
    "6583c51e3-3626-5638-866a-f47c3bc7ef7c"
  ]
}

Events Stats Body Properties - V2

Name Type Required Restrictions Description
confidences [string] false none This param applies only to port visits events, check data caveats to understand the different levels. Values go from 2 to 4, where 2 is low confidence, 3 is medium and 4 is high confidence. Possible values: 2, 3, 4
datasets [string] true none Specify the datasets that will be used to search the vessel. You can learn more about which are the possible datasets here. You can send several datasets.
duration number false none Min duration, in minutes, of the event
encounterTypes [string] false none This param applies only to encounter events. Possible values: carrier-fishing, fishing-carrier, fishing-support, support-fishing
flags [string] false none Flags in format ISO3.
gapIntentionalDisabling boolean false none Flag to specify if you want to get those gaps that were intentional or not true means that the gap was intentional, false means that the gap was not intentional. If the flag is not present, then the response contains all gaps.
geometry object false none Geojson of the region to filter
region object false none Geojson of the region to filter. You can send the region id, you can get it from Reference Data
startDate string false none Start date in format YYYY-MM-DD of the start date of the event (inclusive). If it is not specified, by default it returns all available data. For AIS it is from 2012 until 3 days ago.
endDate string false none End date in format YYYY-MM-DD of the end date of the event (exclusive)
timeseriesInterval string true none Time series granularity. Options hour,day,month,year
types [string] false none Event types. Possible values: port, encounter, loitering, gap_start, gap, port_visit
vesselGroups [string] false none Ids of vessel-groups
vesselTypes [string] false none Vessel types. Possible values: fishing, carrier, support, passenger, other_non_fishing, seismic_vessel, bunker_or_tanker, cargo
vessels string false none List of vessel ids. You can get this information using the search endpoints

Enumerated Values - V2

Property Value
timeseriesInterval hour
timeseriesInterval day
timeseriesInterval month
timeseriesInterval year

Events Stats V2

{
  "flags": ["ESP"],
  "numEvents": 20,
  "numFlags": 2,
  "numVessels": 10,
  "timeseries": [
    {
      "date": "",
      "value": 2
    }
  ]
}

Event Stats V2 - Properties

Name Type Required Restrictions Description
flags [string] true none Distinct flags
numEvents number true none Number of events
numFlags number true none Number of distinct vessel flags
numVessels number true none Number of distinct vessels
timeseries [Timeseries] true none Timeseries

Timeseries v2

{
  "date": "",
  "value": 2
}

Time series v2 Properties

Name Type Required Restrictions Description
date string(date-time) true none Date
value number true none Number of distinct vessel flags

Event Stats

{
  "end": "2020-11-01T00:00:00.000Z",
  "interval": "month",
  "series": {
    "counts": [
      [10, 20, 38, 26],
      [58, 12, 34, 7]
    ],
    "labels": ["encounter", "loitering", "port_visit"]
  },
  "start": "2012-01-01T00:00:00.000Z"
}

Event Stats v2 Properties

Name Type Required Restrictions Description
end string true none none
interval string true none none
series Series true none none
start string true none none

Series

{
  "counts": [
    [10, 20, 38, 26],
    [58, 12, 34, 7]
  ],
  "labels": ["encounter", "loitering", "port_visit"]
}

Series v2 Properties

Name Type Required Restrictions Description
counts [number] true none none
labels [string] true none none

UnauthorizedStandardException

{
  "error": "Unauthorized",
  "messages": [
    {
      "detail": "No authorized",
      "title": "Unauthorized"
    }
  ],
  "statusCode": 401
}

UnauthorizedStandardException v2 Properties

Name Type Required Restrictions Description
error string true none none
messages string true none none
statusCode number true none none

UnprocessableEntityStandardException

{
  "error": "Unprocessable Entity",
  "messages": [
    {
      "detail": "Validation error",
      "title": "Unprocessable Entity"
    }
  ],
  "statusCode": 422
}

UnprocessableEntityStandardException v2 Properties

Name Type Required Restrictions Description
error string true none none
messages string true none none
statusCode number true none none

ForbiddenStandardException

{
  "error": "Forbidden",
  "messages": [
    {
      "detail": "You do not have permissions to do the action",
      "title": "Forbidden"
    }
  ],
  "statusCode": 403
}

ForbiddenStandardException v2 Properties

Name Type Required Restrictions Description
error string true none none
messages string true none none
statusCode number true none none

ServerUnavailableStandardException

{
  "error": "Service Unavailable",
  "messages": [
    {
      "detail": "Service unavailable",
      "title": "Service Unavailable"
    }
  ],
  "statusCode": 503
}

ServerUnavailableStandardException v2 Properties

Name Type Required Restrictions Description
error string true none none
messages string true none none
statusCode number true none none

General API Documentation - V2

API DATASET and VESSEL ID - V2

API DATASET - V2

API dataset is a key parameter to identify which data you are requesting.

Global Fishing Watch is harnessing innovative technology to turn transparent data into actionable information and drive tangible change in the way that our ocean is governed. Data accessed through ​​the Global Fishing Watch APIs is as accurate as possible, but should be used with the data caveats described in each dataset in mind.

API Dataset for 4Wings API Description
public-global-fishing-effort:latest AIS apparent fishing effort, check more detail about data caveats here
API Dataset for Events API Description
public-global-encounters-events:latest AIS Encounters events between carrier and fishing vessels. Check more detail about data caveats here
public-global-loitering-events-carriers:latest AIS Loitering events for carriers. Check more detail about data caveats here
public-global-fishing-events:latest AIS apparent fishing events. Check more detail about data caveats here
public-global-port-visits-c2-events:latest AIS port visits. Check more detail about data caveats here
API Dataset for Vessels API Description
public-global-fishing-vessels:latest Fishing vessels based on AIS. You can use these fields to search in the Vessels API: vessel_id, flag and geartype. Check more detail about data caveats here
public-global-carrier-vessels:latest Carriers vessels based on AIS data. You can use these fields to search in the Vessels API: id, lastTransmissionDate, firstTransmissionDate, shipname and imo.. Check more detail about data caveats here
public-global-support-vessels:latest Support vessels based on AIS. You can use these fields to search in the Vessels API: id, flag, lastTransmissionDate, firstTransmissionDate, shipname, mmsi, callsign and imo. Check more detail about data caveats here

API DATASETS SPECIFIC VERSIONS - V2

When you are sending latest alias, you still get the detail of the specific API Dataset in the header of the response, for example:

In case you want to request an specific version of the API Dataset, this is the list of available versions:

4Wings API Description
public-global-fishing-effort:v20201001 AIS apparent fishing effort generated using GFW (Global Fishing Watch) Data Pipeline version 20201001
Events API Description
public-global-encounters-events:v20201001 AIS Encounters events generated using GFW Data Pipeline version 20201001
public-global-loitering-events-carriers:v20201001 AIS Loitering events for carriers generated using GFW Data Pipeline version 20201001
public-global-fishing-events:v20201001 AIS apparent fishing events generated using GFW Data Pipeline version 20201001
public-global-port-visits-c2-events:v20201001 AIS port visits generated using GFW Data Pipeline version 20201001
Vessels API Description
public-global-carrier-vessels:v20201001 Carriers vessels generated using GFW Data Pipeline version 20201001
public-global-support-vessels:v20201001 Support vessels generated using GFW Data Pipeline version 20201001
public-global-fishing-vessels:v20201001 Fishing vessels generated using GFW Data Pipeline version 20201001

API DATASETS VERSIONING - V2

VESSEL ID - V2

A unique vessel identity developed for internal use by Global Fishing Watch and API users, that combines available vessel identifiers such as name, callsign, and Maritime Mobile Service Identity (MMSI) in order to identify vessels that may not consistently transmit AIS, or the same identifiers on AIS, over time.

Errors Codes - V2

The GFW API uses the following error codes:

Range Description
2XX Successful execution
4XX Error on the client side
5XX Errors on the server side
Code Meaning
200 OKAY - The request has succeeded.
202 Accepted - The request has been accepted for processing, but the processing has not been completed.
204 No content - The server has successfully fulfilled the request and that there is no additional content to send in the response payload body.For example when you ask for an empty tile in /4wings/tile/heatmap/
401 Unauthorized - Your API Access Token is wrong or your don't have permissions to access that dataset.
403 Forbidden - The server understood the request but refuses to authorize it.
404 Not Found - The specified data could not be found.
422 Unprocessable Entity -The server understands the content type of the request entity, and the syntax of the request entity is correct but was unable to process the contained instructions. For example, this error condition may occur if a a user requests in /4wings/tile/heatmap/ a zoom greater than 12 since it is semantically erroneous, we only support up to zoom level 12.
429 Too Many Requests - The server received more request that the user can do. For example, this error condition may occur if a user tries to do several reports at the same time.
503 Service Unavailable - We're temporarily offline for maintenance. Please try again later or contact us in [email protected]

Error Code Examples

If you are asking for a wrong API dataset, you get this error:

{
  "statusCode": 404,
  "error": "Not Found",
  "messages": [
    {
      "title": "Not Found",
      "detail": "Dataset with id public-global-fishing-effort:latest not found"
    }
  ]
}

If you are missing one mandatory field, for a example 'Query', you get this error:

{
  "statusCode": 422,
  "error": "Unprocessable Entity",
  "messages": [
    {
      "title": "Query",
      "detail": "Query param dataset is required"
    }
  ]
}

If you have insufficient permissions, you get this error:

{
  "statusCode": 403,
  "error": "Forbidden",
  "messages": [
    {
      "title": "Forbidden",
      "detail": "Insufficient permissions for public-global-fishing-effort:latest datasets"
    }
  ]
}

If you send zoom > 12 in /4wings/tile/heatmap/, you get this error:

{
  "statusCode": 422,
  "error": "Unprocessable Entity",
  "messages": [
    {
      "title": "z",
      "detail": "The tiler does not support zoom levels greater than 12"
    }
  ]
}

If you send a report at the same time that you doing other report, you get this error:

{
  "statusCode": 429,
  "error": "Too Many Requests",
  "messages": [
    {
      "title": "Too Many Requests",
      "detail": "You can only generate one report at the same time. If you need this feature, contact us"
    }
  ]
}

If you try to generate a style url (/v2/4wings/generate-png) and it doesn't exist data for the filters.`, you get this error:

{
  "statusCode": 204
}

In 4Wings Report API, if you are sending a custom polygon that is too large, you get this error in html. In this case, we recommend sending a region id, see more details here

<html>
  <head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8" />
    <title>413 Request Entity Too Large</title>
  </head>
  <body text="#000000" bgcolor="#ffffff">
    <h1>Error: Request Entity Too Large</h1>
    <h2>Your client issued a request that was too large.</h2>
    <h2>
      <script>
        (function () {
          /*

 Copyright The Closure Library Authors.
 SPDX-License-Identifier: Apache-2.0
*/
          var c = function (a, d, b) {
            a = a + "=deleted; path=" + d;
            null != b && (a += "; domain=" + b);
            document.cookie = a + "; expires=Thu, 01 Jan 1970 00:00:00 GMT";
          };
          var g = function (a) {
            var d = e,
              b = location.hostname;
            c(d, a, null);
            c(d, a, b);
            for (var f = 0; ; ) {
              f = b.indexOf(".", f + 1);
              if (0 > f) break;
              c(d, a, b.substring(f + 1));
            }
          };
          var h;
          if (4e3 < unescape(encodeURI(document.cookie)).length) {
            for (
              var k = document.cookie.split(";"), l = [], m = 0;
              m < k.length;
              m++
            ) {
              var n = k[m].match(/^\s*([^=]+)/);
              n && l.push(n[1]);
            }
            for (var p = 0; p < l.length; p++) {
              var e = l[p];
              g("/");
              for (var q = location.pathname, r = 0; ; ) {
                r = q.indexOf("/", r + 1);
                if (0 > r) break;
                var t = q.substring(0, r);
                g(t);
                g(t + "/");
              }
              "/" != q.charAt(q.length - 1) && (g(q), g(q + "/"));
            }
            h = !0;
          } else h = !1;
          h &&
            setTimeout(function () {
              if (history.replaceState) {
                var a = location.href;
                history.replaceState(null, "", "/");
                location.replace(a);
              }
            }, 1e3);
        })();
      </script>
    </h2>
  </body>
</html>

Most error responses have this format, except when the request entity is too large (see example on the right):

{

"statusCode": 4XXX or 5XXX,

"messages": [{ "title": "[Title]", "detail": "[Detail]" }],

"error": "[Generic error]"

}

Response - V2

Example of a single resource in Vessel API:

    {
        "callsign": "",
        "firstTransmissionDate": "2018-11-06T13:05:41Z",
        "flag": "ESP",
        "geartype": "trawlers",
        "id": "ec6fa45c2-2b0e-0c0d-a194-13d12f30b2c6",
        "imo": null,
        "lastTransmissionDate": "2022-01-03T07:01:35Z",
        "mmsi": "224334460",
        "msgCount": 26199,
        "normalizedShipname": "CARLOS",
        "posCount": 7275,
        "shipname": "CARLOS",
        "source": "AIS",
        "vesselType": "Fishing",
        "dataset": "public-global-fishing-vessels:v20201001",
    }

Example of a collection of resource in Vessel Search API:

{
    "total": 23,
    "limit": 10,
    "offset": 0,
    "nextOffset": 10,
    "metadata": {
        "suggestion": null,
        "query": "Don Carlos"
    },
    "entries": [
        {
            "callsign": "",
            "firstTransmissionDate": "2018-11-06T13:05:41Z",
            "flag": "ESP",
            "geartype": "trawlers",
            "id": "ec6fa45c2-2b0e-0c0d-a194-13d12f30b2c6",
            "imo": null,
            "lastTransmissionDate": "2022-01-03T07:01:35Z",
            "mmsi": "224334460",
            "msgCount": 26199,
            "normalizedShipname": "CARLOS",
            "posCount": 7275,
            "shipname": "CARLOS",
            "source": "AIS",
            "vesselType": "Fishing",
            "dataset": "public-global-fishing-vessels:v20201001",
            "score": 11.524361
        },
        {...},
    ]
}

Responses varies in case of:

  1. a single resource, the API returns the result directly.

  2. a collection of resources, the API returns the next response format (except in the case that the response is not a JSON)

Data caveat - V2

These data caveats are applicable to the API datasets specified in the section titled Specific API Datasets in v2, and this is why they bear "v2" (Version 2) in their titles.

How are the events estimated? (v2)

The automatic identification system (AIS) data is obtained from a combination of commercial and government sources. Learn more. The data is then used to estimate vessel identity and activity, including apparent fishing,encounters, loitering events, and port visits.

Any and all references to activity events, including fishing, encounters, loitering, and port visits should be understood in the context of Global Fishing Watch's algorithms, which are best efforts to determine apparent vessel activity events based on AIS data collected via satellites and terrestrial receivers. As AIS data varies in completeness, accuracy and quality, it is possible that some events are not identified. It is also possible that some events are identified but are incorrect or do not indicate actual fishing, transshipment, or port access. For these reasons, Global Fishing Watch qualifies all designations of events, including synonyms of event terms such as "fishing effort," "fishing" or "fishing activity," as apparent rather than certain. Any/all Global Fishing Watch information about apparent events should be considered an estimate and must be relied upon solely at your own risk. Global Fishing Watch is constantly improving processes to make sure event algorithms and designations are as accurate as possible.

Encounter event (v2)

Encounters may indicate potential transshipment activity between two vessels. Encounters can occur in the vessel viewer between a carrier and fishing vessel or a fishing support vessel and a fishing vessel. AIS data is used to calculate encounters based on the distance between the two vessels, vessel speeds, and duration in a given area. An encounter is defined as a period when two vessels are detected within 500 meters of each other for at least two hours and traveling at a median speed of less than 2 knots, while at least 10 km from a coastal anchorage. Check more details here

You can read more about transshipment behavior from our report or scientific publication.

Loitering event (v2)

Loitering is when a single vessel exhibits behavior indicative of a potential encounter event. It is possible that loitering events do not indicate a potential transshipment. For example, other events in which a vessel may remain fairly stationary include maintenance or waiting outside of port for permission to dock. AIS data is used to calculate loitering events based on vessel speed and distance from shore. Loitering occurs when a carrier vessel travels at an average speed of less than 2 knots, while at least an average of 20 nautical miles from shore. Loitering events are not displayed for fishing vessels, due to the challenge in distinguishing loitering from other low speed operations related to fishing activity. Due to the individual definitions of loitering events and encounter events, it is possible for a loitering event to overlap with an encounter event, representing the same activity, or the loitering event may encompass one or more encounter events.

Check more details here

Port visit events (v2)

Movements in and out of a port are automatically detected by Global Fishing Watch and categorized according to four distinct types of events: port entry, port stop, port gap (i.e. a gap in AIS transmission while in port) and port exit. When at least two of these events occur, then a port visit is detected. Therefore, a port visit occurs when a vessel has a port entry, a port stop or port gap, and potentially followed by a port exit event, depending on the confidence of the port visit (see next question on how port visit confidence is determined). This means the vessel is within 3 km of an anchorage (port entry), and is moving between 0.5 and 0.2 knots (port stop), or is within an anchorage but has a gap in AIS transmission for at least 4 hours (port gap), and then the vessel transits more than 4 km outside of the anchorage point (port exit). Ports are based upon the Global Fishing Watch anchorages dataset, a global database of anchorage locations where vessels congregate. More information on anchorages can be found here.

Confidence levels of a port visit (v2)

Definition of each por event:

Apparent fishing events (v2)

Global Fishing Watch analyzes AIS data collected from vessels that our research has identified as known or possible commercial fishing vessels, and applies a fishing detection algorithm to determine “apparent fishing activity” based on changes in vessel speed and direction. The algorithm classifies each AIS broadcast data point for these vessels as either apparently fishing or not fishing and shows the apparent fishing effort on the Global Fishing Watch map. Fishing events use those data points as input and summarize them into one event for easier analysis. Fishing events are defined using the following restrictions:

  1. Consecutive positions identified as fishing are grouped together into a single event

  2. Fishing positions which appear consecutively, but are 10 km apart or more than 2 hours apart are separated into distinct events.

  3. Fishing events within 1 hour and 2 km of another fishing event but possibly having intermittent transit points are grouped together into a single event.

Finally, the dataset is restricted by removing fishing events that are brief and fast, as these are less likely to indicate a realistic fishing event. The following short fishing events are removed:

Check more details about difference between fishing effort and fishing events here

Vessel Types (v2)

For vessel type a research and analysis is conducted in addition to using the original AIS data to identify the most likely value. Global Fishing Watch developed a carrier database that is curated using a combination of sources, including: major RFMO vessel registry lists, publicly available national registries, the IMO number, and a convolutional neural network—machine learning algorithm—used to estimate vessel class, as well as web and search images. The fishing vessels identified from Global Fishing Watch come from its fishing database, which is collated using vessel registry databases, reported AIS identity information, and estimated classification using a machine learning algorithm. All support vessels in Vessel Viewer are considered purse seine support vessels based on internal review. Learn more about Global Fishing Watch vessel classes here.

Why am I seeing multiple outputs when I search for a vessel? (v2)

When processing AIS positions Global Fishing Watch algorithms try to match AIS position messages with AIS self-reported identity messages to assign vessel tracks throughout time to the correct vessel identity. When there is a new identity reported, Global Fishing Watch creates a new record.Often times, a new identity is reported when a vessel does have a real identity change (e.g, the vessel went to port where it changed its flag State and name). However, there are instances when the vessel simply changes the way it is transmitting on AIS. For example, a vessel will often transmit its name, IMO, MMSI, and callsign, but for a period of time it only transmits its MMSI and not the other identity values, which results in multiple identities for a single vessel.

  1. Search by Name = GABU REEFER and IMO = 8300949
  2. Vessel Viewer will return two results:
Result order Name IMO MMSI CALL SIGN AIS TRANSMISSIONS
First GABU REEFER 8300949 214182732 ER2732 Feb 22 2019 to Sept 19 2021
Second GABU REEFER 8300949 616852000 D6FJ2 Jan 02 2012 to Feb 23 2019
  1. In this example even though they are the same physical vessel, the identity reported is different.
  2. The two records show the vessel under the same IMO, however the vessel did not consistently transmit the same identity values. In the second example, the vessel was likely transmitting under a different MMSI, different call sign and possibly a different owner.

Exclusive economic zone boundaries definition (v2)

Exclusive economic zones (EEZs) extend up to 200 nautical miles from a country's coast. EEZ boundaries are shown as solid lines for “200 NM”, “Treaty”, “Median line”, “Joint regime”, “Connection Line”, “Unilateral claim (undisputed)” and dashed lines for “Joint regime”, “Unsettled”, “Unsettled median line” based on the “LINE_TYPE” field. For more detail on the methodology to create these boundaries, check https://marineregions.org/eezmethodology.php Source: marineregions.org. Flanders Marine Institute (2019). Maritime Boundaries Geodatabase: Maritime Boundaries and Exclusive Economic Zones (200NM), version 11.

Marine protected area boundaries definition (v2)

Marine protected areas (MPAs) are areas of the ocean set aside for long-term conservation. These can have different levels of protection, and the range of activities allowed or prohibited within their boundaries varies considerably. Source: World Database on Protected Areas.

What does it mean if an event is within a specific geographic area, such as an EEZ,MPA or RFMO? (v2)

An event is considered to occur within a specific geographic area if the bounding box created for the event location— based on the minimum and maximum coordinates—overlaps with the bounding box of the geographic area (the area is based on external sources specified under the Map section of the FAQ). For example, if you select Argentina EEZ and Chile EEZ under the Fishing Events activity highlights, you will see all fishing events where the bounding box created by minimum and maximum coordinates of the events occurred within the minimum and maximum coordinates of the Argentina EEZ or within the Chile EEZ. Because a bounding box method is used, it is possible the actual track coordinates do not overlap with the EEZ. Please investigate the highlighted events further on the map.

Exclusive economic zone boundaries definitions (v2)

Exclusive economic zones (EEZs) extend up to 200 nautical miles from a country's coast. For more detail on the methodology to create these boundaries, check https://marineregions.org/eezmethodology.php Source: marineregions.org. Flanders Marine Institute (2019). Maritime Boundaries Geodatabase: Maritime Boundaries and Exclusive Economic Zones (200NM), version 11.

Marine protected area boundaries definition (v2)

Marine protected areas (MPAs) are areas of the ocean set aside for long-term conservation. These can have different levels of protection, and the range of activities allowed or prohibited within their boundaries varies considerably. Source: World Database on Protected Areas. Last updated: May 2021.

Reference Data - V2

GEAR TYPES SUPPORTED (v2)

You can use the following list to filter fishing effort or other data by gear type. For more details, check our data caveats here.

REGIONS (v2)

GET LIST OF EEZs


curl --location --request GET 'https://gateway.api.globalfishingwatch.org/v2/datasets/public-eez-areas/user-context-layers' \
  -H "Authorization: Bearer [TOKEN]"

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response returns:

[
  {
          "id": 5670,
          "iso3": "ALB",
          "label": "Albanian Exclusive Economic Zone"
      },
      {
          "id": 8378,
          "iso3": "DZA",
          "label": "Algerian Exclusive Economic Zone"
      },
      {
             "id": 5690,
             "iso3": "RUS",
             "label": "Russian Exclusive economic Zone"
         },
    {
      ...
    },
]

GET LIST OF MPAs


curl --location --request GET 'https://gateway.api.globalfishingwatch.org/v2/datasets/public-mpa-all/user-context-layers' \
  -H "Authorization: Bearer [TOKEN]"

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response returns:

[
    {
        "id": "555512344",
        "label": "100_Daeseom"
    },
    {
        "id": "555512376",
        "label": "101_Hogamseom"
    },
    {
        "id": "555512360",
        "label": "102_Galmaeseom"
    },
    {
        ...
    },
]

GET LIST OF RFMOs


curl --location --request GET 'https://gateway.api.globalfishingwatch.org/v2/datasets/public-rfmo/user-context-layers' \
  -H "Authorization: Bearer [TOKEN]"

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response returns:

[
  {
    "id": "APFIC",
    "label": "APFIC"
  },
  {
    "id": "BOBP-IGO",
    "label": "BOBP-IGO"
  },
  {
    "id": "CCAMLR",
    "label": "CCAMLR"
  },
  {
    "id": "CCBSP",
    "label": "CCBSP"
  },
  {
    "id": "CCSBT",
    "label": "CCSBT"
  },
  {
    "id": "CCSBT Primary Area",
    "label": "CCSBT Primary Area"
  },
  {
    "id": "COREP",
    "label": "COREP"
  },
  {
    "id": "CPPS",
    "label": "CPPS"
  },
  {
    "id": "CRFM",
    "label": "CRFM"
  },
  {
    "id": "CTMFM",
    "label": "CTMFM"
  },
  {
    "id": "FCWC",
    "label": "FCWC"
  },
  {
    "id": "FFA",
    "label": "FFA"
  },
  {
    "id": "GFCM",
    "label": "GFCM"
  },
  {
    "id": "IATTC",
    "label": "IATTC"
  },
  {
    "id": "ICCAT",
    "label": "ICCAT"
  },
  {
    "id": "ICES",
    "label": "ICES"
  },
  {
    "id": "IOTC",
    "label": "IOTC"
  },
  {
    "id": "IPHC",
    "label": "IPHC"
  },
  {
    "id": "LTA",
    "label": "LTA"
  },
  {
    "id": "NAFO",
    "label": "NAFO"
  },
  {
    "id": "NAMMCO",
    "label": "NAMMCO"
  },
  {
    "id": "NASCO",
    "label": "NASCO"
  },
  {
    "id": "NEAFC",
    "label": "NEAFC"
  },
  {
    "id": "NPAFC",
    "label": "NPAFC"
  },
  {
    "id": "NPFC",
    "label": "NPFC"
  },
  {
    "id": "OSPESCA",
    "label": "OSPESCA"
  },
  {
    "id": "PERSGA",
    "label": "PERSGA"
  },
  {
    "id": "PICES",
    "label": "PICES"
  },
  {
    "id": "RECOFI",
    "label": "RECOFI"
  },
  {
    "id": "SEAFDEC",
    "label": "SEAFDEC"
  },
  {
    "id": "SIOFA",
    "label": "SIOFA"
  },
  {
    "id": "SPC",
    "label": "SPC"
  },
  {
    "id": "SPRFMO",
    "label": "SPRFMO"
  },
  {
    "id": "SRFC",
    "label": "SRFC"
  },
  {
    "id": "SWIOFC",
    "label": "SWIOFC"
  },
  {
    "id": "WCPFC",
    "label": "WCPFC"
  }
]

There are two endpoints that uses regions ids:

In order to get the details of those regions, call the endpoints described on the right.

You can check the source we use for those regions in our data caveats.

SDK - V2

gfwr using API Version 2

Global Fishing Watch enables the research community to access data from its application programming interfaces, or APIs, directly through R—a specialized programming language for data processing, statistical analysis and data visualizations.

The package, called gfwr, allows R users to request data from Global Fishing Watch’s APIs and receive data in a tidy format suitable for incorporation into new or existing R workflows.

Installing gfwr gives academics, researchers, students and journalists the ability to easily pull data for analysis without any prior API experience.

To install the previous version that communicated with API version 2, please refer to branch APIv2 in this repository.

remotes::install_github("GlobalFishingWatch/gfwr", ref = "APIv2")

To learn more about gfwr, visit: Github gfwR official page

Version 3 API

We release a new version of our API (version 3) that includes several enhancements and features to improve your experience and enable even greater integration possibilities.

For more details, check the release notes

Get your GFW Postman collection for Version 3

You can download our Postman collection for Version 3 here to test some of the endpoints.

Remember to:

Map Visualization - 4Wings API

4Wings introduction

4Wings API (aka Map Visualization) allows you to get fast visualisation, navigation and analysis for gridded spatiotemporal datasets.You can:

Create a style for generate PNG tiles

A Style is a document that defines the visual appearance of a map, in this case the map will be in PNG format, it includes what data to draw, the order to draw it in, and how to style the data when drawing it.

You can find on the right, two examples using AIS apparent fishing effort:

You can find on the right, two examples using SAR (Synthetic-aperture radar) vessel detections:

Generate PNG - HTTP Request

POST https://gateway.api.globalfishingwatch.org/v3/4wings/generate-png

Generate PNG - URL Parameters

Parameter Description Required Format Param Type
color Color in hexadecimal used to generate the color ramp. If you don't send this information, by default the color will be #002457.Default value: #002457 False string query
interval Tiles are available at several time resolutions (hourly, daily, monthly and 10 days), it means one frame every one hour, one day or 10 days. For each resolution, the the max displayable length items: 1 hour: 20 days, 1 day: 1 year and 10 days: several years depending on the dataset for AIS Fishing effort it starts in 2012. Default value: DAY False Enum: ['10DAYS', 'DAY', 'HOUR', 'MONTH', 'YEAR'] query
datasets[0] Specify the datasets that will be used to create the style. You can learn more about which are the possible datasets here. The parameters should be defined using an index, in case only one dataset is going to be sent: ?dataset[0]=xxxxx, in case of multiple datasets: ?dataset[0]=xxxxx&dataset[1]=yyyyy Example: public-global-fishing-effort:latest or public-global-sar-presence:latest True string query
filters[0] Filters are applied to the dataset parameter with the corresponding index. For example if we want to apply a filter to dataset[0], we should apply the filter attributes to filter[0]. For AIS apparent fishing effort, the possible filters are: flag, geartype and vessel_id. Example: flag in ('ESP'). Check Gear Types supported here.. For SAR vessel detections, the available filters are: matched, flag, vessel_id, geartype, neural_vessel_type, and shiptype. Examples include matched='false', which indicates all SAR vessel detections that didn't match with an AIS vessel, and neural_vessel_type='Likely Fishing', which signifies all SAR vessel detections identified by the neural model (which only considers the thumbnails of the SAR images) as "Likely Fishing". This filter is useful for analyzing detections that did not match with AIS vessels. The neural_vessel_type filter accepts the following values: "Likely non-fishing", "Likely Fishing", or "Unknown". Check Vessel Types supported here. False string query
date-range Start date and end date to filter the data Example: 2021-01-01,2021-03-01 False string query

EXAMPLE 1: AIS APPARENT FISHING EFFORT - GENERATE PNG TILES WITH TEMPORAL FILTER

# Make sure to replace [TOKEN] with your API Access Token.

curl --location --request POST 'https://gateway.api.globalfishingwatch.org/v3/4wings/generate-png?interval=10DAYS&datasets%5B0%5D=public-global-fishing-effort:latest&color=%23361c0c&date-range=2020-01-01,2020-01-31' \
  -H "Authorization: Bearer [TOKEN]"

If the request is successful, the response will be:

{
  "colorRamp": {
    "stepsByZoom": {
      "0": [
        {
          "color": "rgba(54,28,12,102)",
          "value": 9170
        },
        {
          "color": "rgba(54,28,12,127)",
          "value": 14857
        },
        {
          "color": "rgba(54,28,12,153)",
          "value": 24449
        },
        {
          "color": "rgba(54,28,12,178)",
          "value": 37594
        },
        {
          "color": "rgba(54,28,12,255)",
          "value": 55844
        },
        {
          "color": "rgba(54,28,12,0)",
          "value": 0
        },
        {
          "color": "rgba(54,28,12,25)",
          "value": 649
        },
        {
          "color": "rgba(54,28,12,51)",
          "value": 2313
        },
        {
          "color": "rgba(54,28,12,76)",
          "value": 5164
        }
      ],
      "1": [
        {
          "color": "rgba(54,28,12,25)",
          "value": 162
        },
        {
          "color": "rgba(54,28,12,51)",
          "value": 578
        },
        {
          "color": "rgba(54,28,12,76)",
          "value": 1291
        },
        {
          "color": "rgba(54,28,12,127)",
          "value": 3714
        },
        {
          "color": "rgba(54,28,12,153)",
          "value": 6112
        },
        {
          "color": "rgba(54,28,12,255)",
          "value": 13961
        },
        {
          "color": "rgba(54,28,12,0)",
          "value": 0
        },
        {
          "color": "rgba(54,28,12,102)",
          "value": 2292
        },
        {
          "color": "rgba(54,28,12,178)",
          "value": 9398
        }
      ],
      "10": [
        {
          "color": "rgba(54,28,12,255)",
          "value": 0
        }
      ],
      "11": [
        {
          "color": "rgba(54,28,12,255)",
          "value": 0
        }
      ],
      "12": [
        {
          "color": "rgba(54,28,12,255)",
          "value": 0
        }
      ],
      "2": [
        {
          "color": "rgba(54,28,12,127)",
          "value": 928
        },
        {
          "color": "rgba(54,28,12,0)",
          "value": 0
        },
        {
          "color": "rgba(54,28,12,25)",
          "value": 40
        },
        {
          "color": "rgba(54,28,12,51)",
          "value": 144
        },
        {
          "color": "rgba(54,28,12,76)",
          "value": 322
        },
        {
          "color": "rgba(54,28,12,102)",
          "value": 573
        },
        {
          "color": "rgba(54,28,12,153)",
          "value": 1528
        },
        {
          "color": "rgba(54,28,12,178)",
          "value": 2349
        },
        {
          "color": "rgba(54,28,12,255)",
          "value": 3490
        }
      ],
      "3": [
        {
          "color": "rgba(54,28,12,127)",
          "value": 232
        },
        {
          "color": "rgba(54,28,12,153)",
          "value": 382
        },
        {
          "color": "rgba(54,28,12,178)",
          "value": 587
        },
        {
          "color": "rgba(54,28,12,255)",
          "value": 872
        },
        {
          "color": "rgba(54,28,12,76)",
          "value": 80
        },
        {
          "color": "rgba(54,28,12,25)",
          "value": 10
        },
        {
          "color": "rgba(54,28,12,51)",
          "value": 36
        },
        {
          "color": "rgba(54,28,12,102)",
          "value": 143
        },
        {
          "color": "rgba(54,28,12,0)",
          "value": 0
        }
      ],
      "4": [
        {
          "color": "rgba(54,28,12,51)",
          "value": 9
        },
        {
          "color": "rgba(54,28,12,76)",
          "value": 20
        },
        {
          "color": "rgba(54,28,12,102)",
          "value": 35
        },
        {
          "color": "rgba(54,28,12,127)",
          "value": 58
        },
        {
          "color": "rgba(54,28,12,0)",
          "value": 0
        },
        {
          "color": "rgba(54,28,12,25)",
          "value": 2
        },
        {
          "color": "rgba(54,28,12,153)",
          "value": 95
        },
        {
          "color": "rgba(54,28,12,178)",
          "value": 146
        },
        {
          "color": "rgba(54,28,12,255)",
          "value": 218
        }
      ],
      "5": [
        {
          "color": "rgba(54,28,12,178)",
          "value": 36
        },
        {
          "color": "rgba(54,28,12,255)",
          "value": 54
        },
        {
          "color": "rgba(54,28,12,25)",
          "value": 0
        },
        {
          "color": "rgba(54,28,12,51)",
          "value": 2
        },
        {
          "color": "rgba(54,28,12,76)",
          "value": 5
        },
        {
          "color": "rgba(54,28,12,102)",
          "value": 8
        },
        {
          "color": "rgba(54,28,12,127)",
          "value": 14
        },
        {
          "color": "rgba(54,28,12,153)",
          "value": 23
        }
      ],
      "6": [
        {
          "color": "rgba(54,28,12,51)",
          "value": 0
        },
        {
          "color": "rgba(54,28,12,76)",
          "value": 1
        },
        {
          "color": "rgba(54,28,12,102)",
          "value": 2
        },
        {
          "color": "rgba(54,28,12,127)",
          "value": 3
        },
        {
          "color": "rgba(54,28,12,153)",
          "value": 5
        },
        {
          "color": "rgba(54,28,12,178)",
          "value": 9
        },
        {
          "color": "rgba(54,28,12,255)",
          "value": 13
        }
      ],
      "7": [
        {
          "color": "rgba(54,28,12,127)",
          "value": 0
        },
        {
          "color": "rgba(54,28,12,153)",
          "value": 1
        },
        {
          "color": "rgba(54,28,12,178)",
          "value": 2
        },
        {
          "color": "rgba(54,28,12,255)",
          "value": 3
        }
      ],
      "8": [
        {
          "color": "rgba(54,28,12,255)",
          "value": 0
        }
      ],
      "9": [
        {
          "color": "rgba(54,28,12,255)",
          "value": 0
        }
      ]
    }
  },
  "url": "https://gateway.api.globalfishingwatch.org/v3/4wings/tile/heatmap/{z}/{x}/{y}?format=PNG&interval=10DAYS&datasets[0]=public-global-fishing-effort:latest&date-range=2020-01-01,2020-01-31&style=eyJjb2xvciI6WzU0LDI4LDEyXSwicmFtcCI6WzAsNjQ5LjY1NTI3Nzc3Nzc3ODMsMjMxMy40NTYzODg4ODg4OTE1LDUxNjQuMDg2MTExMTExMTIsOTE3MC43MjU1NTU1NTU1NiwxNDg1Ny42MDAyNzc3Nzc4MTgsMjQ0NDkuMTM5MTY2NjY2NjU3LDM3NTk0LjQ1MzMzMzMzMzM5LDU1ODQ0Ljc2NDE2NjY2NjUyXX0="
}

EXAMPLE 2: AIS APPARENT FISHING EFFORT - GENERATE PNG TILES WITH GEAR TYPE AND TEMPORAL FILTER

# Make sure to replace [TOKEN] with your API Access Token.

curl --location --request POST 'https://gateway.api.globalfishingwatch.org/
/v3/4wings/generate-png?interval=10DAYS&datasets[0]=public-global-fishing-effort:latest&filters[0]=geartype in ("tuna_purse_seines","driftnets")&date-range=2020-01-01,2020-01-31'  \
  -H "Authorization: Bearer [TOKEN]"

If the request is successful, the response will be:

{
  "colorRamp": {
    "stepsByZoom": {
      "0": [
        {
          "color": "rgba(22,63,137,25)",
          "value": 26
        },
        {
          "color": "rgba(22,63,137,102)",
          "value": 384
        },
        {
          "color": "rgba(22,63,137,255)",
          "value": 1936
        },
        {
          "color": "rgba(22,63,137,0)",
          "value": 0
        },
        {
          "color": "rgba(22,63,137,76)",
          "value": 186
        },
        {
          "color": "rgba(22,63,137,127)",
          "value": 822
        },
        {
          "color": "rgba(22,63,137,153)",
          "value": 1114
        },
        {
          "color": "rgba(22,63,137,178)",
          "value": 1502
        },
        {
          "color": "rgba(22,63,137,51)",
          "value": 88
        }
      ],
      "1": [
        {
          "color": "rgba(22,63,137,127)",
          "value": 205
        },
        {
          "color": "rgba(22,63,137,178)",
          "value": 375
        },
        {
          "color": "rgba(22,63,137,51)",
          "value": 22
        },
        {
          "color": "rgba(22,63,137,76)",
          "value": 46
        },
        {
          "color": "rgba(22,63,137,102)",
          "value": 96
        },
        {
          "color": "rgba(22,63,137,255)",
          "value": 484
        },
        {
          "color": "rgba(22,63,137,0)",
          "value": 0
        },
        {
          "color": "rgba(22,63,137,25)",
          "value": 6
        },
        {
          "color": "rgba(22,63,137,153)",
          "value": 278
        }
      ],
      "10": [
        {
          "color": "rgba(22,63,137,255)",
          "value": 0
        }
      ],
      "11": [
        {
          "color": "rgba(22,63,137,255)",
          "value": 0
        }
      ],
      "12": [
        {
          "color": "rgba(22,63,137,255)",
          "value": 0
        }
      ],
      "2": [
        {
          "color": "rgba(22,63,137,25)",
          "value": 1
        },
        {
          "color": "rgba(22,63,137,51)",
          "value": 5
        },
        {
          "color": "rgba(22,63,137,76)",
          "value": 11
        },
        {
          "color": "rgba(22,63,137,153)",
          "value": 69
        },
        {
          "color": "rgba(22,63,137,178)",
          "value": 93
        },
        {
          "color": "rgba(22,63,137,255)",
          "value": 121
        },
        {
          "color": "rgba(22,63,137,0)",
          "value": 0
        },
        {
          "color": "rgba(22,63,137,102)",
          "value": 24
        },
        {
          "color": "rgba(22,63,137,127)",
          "value": 51
        }
      ],
      "3": [
        {
          "color": "rgba(22,63,137,178)",
          "value": 23
        },
        {
          "color": "rgba(22,63,137,255)",
          "value": 30
        },
        {
          "color": "rgba(22,63,137,25)",
          "value": 0
        },
        {
          "color": "rgba(22,63,137,51)",
          "value": 1
        },
        {
          "color": "rgba(22,63,137,76)",
          "value": 2
        },
        {
          "color": "rgba(22,63,137,102)",
          "value": 6
        },
        {
          "color": "rgba(22,63,137,127)",
          "value": 12
        },
        {
          "color": "rgba(22,63,137,153)",
          "value": 17
        }
      ],
      "4": [
        {
          "color": "rgba(22,63,137,102)",
          "value": 1
        },
        {
          "color": "rgba(22,63,137,127)",
          "value": 3
        },
        {
          "color": "rgba(22,63,137,153)",
          "value": 4
        },
        {
          "color": "rgba(22,63,137,178)",
          "value": 5
        },
        {
          "color": "rgba(22,63,137,255)",
          "value": 7
        },
        {
          "color": "rgba(22,63,137,76)",
          "value": 0
        }
      ],
      "5": [
        {
          "color": "rgba(22,63,137,127)",
          "value": 0
        },
        {
          "color": "rgba(22,63,137,255)",
          "value": 1
        }
      ],
      "6": [
        {
          "color": "rgba(22,63,137,255)",
          "value": 0
        }
      ],
      "7": [
        {
          "color": "rgba(22,63,137,255)",
          "value": 0
        }
      ],
      "8": [
        {
          "color": "rgba(22,63,137,255)",
          "value": 0
        }
      ],
      "9": [
        {
          "color": "rgba(22,63,137,255)",
          "value": 0
        }
      ]
    }
  },
  "url": "https://gateway.api.globalfishingwatch.org/v3/4wings/tile/heatmap/{z}/{x}/{y}?format=PNG&interval=10DAYS&datasets[0]=public-global-fishing-effort:latest&filters[0]=geartype in (\"tuna_purse_seines\",\"driftnets\")&date-range=2020-01-01,2020-01-31&style=eyJjb2xvciI6WzIyLDYzLDEzN10sInJhbXAiOlswLDI2LjE2NjM4ODg4ODg4ODg5Myw4OC4yMjgwNTU1NTU1NTU2MSwxODYuMzI1ODMzMzMzMzMzMywzODQuODIwNTU1NTU1NTU1Niw4MjIuOTk1NTU1NTU1NTU0OCwxMTE0LjMyNDcyMjIyMjIyMjEsMTUwMi4wNjA4MzMzMzMzMzMyLDE5MzYuNzA0MTY2NjY2NjY1XX0="
}

EXAMPLE 3: SAR VESSEL DETECTIONS - GENERATE PNG TILES WITH TEMPORAL FILTER AND DAY RESOLUTION

# Make sure to replace [TOKEN] with your API Access Token.

curl --location --globoff --request POST 'https://gateway.api.globalfishingwatch.org/v3/4wings/generate-png?interval=DAY&color=%23361c0c&date-range=2020-01-01%2C2020-01-31&datasets[0]=public-global-sar-presence%3Alatest' \
  -H "Authorization: Bearer [TOKEN]"

If the request is successful, the response will be:

{
  "colorRamp": {
    "stepsByZoom": {
      "0": [
        {
          "color": "rgba(54,28,12,127)",
          "value": 1711
        },
        {
          "color": "rgba(54,28,12,153)",
          "value": 2662
        },
        {
          "color": "rgba(54,28,12,178)",
          "value": 3925
        },
        {
          "color": "rgba(54,28,12,25)",
          "value": 93
        },
        {
          "color": "rgba(54,28,12,51)",
          "value": 319
        },
        {
          "color": "rgba(54,28,12,76)",
          "value": 660
        },
        {
          "color": "rgba(54,28,12,102)",
          "value": 1108
        },
        {
          "color": "rgba(54,28,12,255)",
          "value": 6584
        },
        {
          "color": "rgba(54,28,12,0)",
          "value": 0
        }
      ],
      "1": [
        {
          "color": "rgba(54,28,12,25)",
          "value": 23
        },
        {
          "color": "rgba(54,28,12,51)",
          "value": 79
        },
        {
          "color": "rgba(54,28,12,76)",
          "value": 165
        },
        {
          "color": "rgba(54,28,12,102)",
          "value": 277
        },
        {
          "color": "rgba(54,28,12,127)",
          "value": 427
        },
        {
          "color": "rgba(54,28,12,0)",
          "value": 0
        },
        {
          "color": "rgba(54,28,12,153)",
          "value": 665
        },
        {
          "color": "rgba(54,28,12,178)",
          "value": 981
        },
        {
          "color": "rgba(54,28,12,255)",
          "value": 1646
        }
      ],
      "10": [
        {
          "color": "rgba(54,28,12,255)",
          "value": 0
        }
      ],
      "11": [
        {
          "color": "rgba(54,28,12,255)",
          "value": 0
        }
      ],
      "12": [
        {
          "color": "rgba(54,28,12,255)",
          "value": 0
        }
      ],
      "2": [
        {
          "color": "rgba(54,28,12,255)",
          "value": 411
        },
        {
          "color": "rgba(54,28,12,51)",
          "value": 19
        },
        {
          "color": "rgba(54,28,12,153)",
          "value": 166
        },
        {
          "color": "rgba(54,28,12,178)",
          "value": 245
        },
        {
          "color": "rgba(54,28,12,102)",
          "value": 69
        },
        {
          "color": "rgba(54,28,12,127)",
          "value": 106
        },
        {
          "color": "rgba(54,28,12,0)",
          "value": 0
        },
        {
          "color": "rgba(54,28,12,25)",
          "value": 5
        },
        {
          "color": "rgba(54,28,12,76)",
          "value": 41
        }
      ],
      "3": [
        {
          "color": "rgba(54,28,12,102)",
          "value": 17
        },
        {
          "color": "rgba(54,28,12,153)",
          "value": 41
        },
        {
          "color": "rgba(54,28,12,178)",
          "value": 61
        },
        {
          "color": "rgba(54,28,12,255)",
          "value": 102
        },
        {
          "color": "rgba(54,28,12,25)",
          "value": 1
        },
        {
          "color": "rgba(54,28,12,76)",
          "value": 10
        },
        {
          "color": "rgba(54,28,12,127)",
          "value": 26
        },
        {
          "color": "rgba(54,28,12,0)",
          "value": 0
        },
        {
          "color": "rgba(54,28,12,51)",
          "value": 4
        }
      ],
      "4": [
        {
          "color": "rgba(54,28,12,178)",
          "value": 15
        },
        {
          "color": "rgba(54,28,12,255)",
          "value": 25
        },
        {
          "color": "rgba(54,28,12,25)",
          "value": 0
        },
        {
          "color": "rgba(54,28,12,51)",
          "value": 1
        },
        {
          "color": "rgba(54,28,12,76)",
          "value": 2
        },
        {
          "color": "rgba(54,28,12,102)",
          "value": 4
        },
        {
          "color": "rgba(54,28,12,127)",
          "value": 6
        },
        {
          "color": "rgba(54,28,12,153)",
          "value": 10
        }
      ],
      "5": [
        {
          "color": "rgba(54,28,12,76)",
          "value": 0
        },
        {
          "color": "rgba(54,28,12,127)",
          "value": 1
        },
        {
          "color": "rgba(54,28,12,153)",
          "value": 2
        },
        {
          "color": "rgba(54,28,12,178)",
          "value": 3
        },
        {
          "color": "rgba(54,28,12,255)",
          "value": 6
        }
      ],
      "6": [
        {
          "color": "rgba(54,28,12,178)",
          "value": 0
        },
        {
          "color": "rgba(54,28,12,255)",
          "value": 1
        }
      ],
      "7": [
        {
          "color": "rgba(54,28,12,255)",
          "value": 0
        }
      ],
      "8": [
        {
          "color": "rgba(54,28,12,255)",
          "value": 0
        }
      ],
      "9": [
        {
          "color": "rgba(54,28,12,255)",
          "value": 0
        }
      ]
    }
  },
  "url": "https://gateway.api.globalfishingwatch.org/v3/4wings/tile/heatmap/{z}/{x}/{y}?format=PNG&interval=DAY&datasets[0]=public-global-sar-presence:latest&date-range=2020-01-01,2020-01-31&style=eyJjb2xvciI6WzU0LDI4LDEyXSwicmFtcCI6WzAsOTMsMzE5LDY2MCwxMTA4LDE3MTEsMjY2MiwzOTI1LDY1ODRdfQ=="
}

EXAMPLE 4: SAR VESSEL DETECTIONS - GENERATE PNG TILES FILTERING UNMATCHED DETECTIONS

# Make sure to replace [TOKEN] with your API Access Token.

curl --location --globoff --request POST 'https://gateway.api.globalfishingwatch.org//v3/4wings/generate-png?interval=DAY&filters[0]=matched%3D%27false%27&color=%23361c0c&date-range=2020-01-01%2C2020-01-31&datasets[0]=public-global-sar-presence%3Alatest' \
  -H "Authorization: Bearer [TOKEN]"

If the request is successful, the response will be:

{
  "colorRamp": {
    "stepsByZoom": {
      "0": [
        {
          "color": "rgba(54,28,12,76)",
          "value": 489
        },
        {
          "color": "rgba(54,28,12,102)",
          "value": 850
        },
        {
          "color": "rgba(54,28,12,127)",
          "value": 1315
        },
        {
          "color": "rgba(54,28,12,178)",
          "value": 3011
        },
        {
          "color": "rgba(54,28,12,25)",
          "value": 63
        },
        {
          "color": "rgba(54,28,12,51)",
          "value": 218
        },
        {
          "color": "rgba(54,28,12,255)",
          "value": 4027
        },
        {
          "color": "rgba(54,28,12,0)",
          "value": 0
        },
        {
          "color": "rgba(54,28,12,153)",
          "value": 2024
        }
      ],
      "1": [
        {
          "color": "rgba(54,28,12,153)",
          "value": 506
        },
        {
          "color": "rgba(54,28,12,178)",
          "value": 752
        },
        {
          "color": "rgba(54,28,12,25)",
          "value": 15
        },
        {
          "color": "rgba(54,28,12,51)",
          "value": 54
        },
        {
          "color": "rgba(54,28,12,102)",
          "value": 212
        },
        {
          "color": "rgba(54,28,12,255)",
          "value": 1006
        },
        {
          "color": "rgba(54,28,12,0)",
          "value": 0
        },
        {
          "color": "rgba(54,28,12,76)",
          "value": 122
        },
        {
          "color": "rgba(54,28,12,127)",
          "value": 328
        }
      ],
      "10": [
        {
          "color": "rgba(54,28,12,255)",
          "value": 0
        }
      ],
      "11": [
        {
          "color": "rgba(54,28,12,255)",
          "value": 0
        }
      ],
      "12": [
        {
          "color": "rgba(54,28,12,255)",
          "value": 0
        }
      ],
      "2": [
        {
          "color": "rgba(54,28,12,76)",
          "value": 30
        },
        {
          "color": "rgba(54,28,12,127)",
          "value": 82
        },
        {
          "color": "rgba(54,28,12,178)",
          "value": 188
        },
        {
          "color": "rgba(54,28,12,0)",
          "value": 0
        },
        {
          "color": "rgba(54,28,12,51)",
          "value": 13
        },
        {
          "color": "rgba(54,28,12,102)",
          "value": 53
        },
        {
          "color": "rgba(54,28,12,153)",
          "value": 126
        },
        {
          "color": "rgba(54,28,12,255)",
          "value": 251
        },
        {
          "color": "rgba(54,28,12,25)",
          "value": 3
        }
      ],
      "3": [
        {
          "color": "rgba(54,28,12,153)",
          "value": 31
        },
        {
          "color": "rgba(54,28,12,178)",
          "value": 47
        },
        {
          "color": "rgba(54,28,12,255)",
          "value": 62
        },
        {
          "color": "rgba(54,28,12,25)",
          "value": 0
        },
        {
          "color": "rgba(54,28,12,51)",
          "value": 3
        },
        {
          "color": "rgba(54,28,12,76)",
          "value": 7
        },
        {
          "color": "rgba(54,28,12,102)",
          "value": 13
        },
        {
          "color": "rgba(54,28,12,127)",
          "value": 20
        }
      ],
      "4": [
        {
          "color": "rgba(54,28,12,51)",
          "value": 0
        },
        {
          "color": "rgba(54,28,12,76)",
          "value": 1
        },
        {
          "color": "rgba(54,28,12,102)",
          "value": 3
        },
        {
          "color": "rgba(54,28,12,127)",
          "value": 5
        },
        {
          "color": "rgba(54,28,12,153)",
          "value": 7
        },
        {
          "color": "rgba(54,28,12,178)",
          "value": 11
        },
        {
          "color": "rgba(54,28,12,255)",
          "value": 15
        }
      ],
      "5": [
        {
          "color": "rgba(54,28,12,102)",
          "value": 0
        },
        {
          "color": "rgba(54,28,12,153)",
          "value": 1
        },
        {
          "color": "rgba(54,28,12,178)",
          "value": 2
        },
        {
          "color": "rgba(54,28,12,255)",
          "value": 3
        }
      ],
      "6": [
        {
          "color": "rgba(54,28,12,255)",
          "value": 0
        }
      ],
      "7": [
        {
          "color": "rgba(54,28,12,255)",
          "value": 0
        }
      ],
      "8": [
        {
          "color": "rgba(54,28,12,255)",
          "value": 0
        }
      ],
      "9": [
        {
          "color": "rgba(54,28,12,255)",
          "value": 0
        }
      ]
    }
  },
  "url": "https://gateway.api.globalfishingwatch.org/v3/4wings/tile/heatmap/{z}/{x}/{y}?format=PNG&interval=DAY&datasets[0]=public-global-sar-presence:latest&filters[0]=matched='false'&date-range=2020-01-01,2020-01-31&style=eyJjb2xvciI6WzU0LDI4LDEyXSwicmFtcCI6WzAsNjMsMjE4LDQ4OSw4NTAsMTMxNSwyMDI0LDMwMTEsNDAyN119"
}

Get raster by tile coordinates

EXAMPLE 1: AIS APPARENT FISHING EFFORT HEATMAP - GET PNG TILE BY COORDINATES

Make sure to replace [STYLE] with the style obtained in the previous endpoint "Create a style for generate PNG tiles" in the 'url' field

# Make sure to replace [TOKEN] with your API Access Token

curl --location --request GET 'https://gateway.api.globalfishingwatch.org/v3/4wings/tile/heatmap/2/3/1?format=PNG&interval=10DAYS&datasets[0]=public-global-fishing-effort:latest&date-range=2020-01-01,2020-01-31&style=[STYLE]' \
  -H "Authorization: Bearer [TOKEN]" \
  -o "tile-by-coordinates.PNG"

If the request is successful, in this example the response will be a PNG file similar to this.


EXAMPLE 2: AIS APPARENT FISHING EFFORT HEATMAP - GET MVT TILE BY COORDINATES

# Make sure to replace [TOKEN] with your API Access Token

curl --location --globoff 'https://gateway.api.globalfishingwatch.org//v3/4wings/tile/heatmap/0/0/0?date-range=2023-05-01%2C2023-10-20&datasets[0]=public-global-fishing-effort%3Alatest&format=MVT&interval=HOUR&temporal-aggregation=true' \
  -H "Authorization: Bearer [TOKEN]" \

If the request is successful, in this example the response will be an MVT file similar to this.


EXAMPLE 3: SAR VESSEL DETECTION HEATMAP - GET PNG TILE BY COORDINATES

# Make sure to replace [TOKEN] with your API Access Token

curl --location --globoff 'https://gateway.api.globalfishingwatch.org/v3/4wings/tile/heatmap/5/13/13?format=PNG&datasets[0]=public-global-sar-presence%3Alatest&date-range=2020-01-01%2C2020-01-31&style=eyJjb2xvciI6WzU0LDI4LDEyXSwicmFtcCI6WzAsOTIsMzIzLDY0MCwxMTE2LDE3NTMsMjg1MCw0MTMxLDU4MDZdfQ%3D%3D&interval=DAY' \
  -H "Authorization: Bearer [TOKEN]" \

Make sure to replace [STYLE] with the style obtained in the previous endpoint "Create a style for generate PNG tiles" in the 'url' field

If the request is successful, in this example the response will be an PNG file similar to this.


EXAMPLE 4: SAR VESSEL DETECTION HEATMAP - GET MVT TILE BY COORDINATES

# Make sure to replace [TOKEN] with your API Access Token
curl --location --globoff 'https://gateway.api.globalfishingwatch.org//v3/4wings/tile/heatmap/0/0/0?date-range=2023-05-01%2C2023-10-20&datasets[0]=public-global-sar-presence%3Alatest&format=MVT&interval=DAY&temporal-aggregation=true' \
  -H "Authorization: Bearer [TOKEN]" \

If the request is successful, in this example the response will be an MVT file similar to this.

This endpoint allows you to get details of the cell of the tile (in PNG or MVT format depending on the parameter).

⚠️ Before using this endpoint, for PNG format, remember to create your STYLE that specifies how the fishing effort will be visualized. Check more detail about how to generate your style here.

You can find on the right, two examples using AIS apparent fishing effort:

You can find on the right, two examples using SAR (Synthetic-aperture radar) vessel detections:

Get raster - HTTP Request

GET https://gateway.api.globalfishingwatch.org/v3/4wings/tile/heatmap/{z}/{x}/{y}

Get raster - URL Parameters

Parameter Description Required Format Param Type
z Zoom level (from 0 to 12) Example: 1 True number path
x X index (lat) of the tile True number path
y Y index (lon) of the tile True number path
temporal-aggregation Aggregates temporarily the data in the tile Example: True False boolean query
interval Tiles are available at several time resolutions (hourly, daily, monthly and 10 days), it means one frame every one hour, one day or 10 days. For each resolution, the max displayable length items: 1 hour: 20 days, 1 day: 1 year and 10 days: several years depending on the dataset for AIS Fishing effort it starts in 2012. Example: DAY False Enum: ['10DAYS', 'DAY', 'HOUR', 'MONTH', 'YEAR'] query
datasets[0] Specify the datasets that will be used to create the style. You can learn more about which are the possible datasets here. The parameters should be defined using an index, in case only one dataset is going to be sent: ?dataset[0]=xxxxx, in case of multiple datasets: ?dataset[0]=xxxxx&dataset[1]=yyyyy. Example: public-global-fishing-effort:latest or public-global-sar-presence:latest True string query
filters[0] Filters are applied to the dataset parameter with the corresponding index. For example if we want to apply a filter to dataset[0], we should apply the filter attributes to filter[0]. For AIS apparent fishing effort, the possible filters are: flag, geartype and vessel_id. Example: flag in ('ESP'). Check Gear Types supported here.. For SAR vessel detections, the available filters are: matched, flag, vessel_id, geartype, neural_vessel_type, and shiptype. Examples include matched='false', which indicates all SAR vessel detections that didn't match with an AIS vessel, and neural_vessel_type='Likely Fishing', which signifies all SAR vessel detections identified by the neural model (which only considers the thumbnails of the SAR images) as "Likely Fishing". This filter is useful for analyzing detections that did not match with AIS vessels. The neural_vessel_type filter accepts the following values: "Likely non-fishing", "Likely Fishing", or "Unknown". Check Vessel Types supported here. False string query
date-range Start date and end date to filter the data Example: 2021-01-01,2021-03-01 False string query
format Format of response Example: MVT False Enum: ['MVT', 'PNG'] query
style Id of the style obtained with endpoint /v3/4wings/generate-png. False string query

Generate bins of inputs to know the data

You can use this endpoint for example to create a color ramp of the data.

You can find on the right, one example using AIS apparent fishing effort:

You can find on the right, two examples using SAR (Synthetic-aperture radar) vessel detections:

Get bins - HTTP Request

GET https://gateway.api.globalfishingwatch.org/v3/4wings/bins/{z}

Get bins - URL Parameters

Parameter Description Required Format Param Type
z Zoom level (from 0 to 12) True number path
temporal-aggregation Aggregates temporarily the data in the tile Example: True False boolean query
num-bins Number of bins or buckets that you would like Example: 10 False number query
interval Tiles are available at several time resolutions (hourly, daily, monthly and 10 days), it means one frame every one hour, one day or 10 days. For each resolution, the the max displayable length items: 1 hour: 20 days, 1 day: 1 year and 10 days: several years depending on the dataset for AIS Fishing effort it starts in 2012. Example: 10DAYS False Enum: ['10DAYS', 'DAY', 'HOUR', 'MONTH', 'YEAR'] query
datasets[0] Specify the datasets that will be used to create the style. You can learn more about which are the possible datasets here. The parameters should be defined using an index, in case only one dataset is going to be sent: ?dataset[0]=xxxxx, in case of multiple datasets: ?dataset[0]=xxxxx&dataset[1]=yyyyy. Example: public-global-fishing-effort:latest or public-global-sar-presence:latest True string query
filters[0] Filters are applied to the dataset parameter with the corresponding index. For example if we want to apply a filter to dataset[0], we should apply the filter attributes to filter[0]. For AIS apparent fishing effort, the possible filters are: flag, geartype and vessel*id. Example: flag in ('ESP'). For SAR vessel detections, the possible filters are: matched, flag, vessel_id, geartype, neural_vessel_type and shiptype. Examples: matched='false' which means all SAR vessel detections that didn't match with an AIS vessel. or neural_vessel_type='Likely Fishing' which means all SAR vessel detections that the neural model that it only has in account the thumbnails of the sar images identify as Likely Fishing (this is useful to analyze detections that had no matching with AIS vessels) . The filter neural_vessel_type accepts as possible values: "Likely non-fishing", "Likely Fishing" or "Unknown". Check _Gear Types supported* here. Check Vessel Types supported here. False string query
date-range Start date and end date to filter the data Example: 2021-01-01,2021-03-01 False string query

EXAMPLE 1: APPARENT FISHING EFFORT BINS FOR ZOOM 1 IN A DAILY INTERVAL

# Make sure to replace [TOKEN] with your API Access Token
curl --location --globoff 'https://gateway.api.globalfishingwatch.org//v3/4wings/bins/1?datasets[0]=public-global-fishing-effort%3Alatest&temporal-aggregation=false&num-bins=9&interval=DAY' \
  -H "Authorization: Bearer [TOKEN]" \

If the request is successful, in this example the response will be:

{
  "total": 1,
  "limit": null,
  "offset": null,
  "nextOffset": null,
  "metadata": {},
  "entries": [
    [
      0, 9.614632153181205, 46.89072615583312, 135.94034024094597,
      257.06961050684566, 568.6451974803559, 913.1298155603789,
      1173.3012226127767, 1554.9284184570513
    ]
  ]
}

EXAMPLE 2: SAR VESSEL DETECTIONS FOR ZOOM 2 IN A HOURLY INTERVAL

# Make sure to replace [TOKEN] with your API Access Token
curl --location --globoff 'https://gateway.api.globalfishingwatch.org//v3/4wings/bins/2?datasets[0]=public-global-sar-presence%3Alatest&temporal-aggregation=false&num-bins=9&interval=HOUR' \
  -H "Authorization: Bearer [TOKEN]" \

If the request is successful, in this example the response will be:

{
  "total": 1,
  "limit": null,
  "offset": null,
  "nextOffset": null,
  "metadata": {},
  "entries": [
    [
      0, 0.6141656839622642, 2.13199378330373, 4.751082251082251,
      8.484912146676853, 13.063675088131609, 28.508133561643834,
      45.34335191082803, 58.447841726618705
    ]
  ]
}

Return info in the cells of the tile specified - Interaction API

Interaction API allows you to get details of an MVT cell.

You can find on the right, one example using AIS apparent fishing effort:

You can find on the right, two examples using SAR (Synthetic-aperture radar) vessel detections:

Interaction - HTTP Request

GET https://gateway.api.globalfishingwatch.org/v3/4wings/interaction/{z}/{x}/{y}/{cells}

Interaction - URL Parameters

Parameter Description Required Format Param Type
z Zoom level (from 0 to 12) True number path
x X index (lat) of the tile True number path
y Y index (lon) of the tile True number path
cells Indexes of cells separated by comma Example: 107,1,2 True string path
limit Number maximun of results Example: 10 False number query
datasets[0] Specify the datasets that will be used to create the style. You can learn more about which are the possible datasets here. The parameters should be defined using an index, in case only one dataset is going to be sent: ?dataset[0]=xxxxx, in case of multiple datasets: ?dataset[0]=xxxxx&dataset[1]=yyyyy. Example: public-global-fishing-effort:latest or public-global-sar-presence:latest True string query
filters[0] Filters are applied to the dataset parameter with the corresponding index. For example if we want to apply a filter to dataset[0], we should apply the filter attributes to filter[0]. For AIS apparent fishing effort, the possible filters are: flag, geartype and vessel_id. Example: flag in ('ESP'). Check Gear Types supported here.. For SAR vessel detections, the available filters are: matched, flag, vessel_id, geartype, neural_vessel_type, and shiptype. Examples include matched='false', which indicates all SAR vessel detections that didn't match with an AIS vessel, and neural_vessel_type='Likely Fishing', which signifies all SAR vessel detections identified by the neural model (which only considers the thumbnails of the SAR images) as "Likely Fishing". This filter is useful for analyzing detections that did not match with AIS vessels. The neural_vessel_type filter accepts the following values: "Likely non-fishing", "Likely Fishing", or "Unknown". Check Vessel Types supported here. False string query
date-range Start date and end date to filter the data Example: 2021-01-01,2021-03-01 False string query

EXAMPLE 1: GET DETAIL OF AN APPARENT FISHING EFFORT CELL TO ALLOW FURTHER INTERACTION

# Make sure to replace [TOKEN] with your API Access Token.
curl --location -g --request GET 'https://gateway.api.globalfishingwatch.org/v3/4wings/interaction/1/0/0/107?date-range=2021-01-01,2021-12-31&datasets[0]=public-global-fishing-effort:latest' \
  -H "Authorization: Bearer [TOKEN]"

If the request is successful, the response will be: fishing hours and vessel id that allow you to get more detail of a vessel by using the Vessel API

{
  "total": 1,
  "limit": null,
  "offset": null,
  "nextOffset": null,
  "metadata": {},
  "entries": [
    [
      {
        "hours": 11.455833333333334,
        "id": "f2134364c-c3d5-8ee9-ddd4-5511c0500a50"
      },
      {
        "hours": 9.895,
        "id": "f042d0bcf-fe96-cad5-5833-36b4aff2e87a"
      },
      {
        "hours": 12.617222222222221,
        "id": "e2d464a53-35ed-f059-c7e2-1ac76e12c9cc"
      },
      {
        "hours": 1.6769444444444446,
        "id": "daa9e5914-4d3c-6242-6648-b1adbc93305b"
      },
      {
        "hours": 1.238611111111111,
        "id": "c88e21112-2a09-4d56-196e-ff9cb26f76c9"
      },
      {
        "hours": 0.053055555555555564,
        "id": "b8de3c8e8-84f0-ba2f-528c-ff877e2d0e9e"
      },
      {
        "hours": 3.5319444444444446,
        "id": "b5d3439b6-6d19-5385-9d6b-08a0dfd60fa7"
      },
      {
        "hours": 18.993333333333332,
        "id": "ab75d8a33-3f93-62eb-0c86-38d8c742eff3"
      },
      {
        "hours": 9.597777777777777,
        "id": "a812d4320-0608-5ad0-1929-d5206eda123a"
      },
      {
        "hours": 34.2575,
        "id": "9eab37595-5bf1-471e-2e38-c070ebb00a7a"
      },
      {
        "hours": 47.11222222222222,
        "id": "9cf14ce31-144f-dda7-ded3-743bec9e41db"
      },
      {
        "hours": 9.228888888888891,
        "id": "9aed1677e-ef23-f541-58eb-8d755d410df4"
      },
      {
        "hours": 5.095000000000001,
        "id": "70a3ff9ca-ab64-12b2-6446-34cdf14000c6"
      },
      {
        "hours": 5.3925,
        "id": "6b3129a20-009f-1741-5877-a714ea11cf2b"
      },
      {
        "hours": 16.631666666666664,
        "id": "68ab5e789-96a1-fd61-016c-92bd413a9682"
      },
      {
        "hours": 10.718055555555555,
        "id": "65aaba596-62eb-49af-910d-f7d9d47a2d06"
      },
      {
        "hours": 9.872222222222222,
        "id": "3f7c46fe4-45f8-0685-a7e5-60d531c7c352"
      },
      {
        "hours": 8.126666666666667,
        "id": "2ab8c04ff-f0e3-a3f1-7ef4-2428604174e0"
      },
      {
        "hours": 38.58861111111111,
        "id": "1abad9a58-8758-383e-8c58-6c8029ecaa44"
      },
      {
        "hours": 10.016388888888889,
        "id": "184b291b6-619c-748c-1f32-5fe46616d0dc"
      },
      {
        "hours": 0.11166666666666666,
        "id": "1738bc096-6373-5ae6-8bd0-dd31ecf6c0eb"
      },
      {
        "hours": 2.338888888888889,
        "id": "098ac6ed6-65a9-260b-fb84-8c932eb977ae"
      },
      {
        "hours": 47.81805555555555,
        "id": "050743514-4618-79b3-8643-96ada9281517"
      },
      {
        "hours": 17.753055555555555,
        "id": "04b95cb83-31d8-06e7-0845-8691696643f5"
      }
    ]
  ]
}

EXAMPLE 2: GET DETAIL OF A SAR VESSEL DETECTION CELL TO ALLOW FURTHER INTERACTION

# Make sure to replace [TOKEN] with your API Access Token.
curl --location --globoff 'https://gateway.api.globalfishingwatch.org/v3/4wings/interaction/0/0/0/1049?datasets[0]=public-global-sar-presence%3Alatest&date-range=2017-01-01%2C2021-12-31' \
  -H "Authorization: Bearer [TOKEN]"

If the request is successful, the response will be: detections and vessel id (in the case there is matching) that allow you to get more detail of a vessel by using the Vessel API

{
  "total": 1,
  "limit": null,
  "offset": null,
  "nextOffset": null,
  "metadata": {},
  "entries": [
    [
      {
        "detections": 1,
        "timestamp": "2019-01-02T00:11:17Z",
        "vessel_id": "f9cceefc5-5c63-e34a-c660-14060bc5ebe6"
      },
      {
        "detections": 1,
        "timestamp": "2020-04-14T09:44:30Z",
        "vessel_id": "f7e478e4d-de52-230b-9f67-9e3c47030786"
      },
      {
        "detections": 1,
        "timestamp": "2018-08-23T00:11:17Z",
        "vessel_id": "f67b7ac6c-c819-e6aa-6ecc-62faf34106c8"
      },
      {
        "detections": 1,
        "timestamp": "2018-06-24T00:11:13Z",
        "vessel_id": "f6574e4ed-d56c-c281-97d7-965a47dbeda0"
      },
      {
        "detections": 1,
        "timestamp": "2021-05-27T00:11:30Z",
        "vessel_id": "ed3ebc54b-bc1b-a4ec-96d2-c6f3d3544a04"
      },
      {
        "detections": 2,
        "timestamp": "2019-03-03T00:11:15Z,2020-02-09T09:36:46Z",
        "vessel_id": "c78c0051a-a0a2-37c4-c760-b30e7007230f"
      },
      {
        "detections": 1,
        "timestamp": "2017-10-15T09:44:26Z",
        "vessel_id": "c242baee6-6c28-d945-3462-0755a0b1499c"
      },
      {
        "detections": 1,
        "timestamp": "2017-08-28T09:44:25Z",
        "vessel_id": "b802fb0bf-f7f6-8f21-b043-8c2da6278484"
      },
      {
        "detections": 1,
        "timestamp": "2020-06-25T00:11:26Z",
        "vessel_id": "a2713db20-0601-b0a6-a091-61bdc47a5944"
      },
      {
        "detections": 1,
        "timestamp": "2018-07-18T00:11:15Z",
        "vessel_id": "8a2774ca5-5a68-f4d1-e2d8-c61e371a8a4b"
      },
      {
        "detections": 1,
        "timestamp": "2019-02-26T09:36:40Z",
        "vessel_id": "79f1bf2b5-5e18-b97a-1aa4-ab9f97f9e10a"
      },
      {
        "detections": 1,
        "timestamp": "2021-02-20T00:11:27Z",
        "vessel_id": "766208f70-0759-9f75-911a-85e2f9205201"
      },
      {
        "detections": 1,
        "timestamp": "2020-07-14T09:36:51Z",
        "vessel_id": "724e0c2fb-bc6b-5c3b-89f7-0b44b374a2e1"
      },
      {
        "detections": 1,
        "timestamp": "2021-10-06T00:11:37Z",
        "vessel_id": "5c2329bfe-e430-9ed7-842a-1cc14f1ed651"
      },
      {
        "detections": 2,
        "timestamp": "2018-02-12T09:44:17Z,2018-03-15T09:36:27Z",
        "vessel_id": "4e324aedb-b3ab-7c6a-504a-1246f5e6faa9"
      },
      {
        "detections": 1,
        "timestamp": "2020-12-10T09:44:38Z",
        "vessel_id": "4d7ffb590-08bc-4b48-71b3-acb119cac029"
      },
      {
        "detections": 1,
        "timestamp": "2020-11-28T00:11:31Z",
        "vessel_id": "4d3917b59-9a9d-0f92-dfdf-800225c1887b"
      },
      {
        "detections": 1,
        "timestamp": "2017-01-31T09:36:21Z",
        "vessel_id": "4bcc70a54-40f5-e912-e25f-d8cff26c5ff5"
      },
      {
        "detections": 1,
        "timestamp": "2018-12-09T09:44:29Z",
        "vessel_id": "4489c5a49-993b-4159-e020-ed27b84e1484"
      },
      {
        "detections": 1,
        "timestamp": "2021-02-08T00:11:28Z",
        "vessel_id": "428d3868d-d961-c8ed-2677-fd10e8e0a2d5"
      },
      {
        "detections": 1,
        "timestamp": "2021-10-06T00:11:37Z",
        "vessel_id": "3be72b270-0846-1c1d-70c2-fe3d6adb0edf"
      },
      {
        "detections": 1,
        "timestamp": "2021-10-18T09:44:45Z",
        "vessel_id": "39a3b0460-0cb1-80da-ce74-e1ded9309b52"
      },
      {
        "detections": 1,
        "timestamp": "2019-04-08T00:11:16Z",
        "vessel_id": "354db802c-c309-002c-140d-0933d13b15d2"
      },
      {
        "detections": 1,
        "timestamp": "2021-06-15T09:36:56Z",
        "vessel_id": "3427df3e6-6468-8d6b-d6db-96b35b6747bf"
      },
      {
        "detections": 1,
        "timestamp": "2017-04-06T09:44:17Z",
        "vessel_id": "28e7adf49-943a-2be6-7c1f-7ea730ea44e6"
      },
      {
        "detections": 1,
        "timestamp": "2021-12-17T00:11:35Z",
        "vessel_id": "117064035-5205-1331-a8b6-3d9c54655912"
      },
      {
        "detections": 1,
        "timestamp": "2021-12-17T09:44:43Z",
        "vessel_id": "05cb894ca-afc6-1c59-47bf-8fd3dacd6678"
      },
      {
        "detections": 1,
        "timestamp": "2018-05-07T00:11:10Z",
        "vessel_id": "033998426-6dd0-d8d2-aedf-0756991c6027"
      },
      {
        "detections": 7,
        "timestamp": "2019-03-03T00:11:15Z,2021-10-25T09:37:01Z,2021-05-03T00:11:29Z,2020-11-28T00:11:31Z,2020-08-12T00:11:29Z,2020-08-12T00:11:29Z,2020-02-02T09:44:30Z",
        "vessel_id": null
      }
    ]
  ]
}

Create a report of a specified region

Report - HTTP Request

It is possible to call this endpoint using one of these two verbs:

Verb Usage Notes:

EXAMPLE 429 ERROR RESPONSE

{
  "statusCode": 429,
  "error": "Too Many Requests",
  "messages": [
    {
      "title": "Too Many Requests",
      "detail": "Your application token is not currently enabled to perform more than one concurrent report. If you need to generate more than one report concurrently, contact us at [email protected]",
      "metadata": {
        "currentReportBody": {
          "geojson": null,
          "region": {
            "dataset": "public-mpa-all",
            "id": "555635930"
          }
        },
        "currentReportUrl": "/v3/4wings/report?format=csv&datasets%5B0%5D=public-global-fishing-effort%3Av20201001&date-range=2023-05-01T00%3A00%3A00.000Z%2C2023-06-01T00%3A00%3A00.000Z&spatial-aggregation=true&temporal-resolution=entire&group-by=vessel_id"
      }
    }
  ]
}

Report - AIS Apparent Fishing Effort examples

On the right side, you can find these examples:

  1. Example 1 (POST) - Generate fishing effort report grouped By Year and by Custom Polygon In JSON Format
  2. Example 2 (POST) - Generate fishing effort report grouped By Gear Type, Using existing Regions (Russian Eez) In CSV Format.
  3. Example 3 (GET) - same as Example 2 but using GET.
  4. Example 4 (POST) - Generate report with total fishing hours per Lat/Lon grid cell (no grouping) using existing Regions (MPA Dorsal De Nasca) In JSON Format
  5. Example 5 (GET) - same as Example 4 but using GET.
  6. Example 6 (POST) - Generate report with total fishing hours per Lat/Lon grid cell (no grouping) using existing Regions (MPA Dorsal De Nasca) In JSON Format and buffer of 4 NAUTICAL MILES
  7. Example 7 (GET) - same as Example 6 but using GET.

Report - SAR vessel detection examples

On the right side, you can find these examples:

  1. Example 8 (POST) - Report REGION ID (Chile) DAILY grided data and filter by unmatched detections (JSON)
  2. Example 9 (POST) - Report Indonesia Filter by matched detections - Example of Noisy Vessel

Report - URL Parameters for both POST and GET requests

Parameter Description Required Format Param Type
spatial-resolution Low means at 10th degree resolution and High means at 100th degree resolution. Only required if spatial-aggregation is false or it's not sent. Example: low False Enum: ['LOW', 'HIGH'] query
format As result you get a zip file that contains caveat information and also the actual file including the results that could be in different results. Example: csv True Enum: ['CSV', 'TIF', 'JSON'] query
group-by The report data can be grouped by different criteria, for example a csv by vessel_id means that you get on row for each vessel id. Only required when spatial-aggregation is True. Example: vessel_id False Enum: ['VESSEL_ID', 'FLAG', 'GEARTYPE', 'FLAGANDGEARTYPE', 'MMSI'] query
temporal-resolution You can decide the level of detail regarding time. For example if you request csv, group by vessel_id and daily, you get one row per vessel id per day, or if you request csv, group by vessel_id and entire, you get one row per vessel id. Example: yearly True Enum: ['HOURLY', 'DAILY', 'MONTHLY', 'YEARLY','ENTIRE'] query
datasets[0] Specify the datasets that will be used to create the style. You can learn more about which are the possible datasets here. The parameters should be defined using an index, in case only one dataset is going to be sent: ?dataset[0]=xxxxx, in case of multiple datasets: ?dataset[0]=xxxxx&dataset[1]=yyyyy. Example: public-global-fishing-effort:latest or public-global-sar-presence:latest True string query
filters[0] Filters are applied to the dataset parameter with the corresponding index. For example if we want to apply a filter to dataset[0], we should apply the filter attributes to filter[0].For AIS apparent fishing effort, the possible filters are: flag, geartype and vessel_id. Example: flag in ('ESP'). Check Gear Types supported here.. For SAR vessel detections, the available filters are: matched, flag, vessel_id, geartype, neural_vessel_type, and shiptype. Examples include matched='false', which indicates all SAR vessel detections that didn't match with an AIS vessel, and neural_vessel_type='Likely Fishing', which signifies all SAR vessel detections identified by the neural model (which only considers the thumbnails of the SAR images) as "Likely Fishing". This filter is useful for analyzing detections that did not match with AIS vessels. The neural_vessel_type filter accepts the following values: "Likely non-fishing", "Likely Fishing", or "Unknown". Check Vessel Types supported here. False string query
date-range Start date and end date to filter the data. Maximum 366 days. Example: 2021-01-01,2021-03-01 False string query
spatial-aggregation Aggregates spatially the data in the report. With value true, the formats supported are only csv and json. Example: True False boolean query

Report - URL Parameters only for GET request

Parameter Description Required Format Param Type
region-dataset (Only allowed in GET request) Id of the dataset to obtain the region (example: public-eez-areas) False string query
region-id (Only allowed in GET request) Id of the region (example: 5690)
buffer-operation (Only allowed in GET request) Operation to apply to the region after the buffer. Only works together with buffer-value and buffer-unit query param. If not send, the default operation is dissolve . Possible values (DIFFERENCE, DISSOLVE) False string query
buffer-unit (Only allowed in GET request) Unit of the buffer value. Possible values (MILES, NAUTICALMILES, KILOMETERS, RADIANS, DEGREES) False string query
buffer-value (Only allowed in GET request) Distance to draw the buffer (negative values are allowed) False string query

Report - Body only for POST request

Key Description Required Format Param Type
geojson Geometry to filter the data in GeoJSON format False object body
region Object with region information (To get details of existing regions, check Regions in the Reference data section) False object body
region.dataset Id of the dataset to obtain the region (example: public-eez-areas) False string body
region.id Id of the region (example: 5690) False string body
region.bufferOperation Operation to apply to the region after the buffer. Only works together with buffer-value and buffer-unit query param. If not send, the default operation is dissolve . Possible values (DIFFERENCE, DISSOLVE) False string body
region.bufferUnit Unit of the buffer value. Possible values (MILES, NAUTICALMILES, KILOMETERS, RADIANS, DEGREES) False string body
region.bufferValue Distance to draw the buffer (negative values are allowed) False string body

EXAMPLE 1 (POST) - GENERATE FISHING EFFORT REPORT GROUPED BY YEAR AND BY CUSTOM POLYGON IN JSON FORMAT

# Make sure to replace [TOKEN] with your API Access Token.
curl --location --globoff 'https://gateway.api.globalfishingwatch.org//v3/4wings/report?spatial-resolution=LOW&temporal-resolution=YEARLY&group-by=FLAG&datasets[0]=public-global-fishing-effort%3Alatest&date-range=2021-01-01%2C2022-01-01&format=JSON' \
  -H "Authorization: Bearer [TOKEN]"
  -H 'Content-Type: application/json' \
--data-raw '{"geojson":{"type":"Polygon","coordinates":[[[-76.11328125,-26.273714024406416],[-76.201171875,-26.980828590472093],[-76.376953125,-27.527758206861883],[-76.81640625,-28.30438068296276],[-77.255859375,-28.767659105691244],[-77.87109375,-29.152161283318918],[-78.486328125,-29.45873118535532],[-79.189453125,-29.61167011519739],[-79.892578125,-29.6880527498568],[-80.595703125,-29.61167011519739],[-81.5625,-29.382175075145277],[-82.177734375,-29.07537517955835],[-82.705078125,-28.6905876542507],[-83.232421875,-28.071980301779845],[-83.49609375,-27.683528083787756],[-83.759765625,-26.980828590472093],[-83.84765625,-26.35249785815401],[-83.759765625,-25.64152637306576],[-83.583984375,-25.16517336866393],[-83.232421875,-24.447149589730827],[-82.705078125,-23.966175871265037],[-82.177734375,-23.483400654325635],[-81.5625,-23.241346102386117],[-80.859375,-22.998851594142906],[-80.15625,-22.917922936146027],[-79.453125,-22.998851594142906],[-78.662109375,-23.1605633090483],[-78.134765625,-23.40276490540795],[-77.431640625,-23.885837699861995],[-76.9921875,-24.28702686537642],[-76.552734375,-24.846565348219727],[-76.2890625,-25.48295117535531],[-76.11328125,-26.273714024406416]]]}}'

If the request is successful, the response will be:

{
  "total": 1,
  "limit": null,
  "offset": null,
  "nextOffset": null,
  "metadata": {},
  "entries": [
    {
      "public-global-fishing-effort:v3": [
        {
          "date": "2021",
          "flag": "ESP",
          "hours": 0.4283333333333333,
          "lat": -27.3,
          "lon": -82,
          "vesselIDs": 1
        },
        {
          "date": "2021",
          "flag": "ESP",
          "hours": 0.9591666666666667,
          "lat": -24.7,
          "lon": -78.6,
          "vesselIDs": 2
        },
        {
          "date": "2021",
          "flag": "ESP",
          "hours": 0.27555555555555555,
          "lat": -24.6,
          "lon": -78.4,
          "vesselIDs": 2
        },
        {
          "date": "2021",
          "flag": "ESP",
          "hours": 0.41805555555555557,
          "lat": -24.2,
          "lon": -77.8,
          "vesselIDs": 1
        },
        {
          "date": "2021",
          "flag": "ESP",
          "hours": 0.034444444444444444,
          "lat": -24.7,
          "lon": -78.5,
          "vesselIDs": 1
        }
      ]
    }
  ]
}

EXAMPLE 2 (POST) - GENERATE FISHING EFFORT REPORT GROUPED BY GEAR TYPE, USING EXISTING REGIONS (Russian EEZ) IN CSV FORMAT

To get details of existing regions, check Regions in the Reference data section

# Make sure to replace [TOKEN] with your API Access Token.
curl --location -g --request POST 'https://gateway.api.globalfishingwatch.org/v3/4wings/report?spatial-resolution=LOW&temporal-resolution=MONTHLY&group-by=GEARTYPE&datasets[0]=public-global-fishing-effort:latest&date-range=2022-01-01,2022-05-01&format=CSV' \
--header 'Authorization: Bearer [TOKEN]' \
--header 'Content-Type: application/json' \
--output 'report-grouped.json' \
--data-raw '{
    "region": {
        "dataset": "public-eez-areas",
        "id": 5690
    }
}'

If the request is successful, the response will be a ZIP file including the CSV file and a pdf with data considerations, similar to this.

EXAMPLE 3 (GET) - SAME AS EXAMPLE 2 BUT USING THE GET VERB

To get details of existing regions, check Regions in the Reference data section

# Make sure to replace [TOKEN] with your API Access Token.
curl --location -g --request GET 'https://gateway.api.globalfishingwatch.org/v3/4wings/report?spatial-resolution=LOW&temporal-resolution=MONTHLY&group-by=GEARTYPE&datasets[0]=public-global-fishing-effort:latest&date-range=2022-01-01,2022-05-01&format=CSV&region-id=5690&region-dataset=public-eez-areas' \
--header 'Authorization: Bearer [TOKEN]' \
--header 'Content-Type: application/json'

If the request is successful, the response will be a ZIP file including the CSV file and a pdf with data considerations, the same as EXAMPLE 2.

EXAMPLE 4 (POST) - GENERATE REPORT WITH TOTAL FISHING HOURS PER LAT/LON GRID CELL USING EXISTING REGIONS (MPA Dorsal de Nasca) IN JSON FORMAT.

To get details of existing regions, check Regions in the Reference data section

# Make sure to replace [TOKEN] with your API Access Token.

curl --location -g --request POST 'https://gateway.api.globalfishingwatch.org/v3/4wings/report?spatial-resolution=LOW&temporal-resolution=ENTIRE&spatial-aggregation=false&datasets[0]=public-global-fishing-effort:latest&date-range=2022-05-01,2022-12-01&format=JSON'\
--header 'Authorization: Bearer [TOKEN]' \
--header 'Content-Type: application/json' \
--output 'report-grouped.json' \
--data-raw '{
    "region": {
        "dataset": "public-mpa-all",
        "id": 555745302
    }
}'

If the request is successful, the response will be:

{
  "total": 1,
  "limit": null,
  "offset": null,
  "nextOffset": null,
  "metadata": {},
  "entries": [
    {
      "public-global-fishing-effort:v3.0": [
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 0.5788888888888889,
          "lat": -16,
          "lon": -77
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.2480555555555557,
          "lat": -15.3,
          "lon": -77.8
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 0.24166666666666664,
          "lat": -16.2,
          "lon": -76.5
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.0566666666666669,
          "lat": -15.9,
          "lon": -76.2
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 4.950277777777778,
          "lat": -15.1,
          "lon": -76.9
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 4.2636111111111115,
          "lat": -15.9,
          "lon": -77.3
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 6.2619444444444445,
          "lat": -16.2,
          "lon": -76
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 2.3333333333333335,
          "lat": -16,
          "lon": -75.9
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 2.0277777777777777,
          "lat": -15.7,
          "lon": -76.6
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 0.9891666666666667,
          "lat": -15.4,
          "lon": -76.8
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.7366666666666668,
          "lat": -17.5,
          "lon": -77.9
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 2.3325,
          "lat": -15.8,
          "lon": -76.1
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 2.058611111111111,
          "lat": -15.3,
          "lon": -77.3
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 0.20166666666666666,
          "lat": -15.5,
          "lon": -76.6
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 3.750277777777778,
          "lat": -15,
          "lon": -77
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.17,
          "lat": -15.9,
          "lon": -76.3
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 6.835277777777778,
          "lat": -16.1,
          "lon": -76.2
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 0.8758333333333332,
          "lat": -15.8,
          "lon": -76.6
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 2.269722222222222,
          "lat": -16.1,
          "lon": -76.3
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 0.8836111111111112,
          "lat": -17.6,
          "lon": -77.8
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.3144444444444443,
          "lat": -15.1,
          "lon": -77
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.6336111111111113,
          "lat": -15.4,
          "lon": -76.9
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 6.915277777777777,
          "lat": -15.9,
          "lon": -77.2
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 2.069166666666667,
          "lat": -15.7,
          "lon": -76.8
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 3.7730555555555556,
          "lat": -15.9,
          "lon": -77.4
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 9.885555555555557,
          "lat": -15.1,
          "lon": -77.6
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.3966666666666665,
          "lat": -15,
          "lon": -77.2
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 3.3041666666666667,
          "lat": -16,
          "lon": -76.4
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.0766666666666667,
          "lat": -16.5,
          "lon": -76.1
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 4.8341666666666665,
          "lat": -16.2,
          "lon": -75.9
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 5.3325,
          "lat": -15.6,
          "lon": -76.3
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.395,
          "lat": -15.5,
          "lon": -77.6
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 0.9936111111111111,
          "lat": -15.8,
          "lon": -77.5
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 0.6669444444444445,
          "lat": -15.8,
          "lon": -76.2
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.0811111111111111,
          "lat": -15.5,
          "lon": -77.3
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.1025000000000003,
          "lat": -15.5,
          "lon": -76.8
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 0.9577777777777777,
          "lat": -17.7,
          "lon": -77.7
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 11.073611111111111,
          "lat": -15.5,
          "lon": -76.7
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 0.10583333333333333,
          "lat": -15.6,
          "lon": -76.8
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 3.9888888888888885,
          "lat": -16,
          "lon": -76.3
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 0.6916666666666667,
          "lat": -14.9,
          "lon": -76.9
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 2.9250000000000003,
          "lat": -15.7,
          "lon": -76.7
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 2.401111111111111,
          "lat": -15.6,
          "lon": -76.7
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 2.056944444444444,
          "lat": -17.5,
          "lon": -77.8
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 2.3311111111111114,
          "lat": -15.6,
          "lon": -77.2
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 0.7,
          "lat": -15.8,
          "lon": -77.6
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.2999999999999998,
          "lat": -15.2,
          "lon": -77.5
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.2666666666666666,
          "lat": -15.7,
          "lon": -77.5
        }
      ]
    }
  ]
}

EXAMPLE 5 (GET) - SAME AS EXAMPLE 4 BUT USING GET VERB

To get details of existing regions, check Regions in the Reference data section

# Make sure to replace [TOKEN] with your API Access Token.

curl --location -g --request GET 'https://gateway.api.globalfishingwatch.org/v3/4wings/report?spatial-resolution=LOW&temporal-resolution=ENTIRE&spatial-aggregation=false&datasets[0]=public-global-fishing-effort:latest&date-range=2022-05-01,2022-12-01&format=JSON&region-id=555745302&region-dataset=public-mpa-all'\
--header 'Authorization: Bearer [TOKEN]' \
--header 'Content-Type: application/json' \
--output 'report-grouped.json'

If the request is successful, the response will be the same as in EXAMPLE 4

EXAMPLE 6 (POST) - GENERATE REPORT WITH TOTAL FISHING HOURS PER LAT/LON GRID CELL USING EXISTING REGIONS (MPA Dorsal de Nasca) IN JSON FORMAT and buffer of 4 NAUTICAL MILES

To get details of existing regions, check Regions in the Reference data section

# Make sure to replace [TOKEN] with your API Access Token.

curl --location -g --request POST 'https://gateway.api.globalfishingwatch.org/v3/4wings/report?spatial-resolution=LOW&temporal-resolution=ENTIRE&spatial-aggregation=false&datasets[0]=public-global-fishing-effort:latest&date-range=2022-05-01,2022-12-01&format=JSON'\
--header 'Authorization: Bearer [TOKEN]' \
--header 'Content-Type: application/json' \
--output 'report-grouped.json' \
--data-raw '{
    "region": {
        "dataset": "public-mpa-all",
        "id": 555745302,
        "bufferUnit": "NAUTICALMILES",
        "bufferValue": 4
    }
}'
{
  "total": 1,
  "limit": null,
  "offset": null,
  "nextOffset": null,
  "metadata": {},
  "entries": [
    {
      "public-global-fishing-effort:v3.0": [
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 0.9830555555555555,
          "lat": -16.8,
          "lon": -78.6
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 15.889444444444445,
          "lat": -17.6,
          "lon": -77.8
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 2.5683333333333334,
          "lat": -16.5,
          "lon": -78.8
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.9202694444444446,
          "lat": -17.2,
          "lon": -78.2
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.9163888888888891,
          "lat": -17.4,
          "lon": -78.1
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 7.533611111111111,
          "lat": -17.5,
          "lon": -77.9
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.1566666666666667,
          "lat": -17.8,
          "lon": -77.6
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 0.35277777777777775,
          "lat": -16.2,
          "lon": -75.9
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 11.49388888888889,
          "lat": -17.4,
          "lon": -78
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 2.8391666666666664,
          "lat": -17.7,
          "lon": -77.8
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 0.716111111111111,
          "lat": -16.9,
          "lon": -78.4
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 8.26388888888889,
          "lat": -16.7,
          "lon": -78.7
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 2.1325000000000003,
          "lat": -17.5,
          "lon": -77.8
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 5.818888888888889,
          "lat": -17.3,
          "lon": -78.1
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 0.9325,
          "lat": -17.1,
          "lon": -78.2
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 9.506111111111112,
          "lat": -17.7,
          "lon": -77.7
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.106388888888889,
          "lat": -16.6,
          "lon": -78.9
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.0611111111111111,
          "lat": -17.3,
          "lon": -78
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 9.64361111111111,
          "lat": -17.8,
          "lon": -77.7
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.004722222222222,
          "lat": -17.6,
          "lon": -77.9
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.0069444444444444,
          "lat": -16.5,
          "lon": -78.9
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.02,
          "lat": -17.5,
          "lon": -78
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 9.575,
          "lat": -16.6,
          "lon": -78.8
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 0.3675,
          "lat": -17.1,
          "lon": -78.3
        },
        {
          "date": "2022-05-01,2022-12-01",
          "hours": 1.6669444444444446,
          "lat": -15.7,
          "lon": -76
        }
      ]
    }
  ]
}

EXAMPLE 7 (GET) - SAME AS EXAMPLE 6 BUT USING GET VERB

To get details of existing regions, check Regions in the Reference data section

# Make sure to replace [TOKEN] with your API Access Token.
curl --location -g --request GET 'https://gateway.api.globalfishingwatch.org/v3/4wings/report?spatial-resolution=LOW&temporal-resolution=ENTIRE&spatial-aggregation=false&datasets[0]=public-global-fishing-effort:latest&date-range=2022-05-01,2022-12-01&format=JSON&region-id=555745302&region-dataset=public-mpa-all&buffer-value=4&buffer-unit=NAUTICALMILES'\
--header 'Authorization: Bearer [TOKEN]' \
--header 'Content-Type: application/json' \
--output 'report-grouped.json'

If the request is successful, the response will be the same as EXAMPLE 6.

EXAMPLE 8 (POST) - REPORT REGION ID (CHILE) DAILY GRIDED DATA AND FILTER BY UNMATCHED DETECTIONS (JSON)

To get details of existing regions, check Regions in the Reference data section

# Make sure to replace [TOKEN] with your API Access Token.
 curl --location --globoff 'https://gateway.api.globalfishingwatch.org//v3/4wings/report?spatial-resolution=HIGH&temporal-resolution=HOURLY&datasets[0]=public-global-sar-presence%3Alatest&date-range=2022-01-01%2C2022-01-06&format=JSON&filters[0]=matched%3D%27false%27' \
 --header 'Authorization: Bearer [TOKEN]' \
--header 'Content-Type: application/json' \
--data '{
    "region": {
        "dataset": "public-eez-areas",
        "id": 8465
    }
}'

If the request is successful, the response will be:

{
  "total": 1,
  "limit": null,
  "offset": null,
  "nextOffset": null,
  "metadata": {},
  "entries": [
    {
      "public-global-sar-presence:v3.0": [
        {
          "date": "2022-01-05 23:00",
          "detections": 1,
          "lat": -52.66,
          "lon": -72.19
        },
        {
          "date": "2022-01-05 23:00",
          "detections": 1,
          "lat": -52.57,
          "lon": -72.03
        },
        {
          "date": "2022-01-05 23:00",
          "detections": 1,
          "lat": -45.42,
          "lon": -73
        },
        {
          "date": "2022-01-05 23:00",
          "detections": 1,
          "lat": -45.39,
          "lon": -73.04
        },
        {
          "date": "2022-01-05 23:00",
          "detections": 1,
          "lat": -45.29,
          "lon": -73.26
        },
        {
          "date": "2022-01-05 23:00",
          "detections": 1,
          "lat": -45.34,
          "lon": -73.11
        },
        {
          "date": "2022-01-05 23:00",
          "detections": 1,
          "lat": -45.84,
          "lon": -75.1
        },
        {
          "date": "2022-01-05 23:00",
          "detections": 1,
          "lat": -44.12,
          "lon": -73.79
        },
        {
          "date": "2022-01-05 23:00",
          "detections": 1,
          "lat": -44.44,
          "lon": -73.46
        },
        {
          "date": "2022-01-05 23:00",
          "detections": 1,
          "lat": -44.25,
          "lon": -73.77
        },
        {
          "date": "2022-01-05 23:00",
          "detections": 1,
          "lat": -44.18,
          "lon": -73.79
        },
        {
          "date": "2022-01-05 23:00",
          "detections": 1,
          "lat": -43.97,
          "lon": -73.59
        },
        {
          "date": "2022-01-05 23:00",
          "detections": 1,
          "lat": -45.32,
          "lon": -73.68
        },
        {
          "date": "2022-01-05 23:00",
          "detections": 1,
          "lat": -44.59,
          "lon": -74.27
        },
        {
          "date": "2022-01-05 23:00",
          "detections": 1,
          "lat": -44.43,
          "lon": -74.21
        },
        {
          "date": "2022-01-05 23:00",
          "detections": 1,
          "lat": -44.51,
          "lon": -73.49
        },
        {
          "date": "2022-01-05 23:00",
          "detections": 1,
          "lat": -44.43,
          "lon": -73.3
        },
        {
          "date": "2022-01-05 23:00",
          "detections": 1,
          "lat": -45.4,
          "lon": -73.52
        },
        {
          "date": "2022-01-05 23:00",
          "detections": 1,
          "lat": -45.33,
          "lon": -73.12
        },
        {
          "date": "2022-01-05 23:00",
          "detections": 1,
          "lat": -45.03,
          "lon": -73.62
        }
      ]
    }
  ]
}

EXAMPLE 9 - REPORT INDONESIA FILTER BY MATCHED DETECTIONS - EXAMPLE OF NOISY VESSEL

In this case there is a matching with SAR image and AIS positions but the AIS positions are linked to a noisy vessel that is why there is a vessel id but no vessel details since Global Fishing Watch couldn't determine those values as this refers to a noisy vessel.

To get details of existing regions, check Regions in the Reference data section

# Make sure to replace [TOKEN] with your API Access Token.
 curl --location --globoff 'https://gateway.api.globalfishingwatch.org//v3/4wings/report?spatial-resolution=HIGH&temporal-resolution=HOURLY&group-by=VESSEL_ID&datasets[0]=public-global-sar-presence%3Alatest&date-range=2017-01-01%2C2017-01-02&format=JSON&filters[0]=matched%3D%27true%27' \
 --header 'Authorization: Bearer [TOKEN]' \
--header 'Content-Type: application/json'\
--data '{
    "region": {
        "dataset": "public-eez-areas",
        "id": 8492
    }
}'

If the request is successful, the response will be this below. See that the first result is the noisy vessel.

{
    "total": 1,
    "limit": null,
    "offset": null,
    "nextOffset": null,
    "metadata": {},
    "entries": [
        {
            "public-global-sar-presence:v3.0": [
                {
                    "callsign": "",
                    "dataset": "",
                    "date": "2017-01-01 22:00",
                    "detections": 1,
                    "entryTimestamp": "2017-01-01T22:33:41Z",
                    "exitTimestamp": "2017-01-01T22:33:41Z",
                    "firstTransmissionDate": "",
                    "flag": "",
                    "geartype": "",
                    "imo": "",
                    "lastTransmissionDate": "",
                    "lat": -6.09,
                    "lon": 106.89,
                    "mmsi": "",
                    "shipName": "",
                    "vesselId": "74934b786-6f6f-d027-c06f-bf814d7da7f3",
                    "vesselType": ""
                },
                {
                    "callsign": "D7MR",
                    "dataset": "public-global-vessel-identity:v3.0",
                    "date": "2017-01-01 22:00",
                    "detections": 1,
                    "entryTimestamp": "2017-01-01T22:33:41Z",
                    "exitTimestamp": "2017-01-01T22:33:41Z",
                    "firstTransmissionDate": "2014-03-12T07:22:25Z",
                    "flag": "KOR",
                    "geartype": "CARGO",
                    "imo": "9260976",
                    "lastTransmissionDate": "2024-05-26T23:59:32Z",
                    "lat": -5.92,
                    "lon": 106.12,
                    "mmsi": "440199000",
                    "shipName": "OCEAN LEADER",
                    "vesselId": "ffe9f7ec6-66b8-b8c9-b5d6-71bd2d362414",
                    "vesselType": "CARGO"
                },
and more results

Get last report generated

Get last report generated. It endpoints let you to download the last report requested without generate it again. The endpoint only saves the last report during 30 min after the generation

Get last report - HTTP Request

GET https://gateway.api.globalfishingwatch.org/v3/4wings/last-report

Report - Responses

The endpoint can return 4 different responses depending of the last report status:

{
  "uri": "/v3/4wings/report?format=JSON&datasets%5B0%5D=public-global-fishing-effort%3Av3.0&date-range=2023-12-31T00%3A00%3A00.000Z%2C2024-01-10T00%3A00%3A00.000Z&spatial-aggregation=true&temporal-resolution=ENTIRE&region-dataset=public-eez-areas&group-by=VESSEL_ID",
  "status": "running",
  "lastUpdate": "2024-02-05T13:34:06+0000"
}
{
  "message": {
    "statusCode": 422,
    "error": "Unprocessable Entity",
    "messages": [
      {
        "title": "region-id",
        "detail": "region-id query param is required"
      }
    ]
  },
  "status": 422
}

Statistics on fishing activity worldwide

Get apparent fishing effort statistics worldwide.

Stats - HTTP Request

GET /v3/4wings/stats

Stats - Parameters

Name In Type Required Description
fields query string false Statitics fields (separated by comma). For AIS fishing effort, available fields are: FLAGS, VESSEL-IDS, ACTIVITY-HOURS
vessel-groups[0] query string false Vessel group ids to filter (separated by comma). Vessel groups applied at dataset with index 0. At the same as datasets, this query param could be send with different index to apply filters to other datasets.
datasets[0] query string true Specify the datasets that will be used to create the style. You can learn more about which are the possible datasets here. The parameters should be defined using an index, in case only one dataset is going to be sent: ?dataset[0]=xxxxx, in case of multiple datasets: ?dataset[0]=xxxxx&dataset[1]=yyyyy
filters[0] query string false Filters are applied to the dataset parameter with the corresponding index. For example if we want to apply a filter to dataset[0], we should apply the filter attributes to filter[0].For AIS fishing effort, the possible filters are: flag, geartype
date-range query string false Start date and end date to filter the data

Example responses

200 Response

[
  {
    "activityHours": 0,
    "flags": 0,
    "maxLat": 0,
    "maxLon": 0,
    "minLat": 0,
    "minLon": 0,
    "vesselIds": 0
  }
]

Stats - Responses

Status Meaning Description Schema
200 OK. Stats response Check 4Wings Stats response below
401 Unauthorized. No Unauthorized. Error Codes
403 Forbidden You do not have permissions to do the action. Error Codes
422 Unprocessable Entity Unprocessable Entity. Validation error. Error Codes
429 Too Many Requests Too Many Request. Error Codes
503 Service Unavailable Service Unavailable. Error Codes
4Wings Stats response
Name Type Required Restrictions Description
activityHours number false none Total activity hours (if field is requested). For AIS, total fishing effort in hours.
flags number false none Total different flags (if field is requested).
maxLat number false none Maximum latitude with data (Only returned if vessel-group filter is applied)
maxLon number false none Maximun longitude with data (Only returned if vessel-group filter is applied)
minLat number false none Minimum latitude with data (Only returned if vessel-group filter is applied)
minLon number false none Minimum longitude with data (Only returned if vessel-group filter is applied)
vesselIds number false none Total different vessel ids (if field is requested). Please refer to Key Concept section to understand what a "vessel id" means.

EXAMPLE 1 - GET WORLDWIDE STATS RELATED TO FISHING EFFORT FOR A TIME PERIOD WITH NO FILTER

curl --location -g --request GET 'https://gateway.api.globalfishingwatch.org/v3/4wings/stats/?datasets[0]=public-global-fishing-effort:latest&fields=FLAGS,VESSEL-IDS,ACTIVITY-HOURS&date-range=2022-10-22,2023-01-22' \
  -H 'Authorization: Bearer {access-token}'

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response will be:

[
  {
    "activityHours": 28570704.16737109,
    "flags": 214,
    "maxLat": null,
    "maxLon": null,
    "minLat": null,
    "minLon": null,
    "vesselIds": 87731
  }
]

EXAMPLE 2 - GET WORLDWIDE STATS RELATED TO FISHING EFFORT FOR A TIME PERIOD WITH GEAR TYPE FILTER

curl --location -g --request GET 'https://gateway.api.globalfishingwatch.org/v3/4wings/stats/?datasets[0]=public-global-fishing-effort:latest&fields=FLAGS,VESSEL-IDS,ACTIVITY-HOURS&date-range=2022-10-22,2023-01-22&filters[0]=geartype in ("tuna_purse_seines","driftnets")' \
  -H 'Authorization: Bearer {access-token}'

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response will be:

[
  {
    "activityHours": 90972.49606000002,
    "flags": 62,
    "maxLat": null,
    "maxLon": null,
    "minLat": null,
    "minLon": null,
    "vesselIds": 592
  }
]

Vessels API

Introduction Vessels API

Vessels API allows you to search for vessels and get vessel identity details. This API combines Global Fishing Watch (GFW) core AIS identity data with GFW registry database to enable an improved understanding of vessel identity over time. The GFW registry database includes vessel identity information from over 40 public regional and national registries and a static version was released on our Data Download Portal here which was used in the recently published paper Tracking elusive and shifting identities of the global fishing fleet by Park et al. (2023).

You can:

If you want to learn which APIs are used in Vessel Viewer, you can review this document showing the exact API requests done behind each page.

Search vessels - HTTP Request

GET https://gateway.api.globalfishingwatch.org/v3/vessels/search

Search vessels - URL Parameters

Parameter Required Format Param Type
since The token to send to get more results. False string query
limit Amount of search results to return. Maximum 25. Default: 20 Example: 20 False number query
datasets Specify the datasets that will be used to search the vessel. You can learn more about which are the possible datasets here. Example: datasets[0]=['public-global-fishing-vessels:latest', 'public-global-carrier-vessels:latest'] True array query
query Free form query that allows you to search a vessel by sending some identifier, for example: MMSI, IMO, CALL SIGN,Shipname, etc. Identifier depends on the dataset. This property and where are incompatible together, you just can use one at once. Minimum 3 characters. Example: Don tito False string query
where Advanced query that allows you to search a vessel by sending several identifiers. The list of identifiers depends on the dataset. You can combine logic operators like AND, OR, =, >= , <. Some SCALAR operators are not supported yet. This property and query are incompatible together, you just can use one at once. Example: (shipname = 'SEIN PHOENIX' OR mmsi = '441618000' OR imo = '9047271' OR callsign='D8SP') AND transmissionDateTo >= '2021-05-29' AND transmissionDateFrom <= '2021-08-29' AND flag = 'KOR' False string query
match-fields This query param allows to filter by matchFields levels. Possible values: SEVERAL_FIELDS, NO_MATCH, ALL. It is allow to use with query query-param but not with where query-param. False array query
includes This query param allows to add extra information to the response. Values: OWNERSHIP, AUTHORIZATIONS, MATCH_CRITERIA False array query
binary If the response should be in binary format (proto buffer) or not. It is useful if you want to improve the performance of your platform. A decoder is needed totransform the response. Default is False Example: True False boolean query

BASIC SEARCH - SEARCH ANY VESSEL BY A KEYWORD. Example MMSI = 368045130


curl --location --request GET 'https://gateway.api.globalfishingwatch.org/v3/vessels/search?query=368045130&datasets[0]=public-global-vessel-identity:latest&includes[0]=MATCH_CRITERIA&includes[1]=OWNERSHIP&includes[2]=AUTHORIZATIONS' \
  -H "Authorization: Bearer [TOKEN]"

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response will be:

{
  "limit": 20,
  "since": null,
  "total": 1,
  "entries": [
    {
      "dataset": "public-global-vessel-identity:v3.0",
      "registryInfoTotalRecords": 1,
      "registryInfo": [
        {
          "id": "db2d2e9437254280b9ccc8c59e8c8ccb",
          "sourceCode": ["IMO", "USA"],
          "ssvid": "368045130",
          "flag": "USA",
          "shipname": "MISS FREYA",
          "nShipname": "MISSFREYA",
          "callsign": "WDK3424",
          "imo": "8969513",
          "latestVesselInfo": true,
          "transmissionDateFrom": "2019-02-01T19:28:14Z",
          "transmissionDateTo": "2023-07-31T08:10:29Z",
          "geartype": ["FISHING"],
          "lengthM": null,
          "tonnageGt": 171,
          "vesselInfoReference": "4e4b5501-c2cf-4384-8051-c3affacb0229"
        }
      ],
      "registryOwners": [],
      "registryAuthorizations": [],
      "combinedSourcesInfo": [
        {
          "vesselId": "126221ace-e3b5-f4ed-6150-394809737c55",
          "geartypes": [
            {
              "name": "SET_LONGLINES",
              "source": "COMBINATION_OF_REGISTRY_AND_AIS_INFERRED_NN_INFO",
              "yearFrom": 2019,
              "yearTo": 2022
            }
          ],
          "shiptypes": [
            {
              "name": "FISHING",
              "source": "COMBINATION_OF_REGISTRY_AND_AIS_INFERRED_NN_INFO",
              "yearFrom": 2019,
              "yearTo": 2022
            }
          ]
        },
        {
          "vesselId": "3312b30d6-65b6-1bdb-6a78-3f5eb3977e58",
          "geartypes": [
            {
              "name": "SET_LONGLINES",
              "source": "COMBINATION_OF_REGISTRY_AND_AIS_INFERRED_NN_INFO",
              "yearFrom": 2019,
              "yearTo": 2023
            }
          ],
          "shiptypes": [
            {
              "name": "FISHING",
              "source": "COMBINATION_OF_REGISTRY_AND_AIS_INFERRED_NN_INFO",
              "yearFrom": 2019,
              "yearTo": 2023
            }
          ]
        }
      ],
      "selfReportedInfo": [
        {
          "id": "3312b30d6-65b6-1bdb-6a78-3f5eb3977e58",
          "ssvid": "368045130",
          "shipname": "MISS FREYA",
          "nShipname": "MISSFREYA",
          "flag": "USA",
          "callsign": "WDK3424",
          "imo": null,
          "messagesCounter": 90158,
          "positionsCounter": 15799,
          "sourceCode": ["AIS"],
          "matchFields": "SEVERAL_FIELDS",
          "transmissionDateFrom": "2019-04-06T13:12:43Z",
          "transmissionDateTo": "2023-10-21T09:32:55Z"
        },
        {
          "id": "126221ace-e3b5-f4ed-6150-394809737c55",
          "ssvid": "368045130",
          "shipname": "MISS FREYA",
          "nShipname": "MISSFREYA",
          "flag": "USA",
          "callsign": null,
          "imo": null,
          "messagesCounter": 12483,
          "positionsCounter": 2066,
          "sourceCode": ["AIS"],
          "matchFields": "SEVERAL_FIELDS",
          "transmissionDateFrom": "2019-02-01T19:24:59Z",
          "transmissionDateTo": "2022-07-17T11:48:43.52Z"
        }
      ],
      "matchCriteria": [
        {
          "reference": "3312b30d6-65b6-1bdb-6a78-3f5eb3977e58",
          "property": "selfReportedInfo.id",
          "source": "selfReportedInfo",
          "matches": [
            {
              "property": "selfReportedInfo.ssvid",
              "value": "368045130"
            }
          ],
          "period": {
            "dateFrom": "2019-04-06T13:12:43Z",
            "dateTo": "2023-10-21T09:32:55Z"
          },
          "latestVesselInfo": true
        },
        {
          "reference": "126221ace-e3b5-f4ed-6150-394809737c55",
          "property": "selfReportedInfo.id",
          "source": "selfReportedInfo",
          "matches": [
            {
              "property": "selfReportedInfo.ssvid",
              "value": "368045130"
            }
          ],
          "period": {
            "dateFrom": "2019-02-01T19:24:59Z",
            "dateTo": "2022-07-17T11:48:43.52Z"
          },
          "latestVesselInfo": true
        },
        {
          "reference": "4e4b5501-c2cf-4384-8051-c3affacb0229",
          "property": "registryInfo.vesselInfoReference",
          "source": "registryInfo",
          "matches": [
            {
              "property": "registryInfo.ssvid",
              "value": "368045130"
            }
          ],
          "period": {
            "dateFrom": "2019-02-01T19:28:14Z",
            "dateTo": "2023-07-31T08:10:29Z"
          },
          "latestVesselInfo": true
        }
      ]
    }
  ],
  "metadata": {
    "query": "368045130",
    "normalizedQuery": "368045130",
    "didYouMean": {
      "shipname": {}
    }
  }
}

This endpoint searches for a vessel given a free form query. The query will be matched against any identifiers for the vessel, and a paginated, ranked results list will be returned. It allows you to perform a basic search of a vessel by sending some identifier, for example: MMSI, IMO, CALL SIGN,Shipname, etc.

ADVANCED SEARCH - SEARCH ANY VESSEL BY A KEYWORD. Example MMSI = 775998121 AND SHIPNAME


curl --location --request GET 'https://gateway.api.globalfishingwatch.org/v3/vessels/search?where=ssvid="775998121" AND shipname="DON TITO"&datasets[0]=public-global-vessel-identity:latest&includes[0]=MATCH_CRITERIA&includes[1]=OWNERSHIP' \
  -H "Authorization: Bearer [TOKEN]"

Make sure to replace [TOKEN] with your API Access Token. If the request is successful, the response will be:

{
  "total": 2,
  "limit": 20,
  "since": null,
  "metadata": {
    "query": "(selfReportedInfo.ssvid='775998121' OR registryInfo.ssvid='775998121') AND (selfReportedInfo.shipname LIKE '%DON TITO%' OR registryInfo.shipname LIKE '%DON TITO%')",
    "normalizedQuery": null,
    "didYouMean": {}
  },
  "entries": [
    {
      "dataset": "public-global-vessel-identity:v20230623",
      "registryInfoTotalRecords": 0,
      "registryInfo": [],
      "registryOwners": [],
      "registryAuthorizations": [],
      "selfReportedInfo": [
        {
          "id": "c54923e64-46f3-9338-9dcb-ff09724077a3",
          "ssvid": "775998121",
          "shipname": "DON TITO",
          "nShipname": "DONTITO",
          "flag": "VEN",
          "callsign": "YD23136",
          "imo": null,
          "geartype": null,
          "shiptype": "OTHER_NON_FISHING",
          "messagesCounter": 1103,
          "positionsCounter": 430,
          "shiptypesByYear": [
            {
              "shiptype": "OTHER_NON_FISHING",
              "years": [2021, 2022, 2023]
            }
          ],
          "sourceCode": ["AIS"],
          "matchFields": "NO_MATCH",
          "transmissionDateFrom": "2021-08-06T10:49:26Z",
          "transmissionDateTo": "2023-09-21T14:52:16Z"
        }
      ],
      "matchCriteria": [
        {
          "reference": "c54923e64-46f3-9338-9dcb-ff09724077a3",
          "property": "selfReportedInfo.id",
          "source": "selfReportedInfo",
          "matches": [],
          "period": {
            "dateFrom": "2021-08-06T10:49:26Z",
            "dateTo": "2023-09-21T14:52:16Z"
          },
          "latestVesselInfo": true
        }
      ]
    },
    {
      "dataset": "public-global-vessel-identity:v20230623",
      "registryInfoTotalRecords": 0,
      "registryInfo": [],
      "registryOwners": [],
      "registryAuthorizations": [],
      "selfReportedInfo": [
        {
          "id": "bae8f325c-cf0a-01fe-6d1a-9a275588d4ff",
          "ssvid": "775998121",
          "shipname": "DON TITO",
          "nShipname": "DONTITO",
          "flag": "VEN",
          "callsign": "",
          "imo": null,
          "geartype": null,
          "shiptype": "OTHER_NON_FISHING",
          "messagesCounter": 74,
          "positionsCounter": 37,
          "shiptypesByYear": [
            {
              "shiptype": "OTHER_NON_FISHING",
              "years": [2021, 2022]
            }
          ],
          "sourceCode": ["AIS"],
          "matchFields": "NO_MATCH",
          "transmissionDateFrom": "2021-08-03T13:41:41Z",
          "transmissionDateTo": "2022-07-23T13:39:10.01Z"
        }
      ],
      "matchCriteria": [
        {
          "reference": "bae8f325c-cf0a-01fe-6d1a-9a275588d4ff",
          "property": "selfReportedInfo.id",
          "source": "selfReportedInfo",
          "matches": [],
          "period": {
            "dateFrom": "2021-08-03T13:41:41Z",
            "dateTo": "2022-07-23T13:39:10.01Z"
          },
          "latestVesselInfo": true
        }
      ]
    }
  ]
}

This endpoint allows you to also perform an advanced search by creating a query like shipname LIKE '%GABU REEFE%' OR imo = '8300949. Where you can combine several fields, for example: id (vessel id), callsign, flag, imo, mmsi, shipname, normalized_shipname, lastTransmissionDate and firstTransmissionDate.

Get list of vessels filtered by ids

Get vessels by ids - HTTP Request

GET https://gateway.api.globalfishingwatch.org/v3/vessels

Get vessels by ids - URL Parameters

Parameter Description Required Format Param Type
datasets Specify the datasets that will be used to search the vessel. You can learn more about which are the possible datasets here. Example: ['public-global-fishing-vessels:latest', 'public-global-carrier-vessels:latest'] True array query
registries-info-data The response doesn't include all registry info data by default. It means, the default value is NONE. You can use DELTA to get only the data that changes in the time or ALL to get all data from the registries Example: NONE False Enum: ['NONE', 'DELTA', 'ALL'] query
includes This query param allows to add extra information to the response. Example: [['POTENTIAL_RELATED_SELF_REPORTED_INFO']] False array query
binary If the response should be in binary format (proto buffer) or not. It is useful if you want to improve the performance of your platform. A decoder is needed to transform the response. Default is False Example: True False boolean query
match-fields This query param allows to filter by matchFields levels. Possible values: SEVERA