Mortality (v2)
The legacy mortality endpoints provide high-level benchmarks and category catalogues used by earlier AquaCloud dashboards. All routes require authentication. Endpoints that support the exclude_self flag only return a result when the token represents a farmer group.
Category catalogue endpoints
GET /v2/mortality/categories/codelist
Returns the full mortality category catalogue with optional pagination.
Query parameters
| Name | Type | Default | Notes | 
|---|---|---|---|
| offset | integer | 0 | Starting index within the catalogue. | 
| limit | integer | 500 | Number of rows to return. | 
Response fields (data[])
| Field | Type | Description | 
|---|---|---|
| level_1_code,level_1_name | string | Top-level category code/name. | 
| level_2_code,level_2_name | string | Second-level grouping. | 
| level_3_code | string | Third-level code. | 
| category_name,category_name_short | string | Norwegian labels. | 
| category_name_eng,category_name_short_eng | string | English labels. | 
| for_daily_registration | boolean | Indicates whether the category supports daily reporting. | 
| reporting_obligation | any | Raw value indicating legal reporting requirements. | 
| placement | object | Availability flags per placement ( sea,land). | 
| cause | object | Availability flags for death causes ( death,killed,downgrade). | 
| value_chain | object | Flags for value-chain stages (roe, postsmolt, freshwater, etc.). | 
| species | object | Species booleans ( salmon,cleanerfish,rainbow_trout). | 
| last_modified | string | Last updated timestamp (ISO). | 
metadata contains the response timestamp (time) and the most recent last_modified across the returned slice.
GET /v2/mortality/categories/changelog
Provides recorded changes to mortality categories.
data[] entries include:
| Field | Description | 
|---|---|
| date | Change timestamp. | 
| from_code/from_name | Category that was changed. | 
| to_code/to_name | Replacement category (when applicable). | 
| description | Human-readable change note. | 
| changed_by | Origin of the change (e.g. authority or internal source). | 
GET /v2/mortality/categories/level-1
GET /v2/mortality/categories/level-2
Return simplified lists of level 1 or level 2 codes with their names. Use these for quick drop-down population when you do not need the full codelist metadata.
Benchmark endpoints
GET /v2/mortality/mortality-rate-by-region
Produces monthly mortality benchmarks for each region.
Query parameters
| Name | Type | Default | Notes | 
|---|---|---|---|
| exclude_self | boolean | false | When true, removes the authenticated farmer’s sites before calculating benchmarks. Requires a farmer token. | 
Response structure
data[] entries contain:
| Field | Type | Description | 
|---|---|---|
| year,month | integers | Reporting period. | 
| region | string | Region identifier. | 
| number_of_sites | integer | Sites included after filters. | 
| mortality_rate | object | Rates ( 1_m,3_m,6_m,12_m,year). | 
| vi_mortality_rate | object | Mortality rates weighted by biomass (same keys as above). | 
| mortality_code_rate | object | Rates for top-level mortality codes ( A–F). | 
| highest_10_percent_avg_rate/lowest_10_percent_avg_rate | object | Benchmark extremes (nullable). | 
| highest_10_percent_avg_vi_rate/lowest_10_percent_avg_vi_rate | object | Biomass-weighted extremes (nullable). | 
metadata.time captures the response timestamp and metadata.request.exclude_self echoes the supplied filter.
GET /v2/mortality/mortality-rate-by-country
Matches the regional endpoint but aggregates nationwide. The response fields are identical except that the region column is omitted.
GET /v2/mortality/categories/top-by-region
Lists the dominant mortality categories per region and month. Supports the same exclude_self parameter as the rate endpoints.
data[] fields:
| Field | Description | 
|---|---|
| year,month | Reporting period. | 
| region | Region label. | 
| mortality_code | Category code. | 
| category_rate | Share of loss attributed to the category (0–1). | 
GET /v2/mortality/categories/top-by-country
Identical to the regional version but aggregated at the country level (no region field).
Both “top” endpoints return metadata.time and echo the exclude_self flag in metadata.request.
Example requests
# Region benchmark excluding own farmer
curl -X GET "https://api.aquacloud.ai/v2/mortality/mortality-rate-by-region?exclude_self=true" \
  -H "Authorization: Bearer $TOKEN" \
  -H "x-client-secret: $CLIENT_SECRET"
# Fetch the mortality codelist catalogue
curl -X GET "https://api.aquacloud.ai/v2/mortality/categories/codelist?limit=200" \
  -H "Authorization: Bearer $TOKEN" \
  -H "x-client-secret: $CLIENT_SECRET"