Skip to content

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

Get contacts for a specific date range:

GET /contacts?start=2025-10-01T00:00:00Z&end=2025-10-31T23:59:59Z

Get all past contacts from last year:

GET /contacts?start=2024-01-01T00:00:00Z&end=2024-12-31T23:59:59Z

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

400 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

403 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

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
201 Response Body

Content-Type: application/json

Schema: ContactId

400 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

403 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

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
200 Response Body

Content-Type: application/json

Schema: GetAvailabilityResponse

400 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

403 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

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
200 Response Body

Content-Type: application/json

Schema: Contact

400 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

403 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

404 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

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
400 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

403 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

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

400 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

403 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

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
200 Response Body

Content-Type: application/json

Schema: Spacecraft

400 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

403 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

404 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

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

400 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

403 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

404 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

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
200 Response Body

Content-Type: application/json

Schema: ContactServiceConfiguration

400 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

403 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

404 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

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

400 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

403 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

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
200 Response Body

Content-Type: application/json

Schema: Site

400 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

403 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

404 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription


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
200 Response Body

Content-Type: application/json

Schema: PostContactReport

400 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

403 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

404 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription


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
200 Response Body

Content-Type: application/json

Schema: TLE

400 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

403 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

404 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

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
400 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription

403 Response Body

Content-Type: application/problem+json

Schema: ProblemDescription


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.