openapi: 3.2.0
info:
title: Starlink Public Data Pools 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: Data Pools
paths:
/public/v2/data-pools:
get:
tags:
- Data Pools
summary: 'Pre-Release: Get all multi-service line enabled data pools.'
description: 'Required permission: Service plan, View.
This endpoint is available for select audiences only.'
parameters:
- name: productReferenceId
in: query
description: Filter by Product ID of the pool
schema:
type: string
- name: dataPoolIds
in: query
description: Data pool IDs to filter by. Queries for all data pools on account if omitted
schema:
type: array
items:
type: string
- name: page
in: query
description: The index of the page, starting at 0. Page size is 100
schema:
type: integer
format: int32
default: 0
responses:
'400':
description: Bad Request
'401':
description: Unauthorized
'403':
description: Forbidden
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/DataPoolResponseV2PaginatedServiceResponse'
'422':
description: Unprocessable Content
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceResponse'
/public/v2/data-pools/usage:
get:
tags:
- Data Pools
summary: 'Pre-Release: Query data pool usage with service line and monthly breakdowns.'
description: 'Required permission: Service plan, View.
This endpoint is available for select audiences only.'
parameters:
- name: dataPoolIds
in: query
description: Data pool Ids to filter by. Queries for usage of all data pools on account if omitted
schema:
type: array
items:
type: string
- name: asOfTimestamp
in: query
description: "Optional timestamp for snapshotting data pool usage *as of* this time. Only includes data blocks\n that are active at this instant (i.e., `StartDate <= asOfTimestamp < EndDate`).\n Defaults to `DateTimeOffset.UtcNow` to return currently active blocks."
schema:
type: string
format: date-time
- name: page
in: query
description: The index of the page, starting at 0.
schema:
type: integer
format: int32
default: 0
- name: limit
in: query
description: Amount of data pool usage summaries to retrieve per page. Defaults to 50, can request up to 100.
schema:
type: integer
format: int32
default: 50
responses:
'400':
description: Bad Request
'401':
description: Unauthorized
'403':
description: Forbidden
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/DataPoolUsageResponseV2PaginatedServiceResponse'
'422':
description: Unprocessable Content
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceResponse'
/public/v2/data-pools/{dataPoolId}/set-automatic-top-up:
post:
tags:
- Data Pools
summary: 'Pre-Release: Enable or disable automatic top-up for a data pool.'
description: 'Required permission: Service plan, Edit.
This endpoint is available for select audiences only.'
parameters:
- name: dataPoolId
in: path
description: The data pool ID
required: true
schema:
type: string
- name: enabled
in: query
description: Whether automatic top-up should be enabled (defaults to true)
schema:
type: boolean
default: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceResponse'
'400':
description: Bad Request
'401':
description: Unauthorized
'403':
description: Forbidden
'422':
description: Unprocessable Content
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
DataPoolResponseV2PaginatedServiceResponse:
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/DataPoolResponseV2Paginated'
additionalProperties: false
DataBlockMonthlyResponseV2:
type: object
properties:
startDate:
type: string
description: Start date of the respective month.
format: date-time
endDate:
type: string
description: End date of the respective month.
format: date-time
serviceLineUsage:
type: array
items:
$ref: '#/components/schemas/DataBlockServiceLineUsagePublicResponseV2'
description: Montly usage breakdown by service lines.
additionalProperties: false
DataBlockServiceLineUsagePublicResponseV2:
type: object
properties:
serviceLineNumber:
type: string
description: Service line number.
consumedAmountGB:
type: number
description: GB amount that the service line consumed from the block.
format: double
additionalProperties: false
ValidationResult:
type: object
properties:
memberNames:
type:
- array
- 'null'
items:
type: string
readOnly: true
errorMessage:
type:
- string
- 'null'
additionalProperties: false
DataPoolUsageResponseV2Paginated:
type: object
properties:
pageIndex:
type: integer
format: int32
limit:
type: integer
format: int32
isLastPage:
type: boolean
results:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/DataPoolUsageResponseV2'
totalCount:
type: integer
format: int32
additionalProperties: false
DataPoolResponseV2:
type: object
properties:
dataPoolId:
type: string
description: Data pool ID.
nickname:
type:
- string
- 'null'
description: Nickname of the data pool.
automaticTopUpEnabled:
type: boolean
description: If the data pool is opted-in to overage top-ups.
restricted:
type: boolean
description: If the data pool and service lines on it are restricted due to exhausting their data
dataProductType:
$ref: '#/components/schemas/DataProductType'
dataBlocks:
type: array
items:
$ref: '#/components/schemas/DataBlockResponseV2'
description: Active data blocks on the data pool.
productId:
type: string
description: Product ID of the data pool.
additionalProperties: false
DataBlockUsageResponseV2:
type: object
properties:
startDate:
type: string
description: UTC start date of the data block.
format: date-time
endDate:
type: string
description: UTC end date of the data block.
format: date-time
totalAmountGB:
type: number
description: Total GB capacity, calculated by multiplying BlocksCount and PerBlockAmountGB.
format: double
consumedAmountGB:
type: number
description: How much data has been used on the block.
format: double
perBlockAmountGB:
type: number
description: GB capacity per individual block.
format: double
dataBlockType:
$ref: '#/components/schemas/DataBlockType'
productId:
type: string
description: Product ID of the data block.
blocksCount:
type: integer
description: Number of data blocks.
format: int32
serviceLineUsage:
type: array
items:
$ref: '#/components/schemas/DataBlockServiceLineUsagePublicResponseV2'
description: Usage breakdown by service lines.
monthlyUsage:
type: array
items:
$ref: '#/components/schemas/DataBlockMonthlyResponseV2'
description: Usage breakdown by month.
additionalProperties: false
DataBlockType:
enum:
- IncludedWithBaseSubscription
- RecurringPerBillingCycle
- Overage
- OneTimePurchase
type: string
x-enumNames:
- IncludedWithBaseSubscription
- RecurringPerBillingCycle
- Overage
- OneTimePurchase
DataProductType:
enum:
- Ocean
- Land
- Aviation
type: string
x-enumNames:
- Ocean
- Land
- Aviation
DataPoolResponseV2Paginated:
type: object
properties:
pageIndex:
type: integer
format: int32
limit:
type: integer
format: int32
isLastPage:
type: boolean
results:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/DataPoolResponseV2'
totalCount:
type: integer
format: int32
additionalProperties: false
DataPoolUsageResponseV2:
type: object
properties:
dataPoolId:
type: string
description: Data pool ID.
dataBlocks:
type: array
items:
$ref: '#/components/schemas/DataBlockUsageResponseV2'
description: Usage by data blocks in the pool.
additionalProperties: false
DataBlockResponseV2:
type: object
properties:
productId:
type: string
description: Product ID of the data block.
startDate:
type: string
description: Start date of the data block, i.e. when it is active for consumption.
format: date-time
endDate:
type: string
description: End date of the data block, i.e. when it is no longer active for consumption.
format: date-time
isPrepaid:
type: boolean
description: If the data block is prepaid.
blocksCount:
type: integer
description: Number of data blocks.
format: int32
type:
$ref: '#/components/schemas/DataBlockType'
dataAmountGB:
type: number
description: GB capacity per individual block.
format: double
additionalProperties: false
DataPoolUsageResponseV2PaginatedServiceResponse:
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/DataPoolUsageResponseV2Paginated'
additionalProperties: false