Fetching deployments

This page walks through querying the deployments endpoint in practice — listing deployments, filtering, searching, sorting, paginating, and fetching a single deployment by slug. For the complete parameter and field reference, see Endpoints.

Every example assumes you've generated an API key and exported it as YOUR_API_KEY.

List every deployment

A bare GET against /public/deployments/ returns the first page of results (100 per page by default). Every deployment you have access to — public or otherwise — appears in the list.

curl
curl "https://api.cryosphereinnovation.com/public/deployments/" \
  -H "Authorization: Bearer YOUR_API_KEY"
curl
curl "https://api.cryosphereinnovation.com/public/deployments/" \
  -H "Authorization: Bearer YOUR_API_KEY"
list_deployments.py
import requests
 
url = "https://api.cryosphereinnovation.com/public/deployments/"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
 
response = requests.get(url, headers=headers).json()
for deployment in response["results"]:
    print(deployment["name"], "-", deployment["status"])
list_deployments.py
import requests
 
url = "https://api.cryosphereinnovation.com/public/deployments/"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
 
response = requests.get(url, headers=headers).json()
for deployment in response["results"]:
    print(deployment["name"], "-", deployment["status"])

The response is wrapped in a paginated envelope:

response
{
  "count": 142,
  "next": "https://api.cryosphereinnovation.com/public/deployments/?page=2",
  "previous": null,
  "results": [ /* up to page_size deployments */ ]
}
response
{
  "count": 142,
  "next": "https://api.cryosphereinnovation.com/public/deployments/?page=2",
  "previous": null,
  "results": [ /* up to page_size deployments */ ]
}

Filter by status

Pass a status query parameter to narrow the list to a specific deployment state — deployed, retrieved, planned, and so on.

curl
curl "https://api.cryosphereinnovation.com/public/deployments/?status=deployed" \
  -H "Authorization: Bearer YOUR_API_KEY"
curl
curl "https://api.cryosphereinnovation.com/public/deployments/?status=deployed" \
  -H "Authorization: Bearer YOUR_API_KEY"
deployed_only.py
params = {"status": "deployed"}
response = requests.get(url, headers=headers, params=params).json()
deployed_only.py
params = {"status": "deployed"}
response = requests.get(url, headers=headers, params=params).json()

Use q to search across name, location, status, slug, data UUID, and instrument fields in a single pass:

curl
curl "https://api.cryosphereinnovation.com/public/deployments/?q=beaufort" \
  -H "Authorization: Bearer YOUR_API_KEY"
curl
curl "https://api.cryosphereinnovation.com/public/deployments/?q=beaufort" \
  -H "Authorization: Bearer YOUR_API_KEY"

Sort

By default results are ordered by last_modified descending. Override with sort_by + sort_dir:

curl
curl "https://api.cryosphereinnovation.com/public/deployments/?sort_by=deployment_start_date&sort_dir=desc" \
  -H "Authorization: Bearer YOUR_API_KEY"
curl
curl "https://api.cryosphereinnovation.com/public/deployments/?sort_by=deployment_start_date&sort_dir=desc" \
  -H "Authorization: Bearer YOUR_API_KEY"

Paginate through every deployment

Increase page_size up to 1000 for fewer round-trips, or walk the next URL until it's null.

paginate.py
import requests
 
url = "https://api.cryosphereinnovation.com/public/deployments/?page_size=500"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
 
all_deployments = []
while url:
    page = requests.get(url, headers=headers).json()
    all_deployments.extend(page["results"])
    url = page["next"]
 
print(f"Fetched {len(all_deployments)} deployments")
paginate.py
import requests
 
url = "https://api.cryosphereinnovation.com/public/deployments/?page_size=500"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
 
all_deployments = []
while url:
    page = requests.get(url, headers=headers).json()
    all_deployments.extend(page["results"])
    url = page["next"]
 
print(f"Fetched {len(all_deployments)} deployments")

Fetch a single deployment

Append the deployment's slug to the URL. For SIMB3 deployments the slug is the instrument IMEI — for redeployed instruments it may be a different unique identifier.

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"
fetch_one.py
slug = "300434066157890"
url = f"https://api.cryosphereinnovation.com/public/deployments/{slug}"
deployment = requests.get(url, headers=headers).json()
print(deployment["data_uuid"])  # use this to fetch sensor data
fetch_one.py
slug = "300434066157890"
url = f"https://api.cryosphereinnovation.com/public/deployments/{slug}"
deployment = requests.get(url, headers=headers).json()
print(deployment["data_uuid"])  # use this to fetch sensor data

The response body is a single deployment object (not wrapped in a pagination envelope).

Next

  • Fetching sensor data — use the data_uuid from a deployment to query its time-series readings
  • Endpoints — full parameter and response reference