Starlink Data Pools API

The Data Pools API from Starlink — 3 operation(s) for data pools.

Operations 3

GET /public/v2/data-pools Pre-Release: Get all multi-service line enabled data pools.
GET /public/v2/data-pools/usage Pre-Release: Query data pool usage with service line and monthly breakdowns.
POST /public/v2/data-pools/{dataPoolId}/set-automatic-top-up Pre-Release: Enable or disable automatic top-up for a data pool.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/starlink-data-pools-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

starlink-data-pools-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Starlink Public Data Pools API
  description: '<h3>Description</h3>API to manage Starlink accounts and devices. For interactive endpoints list see: <a href=''https://starlink.readme.io/''>https://starlink.readme.io/</a><h3>Authentication - OIDC</h3><p>To authenticate with this API using OIDC, <a target=''_blank'' href=''/api/auth/.well-known/openid-configuration''>Well Known URL</a> and attach the result to your requests with the <strong>Authorize</strong> button below.</p>'
  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.<br/>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.<br/>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.<br/>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