Appendix A — The retired API

The Plumber API at api.calcofi.io served the first generation of CalCOFI.io: a PostgreSQL database of the ingested tables and pre-built match tables between net tows and CTD casts, with endpoints for time series, cruises, rasters and the biology-to-environment matches. It was superseded in 2026 by the frozen parquet releases, which any DuckDB — including one running in a browser tab — reads directly with no server, no credentials and no rate limit. Table A.1 is the map from each endpoint to what replaced it; Access the data is the guide.

Table A.1: Every endpoint the retired api.calcofi.io served, what it did, and what reads the release in its place.
endpoint what it did now
/variables list the variables available to /timeseries calcofi4r::cc_list_measurement_types(); the measurement-type registry in Naming conventions
/species_groups (never finished) species groups for larval counts taxon_group in the release
/timeseries a time series of one variable, optionally by area SQL over obs_env and sample; the Explorer’s stations and regions lenses
/cruises the cruise list with summary statistics cc_read_cruise(); the Explorer’s cruises lens
/raster an interpolated raster of one variable cc_interpolate(); the Explorer’s contours lens
/cruise_lines, /cruise_line_profile station lines and depth profiles along a line SQL over obs_env; the Explorer’s sections lens
zooplankton_biomass net-tow biomass matched to CTD-bottle measurements cc_match_zooplankton_biomass()
itis_ichthyodata larval counts for an ITIS taxon and its descendants, matched cc_match_ichthyo_by_taxon() — WoRMS, recursive
ichthyodata larval counts by scientific name, matched cc_match_ichthyo_by_name()
relax_matching, cruiseymd_min/max, stage the match parameters relax_matching (5 km / 72 h), date_min/max, life_stage

The three matching endpoints, and many more queries, are also a point-and-click form at calcofi.io/db-query, running DuckDB in the browser over the same release. The API’s source stays at CalCOFI/api.