SSC Space Go API v1¶
Version: 0.3.0
Base URL¶
| Environment | URL |
|---|---|
| Current Host | /api/v1 |
Authentication¶
bearerAuth¶
Type: HTTP Bearer (JWT) The API can be accessed using a previously acquired JWT token.
oAuth2¶
Type: OAuth 2.0
The API supports OAuth 2.0 authentication mechanism with the 'Authorization Code Flow' to obtain an access token.
Client Credentials Flow:
- Token URL: https://login.microsoftonline.com/f4246ccf-daeb-49b9-bc11-f01f5db1744f/oauth2/v2.0/token
API Endpoints¶
Quick Reference¶
| Method | Endpoint | Description |
|---|---|---|
| GET | /contacts |
Get contacts with optional filtering |
| POST | /contacts |
Request a contact |
| GET | /contacts/availability |
Get the availability for a specific spacecraft and... |
| GET | /contacts/{contact_id} |
Get contact |
| DELETE | /contacts/{contact_id} |
Deletes a contact. A contact can only be deleted under... |
| GET | /post-contact-reports/{contact_id} |
Get a complete post contact report by contact ID |
| GET | /spacecraft |
Get a list of spacecraft according to the query... |
| GET | /spacecraft/{spacecraft_id} |
Get information about one spacecraft. |
| GET | /spacecraft/{spacecraft_id}/tle |
Get the current TLE for the spacecraft. |
| POST | /spacecraft/{spacecraft_id}/tle |
Upload a TLE to be use for the spacecraft contacts |
| GET | /spacecraft/{spacecraft_id}/service-types/{service_type}/services |
Get contact service configurations for the given spacecraft id. |
| GET | /spacecraft/{spacecraft_id}/service-types/{service_type}/services/{service_id} |
Get contact service of given spacecraft and service id. |
| GET | /sites |
Get a list of sites according to the query parameter... |
| GET | /sites/{site_id} |
Get information about one site. |
Scheduling¶
GET /contacts¶
Get contacts with optional filtering
Retrieves contacts based on specified filter criteria.
Default Time Window:
Without start and end parameters, the API defaults to:
- Start: Current UTC time
- End: Configurable days ahead (default: 7 days)
This returns a manageable set of upcoming contacts for common use cases.
Important Notes:
- The default time window only includes future contacts starting from the current moment
- For past contacts: explicitly set start to a historical date
- For contacts beyond default window: specify end
- For all contacts (past and future): specify both start and end with wide ranges
Examples:
Get default upcoming contacts (next 7 days):
Get contacts for a specific date range:
Get all past contacts from last year:
Required Scopes: contacts.view
Parameters:
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
spacecraft_id |
query | array[string] | No | Spacecraft IDs. If empty contacts for the all spacecrafts will be returned. |
site_id |
query | array[string] | No | Site ID. If empty contacts on all sites will be returned. |
state |
query | array[BookingStates] | No | Filter on contact state. If empty contacts with all states will be returned. |
start |
query | string (date-time) | No | Start of time range, represented as YYYY-MM-DDThh:mm:ss[.sss]Z. If omitted, defaults to current UTC time. Specify this parameter to query historical contacts or a specific future date range. |
end |
query | string (date-time) | No | End of time range, represented as YYYY-MM-DDThh:mm:ss[.sss]Z. If omitted, defaults to a configurable number of days from the current time (default: 7 days). Specify this parameter to query beyond the default time window. |
last_updated |
query | string (date-time) | No | Contacts updated since this time, represented as YYYY-MM-DDThh:mm:ss[.sss]Z. |
Responses:
| Status | Description |
|---|---|
200 |
Request received successfully. Returns the contacts that match the given criterias. |
400 |
Invalid input, refer to the body for a detailed description. |
401 |
Unauthorised |
403 |
Access to requested resource is denied. |
default |
Unexpected error |
200 Response Body
Content-Type: application/json
Schema: Array of object
POST /contacts¶
Request a contact
This endpoint creates the requested contact if the request is valid.
Required Scopes: contacts.create
Request Body:
Content-Type: application/json
Schema: ContactCreateRequest
Responses:
| Status | Description |
|---|---|
201 |
Successfully created |
400 |
Invalid input, refer to the body for a detailed description. |
401 |
Unauthorised |
403 |
Access to requested resource is denied. |
default |
Unexpected error |
GET /contacts/availability¶
Get the availability for a specific spacecraft and service, site and time range
This endpoint returns the availability for the requested parameters if the request is valid. If a shorter slot within the provided time range is available, it will return it with the availability status set to partrial.
Required Scopes: contacts.view
Parameters:
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
spacecraft_id |
query | string | Yes | |
site_id |
query | string | Yes | |
service_config_id |
query | string | Yes | |
start |
query | string (date-time) | Yes | |
end |
query | string (date-time) | Yes |
Responses:
| Status | Description |
|---|---|
200 |
Request received successfully. |
400 |
Invalid input, refer to the body for a detailed description. |
401 |
Unauthorised |
403 |
Access to requested resource is denied. |
default |
Unexpected error |
GET /contacts/{contact_id}¶
Get contact
Required Scopes: contacts.view
Parameters:
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
contact_id |
path | string | Yes | Contact id |
Responses:
| Status | Description |
|---|---|
200 |
Request received successfully. Returns contact information associated to request. |
400 |
Invalid input, refer to the body for a detailed description. |
401 |
Unauthorised |
403 |
Access to requested resource is denied. |
404 |
The requested resource is not available. |
default |
Unexpected error |
DELETE /contacts/{contact_id}¶
Deletes a contact. A contact can only be deleted under certain specific conditions. If those conditions are not meet this operation will fail.
Required Scopes: contacts.cancel
Parameters:
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
contact_id |
path | string | Yes | The ID of the contact to be deleted |
Responses:
| Status | Description |
|---|---|
204 |
Resource deleted successfully |
400 |
Invalid input, refer to the body for a detailed description. |
401 |
Unauthorised |
403 |
Access to requested resource is denied. |
default |
Unexpected error |
GET /spacecraft¶
Get a list of spacecraft according to the query parameters provided. Only one query parameter can be provided per request. If more than one query parameter is provided then the request will fail. If no query parameter is provided the user will receive a list with all the spacecrafts to which you have access.
Required Scopes: spacecraft.view
Parameters:
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
spacecraft_id |
query | array[string] | No | Spacecraft ID list. If empty spacecraft will not be filtered by spacecraft_id. |
name |
query | array[string] | No | Spacecraft name list. If empty spacecraft will not be filtered by name. |
acronym |
query | array[string] | No | Spacecraft acronyms list. If empty spacecraft will not be filtered by acronym. |
norad_id |
query | array[integer] | No | Spacecraft norad id. If empty spacecraft will not be filtered by norad id. |
Responses:
| Status | Description |
|---|---|
200 |
Request received successfully. Returns the spacecraft information for the requested spacecrafts. |
400 |
Invalid input, refer to the body for a detailed description. |
401 |
Unauthorised |
403 |
Access to requested resource is denied. |
default |
Unexpected error |
200 Response Body
Content-Type: application/json
Schema: Array of object
GET /spacecraft/{spacecraft_id}¶
Get information about one spacecraft.
Required Scopes: spacecraft.view
Parameters:
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
spacecraft_id |
path | string | Yes | Spacecraft ID |
Responses:
| Status | Description |
|---|---|
200 |
Request received successfully. Returns the spacecraft information. |
400 |
Invalid input, refer to the body for a detailed description. |
401 |
Unauthorised |
403 |
Access to requested resource is denied. |
404 |
The requested resource is not available. |
default |
Unexpected error |
GET /spacecraft/{spacecraft_id}/service-types/{service_type}/services¶
Get contact service configurations for the given spacecraft id.
Required Scopes: spacecraft.view
Parameters:
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
spacecraft_id |
path | string | Yes | Spacecraft id |
service_type |
path | ServiceTypeParam | Yes | Service type identifier |
name |
query | array[string] | No | Contact service name list. If empty, then contact service will not be filtered by name. |
Responses:
| Status | Description |
|---|---|
200 |
Request received successfully. Returns the requested contact service IDs for the spacecraft. |
400 |
Invalid input, refer to the body for a detailed description. |
401 |
Unauthorised |
403 |
Access to requested resource is denied. |
404 |
The requested resource is not available. |
default |
Unexpected error |
200 Response Body
Content-Type: application/json
Schema: Array of object
GET /spacecraft/{spacecraft_id}/service-types/{service_type}/services/{service_id}¶
Get contact service of given spacecraft and service id.
Required Scopes: spacecraft.view
Parameters:
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
spacecraft_id |
path | string | Yes | Spacecraft id |
service_type |
path | ServiceTypeParam | Yes | |
service_id |
path | string | Yes | Contact service id |
Responses:
| Status | Description |
|---|---|
200 |
Request received successfully. Returns the spacecraft service information. |
400 |
Invalid input, refer to the body for a detailed description. |
401 |
Unauthorised |
403 |
Access to requested resource is denied. |
404 |
The requested resource is not available. |
default |
Unexpected error |
GET /sites¶
Get a list of sites according to the query parameter provided. Only one query parameter can be provided per request. If more than one query parameter is provided then the request will fail. If no query parameter is provided the user will receive a list with all the sites.
Required Scopes: sites.view
Parameters:
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
name |
query | array[string] | No | Site name list. If empty sites will not be filtered by name. |
acronym |
query | array[string] | No | Site acronyms list. If empty sites will not be filtered by acronym. |
Responses:
| Status | Description |
|---|---|
200 |
Request received successfully. Returns the information for the requested sites. |
400 |
Invalid input, refer to the body for a detailed description. |
401 |
Unauthorised |
403 |
Access to requested resource is denied. |
default |
Unexpected error |
200 Response Body
Content-Type: application/json
Schema: Array of object
GET /sites/{site_id}¶
Get information about one site.
Required Scopes: sites.view
Parameters:
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
site_id |
path | string | Yes | Site id |
Responses:
| Status | Description |
|---|---|
200 |
Request received successfully. Returns the site information. |
400 |
Invalid input, refer to the body for a detailed description. |
401 |
Unauthorised |
403 |
Access to requested resource is denied. |
404 |
The requested resource is not available. |
default |
Unexpected error |
Post-Contact-Reports¶
GET /post-contact-reports/{contact_id}¶
Get a complete post contact report by contact ID
Required Scopes: contacts.view
Parameters:
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
contact_id |
path | string | Yes | The ID of the contact whose post contact report is requested |
Responses:
| Status | Description |
|---|---|
200 |
The complete post contact report for the contact |
400 |
Invalid input, refer to the body for a detailed description. |
401 |
Unauthorised |
403 |
Access to requested resource is denied. |
404 |
The requested resource is not available. |
default |
Unexpected error |
Tle¶
GET /spacecraft/{spacecraft_id}/tle¶
Get the current TLE for the spacecraft.
Required Scopes: tle.view
Parameters:
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
spacecraft_id |
path | string | Yes | Spacecraft ID |
Responses:
| Status | Description |
|---|---|
200 |
Returns the current TLE use for the spacecraft. |
400 |
Invalid input, refer to the body for a detailed description. |
401 |
Unauthorised |
403 |
Access to requested resource is denied. |
404 |
The requested resource is not available. |
default |
Unexpected error |
POST /spacecraft/{spacecraft_id}/tle¶
Upload a TLE to be use for the spacecraft contacts
This endpoint uploads the TLE that will be used to track the spacecraft during the contact.
Required Scopes: tle.upload
Parameters:
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
spacecraft_id |
path | string | Yes | Spacecraft id |
Request Body:
Content-Type: application/json
Schema: TLE
Responses:
| Status | Description |
|---|---|
201 |
TLE upload request accepted |
400 |
Invalid input, refer to the body for a detailed description. |
401 |
Unauthorised |
403 |
Access to requested resource is denied. |
default |
Unexpected error |
Data Models¶
ServiceTypeParam¶
Service type identifier
Type: Enum (string)
Allowed Values: contact
BookingStates¶
Type: Enum (string)
Allowed Values: NEW, PENDING, CONFIRMED, CANCELLED, REJECTED, REVIEW, ONHOLD, ONGOING, SUCCESS, PARTIAL_SUCCESS, FAIL, POST_CONTACT, UNKNOWN
ContactServiceConfiguration¶
Type: Object
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | ID of the service configuration. |
name |
string | No | Contact service name. |
description |
string | No | Contact service description. |
ContactId¶
Type: Object
| Field | Type | Required | Description |
|---|---|---|---|
contact_id |
string | Yes | ID of the contact. |
Contact¶
Type: Object
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | No | The contact ID |
spacecraft_id |
string | Yes | The ID of the spacecraft that will be contacted during the service. |
start |
string (date-time) | Yes | The time when the contact service starts. The expected format is YYYY-MM-DDThh:mmZ, which represents a date-time with minutes accuracy rounding down the seconds. |
end |
string (date-time) | Yes | The time when the contact service ends. The expected format is YYYY-MM-DDThh:mmZ, which represents a date-time with minutes accuracy rounding up the seconds. |
site_id |
string | Yes | The site where will take place the contact. |
service |
ContactServiceConfiguration | Yes | The service configuration to use for the contact service. |
state |
BookingStates | No | |
customizations |
ContactCustomizations | No | Customizations to be applied to the contact |
state_msg |
string | No | Provides information about the contact state. For example, if a contact goes to ONHOLD state this message will contain information about why the contact is in that state. This field is optional as there are states that may not need to use it like the CONFIRMED state. |
last_updated |
string (date-time) | No | Timestamp that shows the last time there was an update on the contact. For example, a state change. |
ContactCreateRequest¶
Type: Object
| Field | Type | Required | Description |
|---|---|---|---|
spacecraft_id |
string | Yes | The ID of the spacecraft that will be contacted during the service. |
start |
string (date-time) | Yes | The time when the contact service starts. The expected format is YYYY-MM-DDThh:mmZ, which represents a date-time with minutes accuracy rounding down the seconds. |
end |
string (date-time) | Yes | The time when the contact service ends. The expected format is YYYY-MM-DDThh:mmZ, which represents a date-time with minutes accuracy rounding up the seconds. |
site_id |
string | Yes | The site where will take place the contact. |
service |
ContactServiceConfiguration | Yes | The service configuration to use for the contact service. |
customizations |
ContactCustomizations | No | Customizations to be applied to the contact |
PostContactReport¶
Type: Object
| Field | Type | Required | Description |
|---|---|---|---|
contact_id |
string | No | The contact Id. |
mission_id |
string | No | The id of the mission |
mission_name |
string | No | The name of the mission |
spacecraft_id |
string | No | The id of the spacecraft |
spacecraft_name |
string | No | The name of the spacecraft |
site_name |
string | No | The name of the site |
site_id |
string | No | The id of the site |
contact_service_config_id |
string | No | The contact service config id |
contact_service_config_name |
string | No | The name of the contact service config |
contact_service_config_description |
string | No | Description of the contact service config |
start |
string (date-time) | No | The time when the contact service starts. The expected format is YYYY-MM-DDThh:mmZ, which represents a date-time with minutes accuracy rounding down the seconds. |
end |
string (date-time) | No | The time when the contact service ends. The expected format is YYYY-MM-DDThh:mmZ, which represents a date-time with minutes accuracy rounding up the seconds. |
channels |
array[SignalChannelReport] | No | Per channel report |
antenna_metrics |
array[Metric] | No | Sampled metrics for the antenna during the contact. |
aborted |
boolean | No | Whether the contact was aborted (cancelled). If true, no signal channels will be included in the report. |
data_products_summary |
DataProductsSummary | No | Summary of data products (RAR artifacts) for this contact. |
DataProductsSummary¶
Type: Object
| Field | Type | Required | Description |
|---|---|---|---|
data_products_created_count |
integer | No | Number of data products created for the contact. |
data_products_delivered_count |
integer | No | Number of data products successfully delivered. |
data_products |
array[DataProductStatus] | No | Per-data-product status. |
DataProductStatus¶
Type: Object
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | No | Data product (artifact) id. |
name |
string | No | Data product name or location. |
status |
string | No | Aggregated processing record status. |
transfer_successful |
boolean | No | Whether transfer completed successfully. |
last_transfer_attempt_at |
string (date-time) | No | Timestamp of last transfer attempt. |
SignalChannelReport¶
Type: Object
| Field | Type | Required | Description |
|---|---|---|---|
channel_number |
integer | No | Signal channel number |
description |
string | No | Signal channel description |
rf_band |
string | No | RF Band |
polarization |
string | No | Polarization |
unrecoverable_error |
boolean | No | Did the signal channel have an unrecoverable error |
tc_statistics |
TCStatistics | No | |
metrics |
SignalChannelMetrics | No | Sampled metrics for this signal channel during the contact. |
TCStatistics¶
Type: Object
| Field | Type | Required | Description |
|---|---|---|---|
tc_received |
integer | No | Number of received telecommands |
tc_rejected |
integer | No | Number of rejected telecommands |
tc_processed |
integer | No | Number of processed telecommands |
tc_radiated |
integer | No | Number of radiated telecommands |
Spacecraft¶
Type: Object
| Field | Type | Required | Description |
|---|---|---|---|
spacecraft_id |
string | Yes | The spacecraft Id. |
norad_id |
integer (int32) | No | Provides the NORAD Satellite ID. The field will not be present if the NORAD ID is not available. |
name |
string | Yes | The spacecraft Name. |
acronym |
string | Yes | The spacecraft Acronym. |
services |
SpacecraftConfigurations | Yes | The valid services for the spacecraft. |
sites |
array[string] | Yes | The valid site IDs for the spacecraft. |
booking_horizon |
TimeSlot | No | The time range when it allowed to book a contact with this spacecraft. |
Site¶
Type: Object
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | The site Id. |
name |
string | Yes | The site Name. |
acronym |
string | Yes | The site Acronym. |
latitude |
string | Yes | The latitude of the site. |
longitude |
string | Yes | The longitude of the site. |
altitude |
string | Yes | The altitude of the site. |
SpacecraftConfigurations¶
Type: Object
| Field | Type | Required | Description |
|---|---|---|---|
contact |
array[string] | No | The valid service configuration IDs for the spacecraft. |
ContactCustomizations¶
Type: Object
| Field | Type | Required | Description |
|---|---|---|---|
s_band |
RfCustomization | No | Customizations for S-band. |
x_band |
RfCustomization | No | Customizations for X-band. |
RfCustomization¶
Type: Object
| Field | Type | Required | Description |
|---|---|---|---|
uplink_polarization |
string | No | The uplink polarization to be used. |
downlink_polarization |
string | No | The downlink polarization to be used. |
recording_times |
TimeRange | No | The recording times to be use within the contact duration. |
TimeRange¶
Type: Object
| Field | Type | Required | Description |
|---|---|---|---|
start_time |
string (date-time) | No | start time |
end_time |
string (date-time) | No | end time |
ProblemDescription¶
Responses of type 'application/problem+json'.
Type: Object
| Field | Type | Required | Description |
|---|---|---|---|
title |
string | Yes | Short summary of the reported problem. |
detail |
string | Yes | Detailed description of the reported problem. |
trace_id |
string (uuid) | Yes | Trace ID that is unique for the specific request. |
TLE¶
Type: Object
| Field | Type | Required | Description |
|---|---|---|---|
line1 |
string | Yes | The first line of the TLE data. |
line2 |
string | Yes | The second line of the TLE data. |
MetricValue¶
Type: Object
| Field | Type | Required | Description |
|---|---|---|---|
value |
No | Value of the metric (integer, float, or string). | |
time |
string (date-time) | No | Timestamp for the metric sample. |
Metric¶
Type: Object
| Field | Type | Required | Description |
|---|---|---|---|
values |
array[MetricValue] | No | List of sampled values of the metric during the contact |
name |
string | No | Name of the metric. |
unit |
string | No | Unit of the metric value. |
SignalChannelMetrics¶
Type: object
GetAvailabilityResponse¶
Type: Object
| Field | Type | Required | Description |
|---|---|---|---|
availability_status |
string | No | Availability status of the requested time slot. |
available_time_slot |
TimeSlot | No | A time slot where all requested resources are available |
TimeSlot¶
Type: Object
| Field | Type | Required | Description |
|---|---|---|---|
start |
string (date-time) | Yes | Start of the time slot |
end |
string (date-time) | Yes | End of the time slot |
Documentation generated from OpenAPI specification.