Global Fishing Watch API
API v3Bulk Download

Get all Bulk Download reports by User

Retrieve all bulk reports created by your user or application.

Use this endpoint to retrieve all bulk reports created by your user or application. It supports pagination, sorting, and optional filtering by status or API dataset (see list of datasets available here). You can filter by the API dataset alias, such as public-fixed-infrastructure-data:latest, or by the resolved versioned value returned in the report response, such as public-fixed-infrastructure-data:v1.1.

EXAMPLE (GET) – Retrieve list of bulk reports sorted by creation date

# Make sure to replace [TOKEN] with your API Access Token.
curl --location 'https://gateway.api.globalfishingwatch.org/v3/bulk-reports?limit=10&offset=5&sort=-createdAt&dataset=public-fixed-infrastructure-data:latest' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer [TOKEN]'

EXAMPLE: RESPONSE (GET) – Retrieve list of bulk reports sorted by creation date

   {
  "metadata": {},
  "limit": 10,
  "offset": 5,
  "nextOffset": null,
  "total": 10,
  "entries": [
    {
      "id": "d16d2d2a-b415-4f47-a525-54d60c0db2cd",
      "dataset": "public-fixed-infrastructure-data:v1.1",
      "name": "sar-vessel-detection-example-1",
      "filepath": "sar_fixed_infrastructure_202409.csv",
      "filters": [
        "label = 'oil'",
        "structure_start_date between '2020-01-01' and '2025-01-01'"
      ],
      "status": "done",
      "geom": {
        "id": 8466,
        "type": "dataset",
        "dataset": "public-eez-areas"
      },
      "createdAt": "2025-06-24T14:21:27.517Z",
      "updatedAt": "2025-06-24T14:21:27.517Z",
      "ownerId": 385,
      "ownerType": "user-application",
      "format": "CSV",
      "fileSize": 1207
    }
  ]
}

Bulk Reports GET - Specifications

GET https://gateway.api.globalfishingwatch.org/v3/bulk-reports

GET
/api/v3/bulk-reports

Authorization

ApiKeyAuth
AuthorizationBearer <token>

In: header

Query Parameters

limit*number

Amount of search results to return.

Range1 <= value
offset*number

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, 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.

Range0 <= value
sort?string

Query to sort the list of resources. The column name must exists in the data to retrieve

status?string

Optional. Filter by status

Value in

  • "pending"
  • "processing"
  • "done"
  • "failed"
dataset?string

Optional. Filter by dataset id

curl -X GET "https://example.com/api/v3/bulk-reports?limit=1&offset=0"
{  "entries": [    {      "createdAt": "2019-08-24T14:15:22Z",      "dataset": "string",      "fileSize": 0,      "filepath": "fixed_infrastructure_202407.csv",      "filters": [        "type = 'fishing'"      ],      "format": "",      "geom": {},      "id": "",      "name": "my-report",      "ownerId": 0,      "ownerType": "string",      "status": "pending",      "updatedAt": "2019-08-24T14:15:22Z"    }  ],  "limit": 10,  "metadata": {},  "nextOffset": 10,  "offset": 0,  "total": 152}

Bulk Reports GET - Response fields

NameTypeRequiredRestrictionsDescription
metadataobjectfalseContains metadata related to the query, such as dataset or filters used.
limitnumbertrue≥ 1Number of items returned in this response.
offsetnumbertrue≥ 0Offset position of the first item in the response.
nextOffsetnumberfalse≥ 0Offset for the next page of results, if available.
totalnumbertrue≥ 0Total number of matching reports available for the user.
entriesarraytrueList of bulk reports matching the request. Each entry contains the fields below.
idstringtrueUUIDUnique identifier of the bulk report.
datasetstringtruee.g. public-fixed-infrastructure-data:v1.1API dataset used to generate the bulk report. The response may contain the resolved version of an alias such as latest.
namestringtrueHuman-readable name of the bulk report.
filepathstringtruefilenameName of the output file generated by the report.
filtersarrayfalseArray of string filters used when generating the report.
statusstringtrueEnum: pending, processing, done, failedCurrent status of the report generation process.
geom.idnumbertrueID of the geometry used to define the report region.
geom.typestringtrueEnum: dataset, geojsonType of geometry input.
geom.datasetstringtruee.g., public-eez-areasDataset associated with the region if using reference geometry.
createdAtstringtrueISO 8601Timestamp when the report was created.
updatedAtstringtrueISO 8601Timestamp when the report was last updated.
ownerIdnumbertrueID of the user or application that created the report.
ownerTypestringtrueEnum: user-applicationType of entity that created the report.
formatstringtrueEnum: CSV, JSONFormat of the generated report file.
fileSizenumberfalse≥ 0 (in bytes)Size of the output file in bytes.

Bulk Reports GET - Status Responses

StatusMeaningDescriptionSchema
200OKSuccessfully retrieved the list of bulk reports.Bulk Report Response properties
401UnauthorizedYour request did not include a valid API token.Error Codes
403ForbiddenYou do not have permission to access these reports.Error Codes
422Unprocessable EntityYour query parameters are invalid or malformed.Error Codes
500Internal Server ErrorA server-side issue occurred. Please contact us at [email protected]Error Codes

On this page