University of Calgary Data Distribution API
Endpoints supporting data distribution
Endpoints supporting data distribution
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/university-of-calgary-data-distribution-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
x-method: derived
x-source-url: https://api.phys.ucalgary.ca/openapi.json
x-derived-from: openapi/_original/university-of-calgary-srs-api.yaml
x-operator: institution
openapi: 3.2.0
info:
title: UCalgary Space Remote Sensing Data Distribution API
description: API providing data and tools for UCalgary Space Remote Sensing
version: 1.66.0
servers:
- url: https://api.phys.ucalgary.ca
description: UCalgary Space Remote Sensing API
tags:
- name: Data Distribution
description: Endpoints supporting data distribution
paths:
/api/v1/data_distribution/datasets:
get:
tags:
- Data Distribution
summary: Retrieve available datasets
description: "Retrieve information about available datasets. Filter based on parameters supplied.\n\nNotes:\n - filtering is case insensitive\n - data level description: https://www.earthdata.nasa.gov/engage/open-data-services-and-software/data-information-policy/data-levels"
operationId: retrieve_datasets_api_v1_data_distribution_datasets_get
parameters:
- name: name
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Name
- name: level
in: query
required: false
schema:
type: string
enum:
- L0
- L1
- L1A
- L2
- L3
title: Level
responses:
'200':
description: Dataset information
content:
application/json:
schema:
type: array
items:
anyOf:
- $ref: '#/components/schemas/Dataset'
- $ref: '#/components/schemas/DatasetLegacy1'
- $ref: '#/components/schemas/DatasetLegacy2'
title: Response Retrieve Datasets Api V1 Data Distribution Datasets Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/data_distribution/urls:
get:
tags:
- Data Distribution
summary: Retrieve list of URLs for a given dataset
description: "Retrieve list of URLs for a given dataset and timeframe.\n\nNotes:\n - start and end times are inclusive\n - start and end time format is YYYY-mm-ddTHH:MM:SS. Excluding values from the right to \n the left result in default values being used (eg. YYYY-mm-ddTHH results in YYYY-mm-ddTHH:00:00)\n - dataset matching is case insensitive\n - site_uid is expected to be the 4-letter site code, and is case insensitive\n - device_uid is expected to be the instrument identifier such as \"themis02\", \"rego-657\", or \"rgb-07\",\n and is case insensitive"
operationId: retrieve_urls_api_v1_data_distribution_urls_get
parameters:
- name: name
in: query
required: true
schema:
type: string
title: Name
- name: start
in: query
required: true
schema:
type: string
format: date-time
title: Start
- name: end
in: query
required: true
schema:
type: string
format: date-time
title: End
- name: site_uid
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Site Uid
- name: device_uid
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Device Uid
- name: include_total_bytes
in: query
required: false
schema:
type: boolean
default: false
title: Include Total Bytes
responses:
'200':
description: URLs
content:
application/json:
schema:
$ref: '#/components/schemas/FileListingResponse'
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'404':
description: Dataset not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'500':
description: Data retrieval error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/data_distribution/observatories:
get:
tags:
- Data Distribution
summary: Retrieve information about observatories
description: "Retrieve information about observatories. Filter based on parameters supplied.\n\nNotes:\n - filtering for \"uid\" is case insensitive"
operationId: retrieve_observatories_api_v1_data_distribution_observatories_get
parameters:
- name: instrument_array
in: query
required: true
schema:
type: string
enum:
- norstar_riometer
- rego
- smile_asi
- swan_hsr
- themis_asi
- trex_blue
- trex_nir
- trex_rgb
- trex_spectrograph
title: Instrument Array
- name: uid
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Uid
responses:
'200':
description: Observatory information
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Observatory'
title: Response Retrieve Observatories Api V1 Data Distribution Observatories Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/data_distribution/imaging_timeframes:
post:
tags:
- Data Distribution
summary: Retrieve imaging start and end times for a set of locations
description: "Retrieve imaging start and end times for a set of locations. This is specific to the optical \ninstrumentation we provide data for.\n\nThe timestamp is expected to be UTC time.\n\nEach location in the 'locations' array can be specified either by a 4-letter site UID, or by\nproviding geodetic latitude and longitude. If the site_uid is provided, it is resolved to\ncoordinates using the known observatory list.\n\nNotes:\n - The threshold parameter is the solar zenith angle (in degrees) above which imaging occurs. \n The default value of 102.0 corresponds to nautical twilight, and what all UCalgary optical\n instruments use.\n - The `site_uid` parameter matching is case insensitive"
operationId: retrieve_imaging_timeframes_api_v1_data_distribution_imaging_timeframes_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ImagingTimeframesRequest'
required: true
responses:
'200':
description: Imaging times
content:
application/json:
schema:
items:
$ref: '#/components/schemas/ImagingTimeframeResponse'
type: array
title: Response Retrieve Imaging Timeframes Api V1 Data Distribution Imaging Timeframes Post
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'404':
description: Site not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
Dataset:
properties:
name:
type: string
title: Name
short_description:
type: string
title: Short Description
long_description:
type: string
title: Long Description
data_tree_url:
type: string
title: Data Tree Url
file_listing_supported:
type: boolean
title: File Listing Supported
level:
type: string
title: Level
doi:
anyOf:
- type: string
- type: 'null'
title: Doi
doi_details:
anyOf:
- type: string
- type: 'null'
title: Doi Details
citation:
anyOf:
- type: string
- type: 'null'
title: Citation
supported_libraries:
items:
type: string
enum:
- pyaurorax
- pyucrio
- idl-aurorax
- idl-ucrio
- pyucalgarysrs
type: array
title: Supported Libraries
default: []
file_time_resolution:
type: string
enum:
- 1min
- 1hr
- 1day
- not_applicable
title: File Time Resolution
type: object
required:
- name
- short_description
- long_description
- data_tree_url
- file_listing_supported
- level
- file_time_resolution
title: Dataset
DatasetLegacy1:
properties:
name:
type: string
title: Name
short_description:
type: string
title: Short Description
long_description:
type: string
title: Long Description
data_tree_url:
type: string
title: Data Tree Url
file_listing_supported:
type: boolean
title: File Listing Supported
level:
type: string
title: Level
doi:
anyOf:
- type: string
- type: 'null'
title: Doi
doi_details:
anyOf:
- type: string
- type: 'null'
title: Doi Details
citation:
anyOf:
- type: string
- type: 'null'
title: Citation
type: object
required:
- name
- short_description
- long_description
- data_tree_url
- file_listing_supported
- level
title: DatasetLegacy1
description: Dataset object for queries from PyAuroraX v1.3.3 or earlier
DatasetLegacy2:
properties:
name:
type: string
title: Name
short_description:
type: string
title: Short Description
long_description:
type: string
title: Long Description
data_tree_url:
type: string
title: Data Tree Url
file_listing_supported:
type: boolean
title: File Listing Supported
level:
type: string
title: Level
doi:
anyOf:
- type: string
- type: 'null'
title: Doi
doi_details:
anyOf:
- type: string
- type: 'null'
title: Doi Details
citation:
anyOf:
- type: string
- type: 'null'
title: Citation
supported_libraries:
items:
type: string
enum:
- pyaurorax
- pyucrio
- idl-aurorax
- idl-ucrio
- pyucalgarysrs
type: array
title: Supported Libraries
default: []
type: object
required:
- name
- short_description
- long_description
- data_tree_url
- file_listing_supported
- level
title: DatasetLegacy2
description: Dataset object for queries from PyAuroraX v1.3.3 or earlier
ErrorMessage:
properties:
detail:
type: string
title: Detail
type: object
required:
- detail
title: ErrorMessage
FileListingResponse:
properties:
urls:
items:
type: string
type: array
title: Urls
path_prefix:
type: string
title: Path Prefix
count:
type: integer
title: Count
total_bytes:
anyOf:
- type: integer
- type: 'null'
title: Total Bytes
dataset:
anyOf:
- $ref: '#/components/schemas/Dataset'
- $ref: '#/components/schemas/DatasetLegacy1'
- $ref: '#/components/schemas/DatasetLegacy2'
title: Dataset
type: object
required:
- urls
- path_prefix
- count
- total_bytes
- dataset
title: FileListingResponse
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
ImagingTimeframeLocation:
properties:
site_uid:
anyOf:
- type: string
- type: 'null'
title: Site Uid
geodetic_latitude:
anyOf:
- type: number
- type: 'null'
title: Geodetic Latitude
geodetic_longitude:
anyOf:
- type: number
- type: 'null'
title: Geodetic Longitude
type: object
title: ImagingTimeframeLocation
ImagingTimeframeResponse:
properties:
timestamp:
type: string
title: Timestamp
site_uid:
anyOf:
- type: string
- type: 'null'
title: Site Uid
geodetic_latitude:
type: number
title: Geodetic Latitude
geodetic_longitude:
type: number
title: Geodetic Longitude
imaging_start:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Imaging Start
imaging_end:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Imaging End
type: object
required:
- timestamp
- geodetic_latitude
- geodetic_longitude
title: ImagingTimeframeResponse
ImagingTimeframesRequest:
properties:
timestamp:
type: string
format: date-time
title: Timestamp
locations:
items:
$ref: '#/components/schemas/ImagingTimeframeLocation'
type: array
title: Locations
threshold:
type: number
title: Threshold
default: 102.0
type: object
required:
- timestamp
- locations
title: ImagingTimeframesRequest
Observatory:
properties:
uid:
type: string
title: Uid
full_name:
type: string
title: Full Name
geodetic_latitude:
type: number
title: Geodetic Latitude
geodetic_longitude:
type: number
title: Geodetic Longitude
type: object
required:
- uid
- full_name
- geodetic_latitude
- geodetic_longitude
title: Observatory
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
securitySchemes:
HTTPBearer:
type: http
scheme: bearer
APIKeyHeader:
type: apiKey
in: header
name: x-srs-api-key