openapi: 3.2.0 info: title: Starlink Public Contacts API description: '

Description

API to manage Starlink accounts and devices. For interactive endpoints list see: https://starlink.readme.io/

Authentication - OIDC

To authenticate with this API using OIDC, Well Known URL and attach the result to your requests with the Authorize button below.

' version: '2' servers: - url: /api tags: - name: Contacts paths: /public/v2/contacts: get: tags: - Contacts summary: Get contacts description: 'Required permission: User management, Edit.
Get list of contacts on the authenticated user''s account.' parameters: - name: page in: query description: Page of contacts to query. schema: type: integer format: int32 default: 0 responses: '400': description: Bad request. Invalid or missing parameter '401': description: Unauthorized '200': description: Contacts retrieved. content: application/json: schema: $ref: '#/components/schemas/UserResponsePaginatedServiceResponse' '422': description: Failed to retrieve contacts. content: application/json: schema: $ref: '#/components/schemas/ServiceResponse' default: description: Error '403': description: user_lacks_required_permission content: application/json: schema: $ref: '#/components/schemas/UserLacksRequiredPermissionServiceResponse' post: tags: - Contacts summary: Create contact description: 'Required permission: Admin Only - API User Management, Edit.
Creates the contact if it is new, and adds the contact to the authenticated account.' requestBody: description: Contact information to be added to account. content: application/json: schema: $ref: '#/components/schemas/CreateContactOnAccountRequest' responses: '401': description: Unauthorized '400': description: Bad request. Invalid or missing parameter '200': description: Contact has been created and added to the account with the requested roles. content: application/json: schema: $ref: '#/components/schemas/UserResponseServiceResponse' '422': description: Failed to create the contact and add it to the account with the correct roles. content: application/json: schema: $ref: '#/components/schemas/ServiceResponse' '403': description: user_lacks_required_permission content: application/json: schema: $ref: '#/components/schemas/UserLacksRequiredPermissionServiceResponse' /public/v2/contacts/{subjectId}: delete: tags: - Contacts summary: Delete contact description: 'Required permission: Admin Only - API User Management, Edit.
Deletes contact based on specified subject Id on the authenticated account.' parameters: - name: subjectId in: path description: Subject ID of contact to be deleted. required: true schema: type: string responses: '400': description: Bad request. Invalid or missing parameter '401': description: Unauthorized '403': description: Forbidden '200': description: Contact successfully deleted from account. content: application/json: schema: $ref: '#/components/schemas/ServiceResponse' '422': description: Failed to delete contact. content: application/json: schema: $ref: '#/components/schemas/ServiceResponse' default: description: Error put: tags: - Contacts summary: Update contact description: 'Required permission: Admin Only - API User Management, Edit.
Update contact on the authenticated account.' parameters: - name: subjectId in: path description: Subject Id of the contact to be updated. required: true schema: type: string requestBody: description: Updates for contact. content: application/json: schema: $ref: '#/components/schemas/UpdateContactOnAccountRequest' responses: '400': description: Bad request. Invalid or missing parameter '401': description: Unauthorized '200': description: Updated contact. content: application/json: schema: $ref: '#/components/schemas/UserResponseServiceResponse' '422': description: Failed to update contact. content: application/json: schema: $ref: '#/components/schemas/ServiceResponse' default: description: Error '403': description: user_lacks_required_permission content: application/json: schema: $ref: '#/components/schemas/UserLacksRequiredPermissionServiceResponse' components: schemas: ServiceResponse: type: object properties: errors: type: - array - 'null' items: $ref: '#/components/schemas/ValidationResult' readOnly: true warnings: type: - array - 'null' items: $ref: '#/components/schemas/ValidationResult' readOnly: true information: type: - array - 'null' items: type: string readOnly: true isValid: type: boolean readOnly: true additionalProperties: false UserResponsePaginatedServiceResponse: type: object properties: errors: type: - array - 'null' items: $ref: '#/components/schemas/ValidationResult' readOnly: true warnings: type: - array - 'null' items: $ref: '#/components/schemas/ValidationResult' readOnly: true information: type: - array - 'null' items: type: string readOnly: true isValid: type: boolean readOnly: true content: $ref: '#/components/schemas/UserResponsePaginated' additionalProperties: false UserLacksRequiredPermissionServiceResponse: type: object properties: errors: type: - array - 'null' items: $ref: '#/components/schemas/ValidationResult' readOnly: true warnings: type: - array - 'null' items: $ref: '#/components/schemas/ValidationResult' readOnly: true information: type: - array - 'null' items: type: string readOnly: true isValid: type: boolean readOnly: true content: $ref: '#/components/schemas/UserLacksRequiredPermission' additionalProperties: false UserResponseServiceResponse: type: object properties: errors: type: - array - 'null' items: $ref: '#/components/schemas/ValidationResult' readOnly: true warnings: type: - array - 'null' items: $ref: '#/components/schemas/ValidationResult' readOnly: true information: type: - array - 'null' items: type: string readOnly: true isValid: type: boolean readOnly: true content: $ref: '#/components/schemas/UserResponse' additionalProperties: false UserResponsePaginated: type: object properties: pageIndex: type: integer format: int32 limit: type: integer format: int32 isLastPage: type: boolean results: type: - array - 'null' items: $ref: '#/components/schemas/UserResponse' totalCount: type: integer format: int32 additionalProperties: false ValidationResult: type: object properties: memberNames: type: - array - 'null' items: type: string readOnly: true errorMessage: type: - string - 'null' additionalProperties: false UserLacksRequiredPermission: type: object properties: accountId: type: - string - 'null' requiredPermission: $ref: '#/components/schemas/FeaturePermission' featureAccessString: type: - string - 'null' permissionString: type: - string - 'null' additionalProperties: false Permission: enum: - 0 - 1 type: integer format: int32 x-enumNames: - View - Edit UserResponse: required: - email - roles - subjectId type: object properties: subjectId: minLength: 1 type: string description: Unique subject ID given to this user. email: minLength: 1 type: string description: User email. roles: type: array items: type: string description: List of User roles which map to permissions on the specified account. additionalProperties: false CreateContactOnAccountRequest: required: - email - firstName - lastName - locale - phoneNumber - roles type: object properties: firstName: minLength: 1 type: string description: Contact first name. lastName: minLength: 1 type: string description: Contact last name. roles: type: array items: type: string description: Contact roles on account. email: minLength: 1 type: string description: Contact email. phoneNumber: minLength: 1 type: string description: Contact phone number. locale: minLength: 1 type: string description: Contact locale. additionalProperties: false FeatureAccess: enum: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 - 21 - 22 - 23 - 3001 - 3002 - 3003 type: integer format: int32 x-enumNames: - DeviceTelemetry - DeviceCommand - Financial - UserManagement - AccountInformation - OutageHistory - SupportRequest - DeviceManagement - ServicePlan - UserViewership - ServiceAccountManagement - DataSharingPreferenceManagement - DeviceConfigurationAssignment - AviationFlightStatusManagement - AdminOnlyUserManagementViaAPI - ManagedAccountCreation - ManagedAccountsInventoryManagement - ManagedAccountInformation - ManagedAccountStructureManagement - ManagedAccountDeletion - ManagedAccountLocationSettings - DataUsageNotifications - ManagedAccountBillingInformation - GatedFeature__Installer - GatedFeature__LawEnforcementAgency - GatedFeature__StarlinkMobileData FeaturePermission: required: - featureAccess - permission type: object properties: featureAccess: $ref: '#/components/schemas/FeatureAccess' permission: $ref: '#/components/schemas/Permission' additionalProperties: false UpdateContactOnAccountRequest: type: object properties: roles: type: - array - 'null' items: type: string description: Contact roles on the account. phoneNumber: type: - string - 'null' description: Contact phone number. additionalProperties: false