Endpoints

The Cryosphere Innovation public API exposes two read-only endpoints. One returns deployment metadata; the other returns raw sensor data for a specific deployment.

All requests are made against a single base URL:

https://api.cryosphereinnovation.com

Every request must include an Authorization: Bearer YOUR_API_KEY header — see Authentication.

Deployments

Metadata about deployments — names, locations, dates, owners, and free-form detail fields.

GET /public/deployments/

Returns a paginated list of deployments visible to the caller. Public deployments are visible to everyone with a valid key; private deployments are visible only to the owner and collaborators.

Query parameters

ParameterTypeDefaultDescription
pageinteger1Page number (1-indexed).
page_sizeinteger100Items per page. Maximum 1000.
statusstringFilter by exact status (e.g. deployed, retrieved, planned).
web_page_enabledbooleantrue or false. Filters to deployments that do or do not have a public web page.
instrumentintegerFilter by instrument ID (foreign key).
qstringFree-text search across name, location, status, data_uuid, slug, instrument name, serial number, instrument type, and owner name/email.
sort_bystringlast_modifiedField to sort by.
sort_dirstringdescasc or desc.

Response

GET /public/deployments/?page_size=2
{
  "count": 142,
  "next": "https://api.cryosphereinnovation.com/public/deployments/?page=2&page_size=2",
  "previous": null,
  "results": [
    {
      "name": "SIMB3 2023A",
      "status": "deployed",
      "location": "Beaufort Sea",
      "slug": "300434066157890",
      "data_uuid": "e11478e8-8bda-4494-a796-08b82334dfa0",
      "deployment_description": "Spring deployment from USCGC Healy.",
      "deployment_notes": null,
      "deployment_start_date": "2023-04-12T00:00:00Z",
      "deployment_end_date": null,
      "details": { "ice_thickness_at_deployment_cm": 145 }
    },
    { "…": "…" }
  ]
}
GET /public/deployments/?page_size=2
{
  "count": 142,
  "next": "https://api.cryosphereinnovation.com/public/deployments/?page=2&page_size=2",
  "previous": null,
  "results": [
    {
      "name": "SIMB3 2023A",
      "status": "deployed",
      "location": "Beaufort Sea",
      "slug": "300434066157890",
      "data_uuid": "e11478e8-8bda-4494-a796-08b82334dfa0",
      "deployment_description": "Spring deployment from USCGC Healy.",
      "deployment_notes": null,
      "deployment_start_date": "2023-04-12T00:00:00Z",
      "deployment_end_date": null,
      "details": { "ice_thickness_at_deployment_cm": 145 }
    },
    { "…": "…" }
  ]
}

GET /public/deployments/{slug}

Returns a single deployment. The slug is the canonical identifier. For SIMB3 deployments the slug is the instrument's IMEI (e.g. 300434066157890); for redeployments and other instruments it may be any unique string.

curl
curl "https://api.cryosphereinnovation.com/public/deployments/300434066157890" \
  -H "Authorization: Bearer YOUR_API_KEY"
curl
curl "https://api.cryosphereinnovation.com/public/deployments/300434066157890" \
  -H "Authorization: Bearer YOUR_API_KEY"

The response body is a single deployment object with the same fields as a list entry (see schema below).

Deployment schema

FieldTypeNullableDescription
namestringnoHuman-readable deployment name.
statusstringnoCurrent status (e.g. deployed, retrieved, planned).
locationstringnoFree-form location label (e.g. "Beaufort Sea").
slugstringnoCanonical deployment identifier. For SIMB3 this is the IMEI.
data_uuidstring (UUID)noIdentifier used to fetch raw sensor data.
deployment_descriptionstringyesDeployment summary written by the owner.
deployment_notesstringyesOperational notes.
deployment_start_datestring (ISO-8601)yesStart timestamp.
deployment_end_datestring (ISO-8601)yesEnd timestamp; null while deployed.
detailsobjectyesInstrument- or deployment-specific free-form object. Contents vary.

Sensor data

Time-series sensor readings for a specific deployment. One endpoint, one method.

GET /public/deployment/data/{uuid}

Returns an array of raw sensor rows for the deployment identified by data_uuid. Rows are ordered chronologically by time_stamp.

The data_uuid is a UUID, not a slug — find it on the deployment's metadata response or in the Instant Query panel on the deployment's web page.

Query parameters

ParameterTypeDefaultDescription
fieldstring (repeatable)Restrict the response to specific fields. Repeat the parameter to include multiple fields (e.g. ?field=air_temp&field=surface_distance). When omitted, every field on each row is returned.

Response

Each row is a plain JSON object. The exact keys depend on the deployment's sensor package — SIMB3 deployments return fields like air_temp, surface_distance, latitude, longitude, and a time_stamp, while custom instruments may report different channels.

GET /public/deployment/data/e11478e8-…?field=time_stamp&field=air_temp
[
  {
    "_id": "6512b7a1f2c9a83b5c1e44d1",
    "time_stamp": "2024-03-14T06:00:00Z",
    "air_temp": -18.4
  },
  {
    "_id": "6512b7a1f2c9a83b5c1e44d2",
    "time_stamp": "2024-03-14T07:00:00Z",
    "air_temp": -17.9
  }
]
GET /public/deployment/data/e11478e8-…?field=time_stamp&field=air_temp
[
  {
    "_id": "6512b7a1f2c9a83b5c1e44d1",
    "time_stamp": "2024-03-14T06:00:00Z",
    "air_temp": -18.4
  },
  {
    "_id": "6512b7a1f2c9a83b5c1e44d2",
    "time_stamp": "2024-03-14T07:00:00Z",
    "air_temp": -17.9
  }
]

_id is always present and unique per row. Use it if you need to track which rows you've already processed.

A note on payload size

The data endpoint returns every row in the deployment's history. For long-running deployments that can be tens of thousands of rows. Always pass field= to restrict the response to the channels you actually need — it's the single biggest lever for keeping requests fast and your client's memory flat.

Errors

Error responses follow a small, predictable set of shapes and HTTP status codes. See Errors for the full reference.