openapi: 3.0.1
info:
title: AuroraX Application.wadl Real-Time Data API
description: "## Overview\n\nThis webpage is an interactive documentation interface for the AuroraX RESTful API. This API\nis used by several applications including the AuroraX Conjunction Search, Event Explorer,\nKeogramist, PyAuroraX, and IDL-AuroraX. You can view these applications and libraries at\nhttps://aurorax.space and\nhttps://github.com/aurorax-space.\n\nDetailed documentation about the AuroraX platform and examples of using this API can be found at\nhttps://docs.aurorax.space.\n\nBelow, we outline the major categories of endpoints available for use:\n\n| Interface | Description |\n| ---------------- | --------------------------------------------------------------------------- |\n| Accounts | Operations relating to user accounts, API keys, and saved user data |\n| Authentication | Authentication using an email address and password, or an API key |\n| Availability | Retrieve information describing what data is in the database |\n| Data Sources | Interact with data sources |\n| Conjunctions | Search for conjunctions between multiple sets of data sources |\n| Ephemeris | Search and manage ephemeris data associated with a data source |\n| Data Products | Search and manage data products data associated with a data source |\n| Utils | Utilities, such as describing a search query in an SQL-like format |\n\n## Authentication\n\nAuroraX allows for two methods of authentication:\n\n1. Authenticate via username and password using the /authenticate endpoint to obtain an access\n token. Access tokens need to be sent on every request for secure resources. Inactive access tokens\n timeout after 30 minutes.\n\n2. Authenticate using an API key sent in the request header (key called 'x-aurorax-api-key')\n\nMore information can be found\nhere.\n\n## Errors\n\nThis API uses standard HTTP status codes to indicate the success or failure of the\nAPI call. When an error occurs, the body of the response will be JSON and contain an error code\nand message. All errors will respond with this format:\n```\n{\n \"error_code\": \"DUPLICATE\",\n \"error_message\": \"There was a duplicate record found. No changes were made.\"\n}\n```\n"
version: stable
servers:
- url: https://api.aurorax.space
description: AuroraX production server
variables: {}
- url: https://api.staging.aurorax.space
description: AuroraX staging server
variables: {}
- url: http://localhost:8080/
description: Local Development and Debugging
variables: {}
tags:
- name: Real-Time Data
description: Endpoints providing real-time data streams
paths:
/api/v1/rt:
get:
tags:
- Real-Time Data
summary: List available real-time data streams
description: 'Retrieve a list of all available real-time data streams.
Optional query parameters can be used to filter results. All filters
use case-insensitive partial matching.'
operationId: get_rt_streams_api_v1_rt_get
parameters:
- name: network
in: query
required: false
schema:
nullable: true
type: string
title: Network
- name: site_uid
in: query
required: false
schema:
nullable: true
type: string
title: Site Uid
- name: id
in: query
required: false
schema:
nullable: true
type: string
title: Id
responses:
'200':
description: List of available real-time data streams
content:
application/json:
schema:
$ref: '#/components/schemas/RTStreamListing'
'500':
description: Unexpected server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/rt/ws/info:
get:
tags:
- Real-Time Data
summary: WebSocket endpoint connection information
description: 'Retrieve connection details and protocol documentation for the real-time
data WebSocket endpoint.
The WebSocket endpoint itself is at `/api/v1/rt/ws` and is not shown in
the OpenAPI schema because WebSocket routes are not part of the OpenAPI
specification. This endpoint provides the protocol documentation instead.'
operationId: get_rt_websocket_info_api_v1_rt_ws_info_get
responses:
'200':
description: WebSocket protocol documentation
content:
application/json:
schema:
$ref: '#/components/schemas/RTWebSocketInfo'
'500':
description: Unexpected server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
/api/v1/rt/{id}/latest:
get:
tags:
- Real-Time Data
summary: Retrieve latest data for a real-time stream
description: "Retrieve the latest data for a given real-time data stream.\n\nNotes:\n - The `id` can be determined by using the stream listing endpoint.\n - The response content type depends on the stream's mimetype (e.g., image/jpeg).\n - Data is sourced from the database, populated by the RT ingester services.\n - The response includes an `x-rt-stream-last-updated-utc` header with the ISO 8601 UTC timestamp of when the stream data was last updated."
operationId: get_rt_stream_latest_api_v1_rt__id__latest_get
parameters:
- name: id
in: path
required: true
schema:
type: string
title: Id
- name: countdown_clock
in: query
required: false
schema:
type: boolean
description: Show countdown clock when not imaging
default: false
title: Countdown Clock
description: Show countdown clock when not imaging
responses:
'200':
description: Latest stream data
'404':
description: Stream ID not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'500':
description: No data available or failed to retrieve from data source
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
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
RTStreamListItem:
properties:
name:
type: string
title: Name
id:
type: string
title: Id
description:
type: string
title: Description
site_uid:
type: string
title: Site Uid
network:
type: string
title: Network
mimetype:
type: string
title: Mimetype
type: object
required:
- name
- id
- description
- site_uid
- network
- mimetype
title: RTStreamListItem
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
ErrorMessage:
properties:
detail:
type: string
title: Detail
type: object
required:
- detail
title: ErrorMessage
RTWebSocketInfo:
properties:
url:
type: string
title: Url
protocol:
type: string
title: Protocol
description:
type: string
title: Description
subscribe_message:
additionalProperties: true
type: object
title: Subscribe Message
unsubscribe_message:
additionalProperties: true
type: object
title: Unsubscribe Message
binary_format:
type: string
title: Binary Format
json_format:
additionalProperties: true
type: object
title: Json Format
type: object
required:
- url
- protocol
- description
- subscribe_message
- unsubscribe_message
- binary_format
- json_format
title: RTWebSocketInfo
RTStreamListing:
properties:
streams:
items:
$ref: '#/components/schemas/RTStreamListItem'
type: array
title: Streams
type: object
required:
- streams
title: RTStreamListing
securitySchemes:
AccessToken:
type: http
description: Send the Authorization header found in the response of a successful /authentication request on all secure endpoints. Copy it verbatim to the request header. It is fine to send this header on all requests to the API. The value in Swagger UI should only include the access token part (leave out 'Bearer').
name: Authorization
in: header
scheme: bearer
bearerFormat: Generated by server
ApiKeyAuth:
type: apiKey
description: API keys are intended to be used by non-interactive software interfacing with the REST API. These can be used instead of an Access Token approach.
name: x-aurorax-api-key
in: header