openapi: 3.2.0
info:
title: Starlink Public Managed Accounts 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: Managed Accounts
paths:
/public/v2/managed/accounts/tree:
get:
tags:
- Managed Accounts
summary: 'Pre-Release: Get managed account tree'
description: "Required permission: Managed Account Information, View.
Gets the entire managed account hierarchy beneath the calling account.\n \nThis endpoint is available for select audiences only."
parameters:
- name: ancestorAccountNumber
in: query
description: "The root account number to build the tree from. If not provided, uses the token's account.\n This account number must be in the hierarchy underneath the calling account."
schema:
type: string
responses:
'401':
description: Unauthorized
'403':
description: Missing required permission for this endpoint or resource
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceResponse'
'200':
description: Account tree retrieved
content:
application/json:
schema:
$ref: '#/components/schemas/ManagedAccountTreeResponseV2ServiceResponse'
'422':
description: Failed to retrieve managed account tree
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceResponse'
/public/v2/managed/accounts:
get:
tags:
- Managed Accounts
summary: 'Pre-Release: Query managed accounts'
description: "Required permission: Managed Account Information, View.
Query managed accounts within your account hierarchy with filtering and pagination support.\nReturns up to 100 accounts at at time.\n \nThis endpoint is available for select audiences only."
parameters:
- name: ancestorAccountNumber
in: query
description: "Query accounts under this ancestor account number.\n Defaults to calling token's account if not provided."
schema:
type: string
- name: searchString
in: query
description: Filter by account name or number (prefix match)
schema:
type: string
- name: accountNumbers
in: query
description: Get specific accounts by account numbers
schema:
type: array
items:
type: string
- name: maxDepth
in: query
description: "Maximum depth in hierarchy (1 = direct children only, 2 = children +\n grandchildren, 3 = children through great-grandchildren, etc. null for all\n descendants.)"
schema:
type: integer
format: int32
- name: cursor
in: query
description: Pagination cursor for fetching next page
schema:
type: string
responses:
'200':
description: Managed accounts retrieved
content:
application/json:
schema:
$ref: '#/components/schemas/AccountQueryResponseV2KeyPaginatedStringServiceResponse'
'401':
description: Unauthorized
'403':
description: "Missing\n required permission for this endpoint or resource"
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceResponse'
'422':
description: "Failed to\n query managed accounts"
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceResponse'
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
AccountQueryResponseV2KeyPaginatedStringServiceResponse:
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/AccountQueryResponseV2KeyPaginatedString'
additionalProperties: false
ManagedAccountTreeNodeResponseV2:
type: object
properties:
accountNumber:
type: string
description: The account number
accountName:
type: string
description: The account name
managerAccountNumber:
type:
- string
- 'null'
description: The manager account number (null for root)
children:
type: array
items:
type: string
description: List of child account numbers
additionalProperties: false
ManagedAccountTreeResponseV2:
type: object
properties:
rootAccountNumber:
type: string
description: The root account number
tree:
type: object
additionalProperties:
$ref: '#/components/schemas/ManagedAccountTreeNodeResponseV2'
description: Dictionary mapping account numbers to tree nodes
additionalProperties: false
AccountQueryResponseV2KeyPaginatedString:
type: object
properties:
nextKey:
type:
- string
- 'null'
description: The next key that should be provided to the cursor parameter to fetch the next page, or null if this is the last page.
results:
type: array
items:
$ref: '#/components/schemas/AccountQueryResponseV2'
description: Results for this page.
additionalProperties: false
ValidationResult:
type: object
properties:
memberNames:
type:
- array
- 'null'
items:
type: string
readOnly: true
errorMessage:
type:
- string
- 'null'
additionalProperties: false
AccountQueryResponseV2:
type: object
properties:
accountNumber:
type: string
description: 'The Account Number. Example: ACC-511274-31364-54'
regionCode:
type: string
description: 'The region code of the account. Example: US'
accountName:
type: string
description: The name of the account
additionalProperties: false
ManagedAccountTreeResponseV2ServiceResponse:
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/ManagedAccountTreeResponseV2'
additionalProperties: false