navigation

FishWatch.gov Species Content API

FishWatch.gov Species Content API

Information about individual species on the FishWatch.gov site can be accessed via HTML in a browser or programmatically via an API endpoint. The API endpoint returns a JSON formatted data version of one or more species on FishWatch. Using the API from FishWatch.gov allows developers to retrieve and embed up to date content in their own applications and websites.

API Endpoints

Currently, there is a single endpoint available from the FishWatch.gov API over an HTTP GET request. The endpoint will return an array with one or all objects. Each object in the array represents a single species and its fields. To control which object is returned, a parameter can be supplied to the request. If no parameters are specified, all species on FishWatch.gov are returned.

Request with no parameters

https://www.fishwatch.gov/api/species

Response:

[
    {
       "Species Name": "Red Snapper",
       "Scientific Name": "Lutjanus campechanus",
       ...
    },
    { 
       "Species Name": "Blueline Tilefish",
       "Scientific Name": "Caulolatilus microps",
       ...
    },
    ...
]

Request with a species parameter

https://www.fishwatch.gov/api/species/red-snapper

The parameter for a specific species is the same as the parameter for the public species profile on FishWatch.gov. Red Snapper, for example, could be found at /profiles/red-snapper. At this time, only one parameter is supported at a time.

Response:

[
    {
       "Species Name": "Red Snapper",
       "Scientific Name": "Lutjanus campechanus",
       ...
    }
]

Object Content

Each of the species objects returns the same fields:

{
    "Fishery Management": "", 
    "Habitat": "",
    "Habitat Impacts": "",
    "Image Gallery": [
      {
        "src": "",
        "alt": ""
      },
      ...
    ],
    "Location": "",
    "Management": "",
    "NOAA Fisheries Region": "",
    "Population": "",
    "Population Status": "",
    "Scientific Name": "",
    "Species Aliases": "",
    "Species Illustration Photo": {
      "src": "",
      "alt": ""
    },
    "Species Name": "",
    "Animal Health": "",
    "Availability": "",
    "Biology": "",
    "Bycatch": "",
    "Calories": "",
    "Carbohydrate": "",
    "Cholesterol": "",
    "Color": "",
    "Disease Treatment and Prevention": "",
    "Diseases in Salmon": "",
    "Displayed Seafood Profile Illustration": "",
    "Ecosystem Services": "",
    "Environmental Considerations": "",
    "Environmental Effects": "",
    "Farming Methods": "",
    "Fat, Total": "",
    "Feeds": "",
    "Fiber, Total Dietary": "",
    "Fishing Rate": "",
    "Harvest": "",
    "Harvest Type": "",
    "Health Benefits": "",
    "Human Health": "",
    "Physical Description": "",
    "Production": "",
    "Protein": "",
    "Quote": "",
    "Quote Background Color": "",
    "Research": "",
    "Saturated Fatty Acids, Total": "",
    "Selenium": "",
    "Serving Weight": "",
    "Servings": "",
    "Sodium": "",
    "Source": "",
    "Sugars, Total": "",
    "Taste": "",
    "Texture": "",
    "Path": ""
}

All fields, when they have data, will return as strings. If there is no data, they will return with NULL. Fields used directly on the front end will return in the JSON API with their markup. If the markup is not desired, it will need to be stripped out after the response is parsed by the external application.