---
title: "Create service line"
method: POST
path: "/public/v2/service-lines"
tags: ["Service Lines"]
---

# Create service line

`POST /public/v2/service-lines`

## Request

- Base URL: `https://starlink.com/api`
- URL: `https://starlink.com/api/public/v2/service-lines`
- Auth: HTTP bearer

Required permission: Service plan, Edit.<br/>Service line must be linked to an address and a subscription/product-ID, and can optionally be immediately configured with data blocks.

## Request body

- ServiceLineCreateRequestV2
  - `addressReferenceId` string, uuid, required: Address Reference ID to associate with the service line. Example: 55ec6574-10d8-bd9c-1951-d4184f4ae467
  - `productReferenceId` string, required: Subscription Product ID to associate with the service line. Example: business-subscription-100
  - `dataBlockProducts` ServiceLineDataBlocksRequest
    - `recurringDataBlocks` AddDataBlockRequest[], nullable: Recurring data blocks to configure
      - `productId` string, required: Product Id for data blocks
      - `count` integer, required: Quantity of the specified data block to add
    - `dataPoolId` string, nullable: The ID of an existing multi-service-line data pool to which a new service line should be added. This field is mutually exclusive with RecurringDataBlocks and cannot be used together with it.

## Response `201`

Service line created

- ServiceLineResponseServiceResponse
  - `errors` ValidationResult[], nullable
    - `memberNames` string[], nullable
    - `errorMessage` string, nullable
  - `warnings` ValidationResult[], nullable
    - `memberNames` string[], nullable
    - `errorMessage` string, nullable
  - `information` string[], nullable
  - `isValid` boolean
  - `content` ServiceLineResponse
    - `addressReferenceId` string, uuid: Address Reference ID of the address associated with the service line. Example: 55ec6574-10d8-bd9c-1951-d4184f4ae467
    - `serviceLineNumber` string: The Service Line Number. Example: SL-DF-511274-31364-54
    - `nickname` string, nullable: A user-defined nickname for this service line.
    - `productReferenceId` string: The unique product identifier.
    - `delayedProductId` string, nullable: Scheduled product change for next bill date.
    - `optInProductId` string, nullable: Opt-in product id, opted out if empty.
    - `startDate` string, date-time, nullable: The start date of the subscription. This is in UTC.
    - `endDate` string, date-time, nullable: The service line deactivation date, which only appears if the service line is deactivated. This is in UTC.
    - `publicIp` boolean: Indicates if service line is public IP.
    - `active` boolean: Indicates if service line is active.
    - `dataPoolId` string, nullable: The data pool identifier this service line belongs to if the data pool is enabled for sharing across multiple service lines. Otherwise null.
    - `consumeFromPool` boolean, nullable: Whether this service line is consuming from a data pool (Opted-In). False when not. Null when the service line is not on a data pool.
    - `aviationMetadata` AviationMetadataResponse
      - `tailNumber` string, nullable
      - `seatCount` integer
      - `airlineIataCode` string, nullable
      - `aircraftIataCode` string, nullable
      - `airlineIcaoCode` string, nullable
      - `aircraftIcaoCode` string, nullable
      - `stcNumber` string, nullable
    - `dataBlocks` ServiceLineDataBlocksSummaryResponse
      - `recurringBlocksCurrentBillingCycle` DataBlockSummaryResponse[], nullable: The current billing cycle's monthly recurring data blocks.
        - `productId` string, nullable: The block's product id.
        - `startDate` string, date-time: The block's start date.
        - `expirationDate` string, date-time: The block's end date.
        - `count` integer: How many blocks of this type there are.
        - `dataAmount` number, double: The data amount of each block.
        - `dataUnitType` string, nullable: The unit that the data amount is in.
      - `recurringBlocksNextBillingCycle` DataBlockSummaryResponse[], nullable: Next billing cycle's monthly recurring data blocks.
        - `productId` string, nullable: The block's product id.
        - `startDate` string, date-time: The block's start date.
        - `expirationDate` string, date-time: The block's end date.
        - `count` integer: How many blocks of this type there are.
        - `dataAmount` number, double: The data amount of each block.
        - `dataUnitType` string, nullable: The unit that the data amount is in.
      - `delayedProductRecurringBlocksNextCycle` DataBlockSummaryResponse[], nullable: What recurring blocks will be when the service line switches to the delayed product.
        - `productId` string, nullable: The block's product id.
        - `startDate` string, date-time: The block's start date.
        - `expirationDate` string, date-time: The block's end date.
        - `count` integer: How many blocks of this type there are.
        - `dataAmount` number, double: The data amount of each block.
        - `dataUnitType` string, nullable: The unit that the data amount is in.
      - `topUpBlocksOptInPurchase` DataBlockSummaryResponse[], nullable: What top up blocks were automatically purchased because the service line was out of data and opted in.
        - `productId` string, nullable: The block's product id.
        - `startDate` string, date-time: The block's start date.
        - `expirationDate` string, date-time: The block's end date.
        - `count` integer: How many blocks of this type there are.
        - `dataAmount` number, double: The data amount of each block.
        - `dataUnitType` string, nullable: The unit that the data amount is in.
      - `topUpBlocksOneTimePurchase` DataBlockSummaryResponse[], nullable: What top up blocks were manually purchased.
        - `productId` string, nullable: The block's product id.
        - `startDate` string, date-time: The block's start date.
        - `expirationDate` string, date-time: The block's end date.
        - `count` integer: How many blocks of this type there are.
        - `dataAmount` number, double: The data amount of each block.
        - `dataUnitType` string, nullable: The unit that the data amount is in.
    - `customFields` CustomFieldV2[], nullable: Service line custom fields. Null when the caller lacks custom fields permission.
      - `key` string, required: Custom field key.
      - `valueType` 'String' | 'Bool' | 'Enum', required: The type of value a custom field holds
      - `value` unknown, required

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden from creating service line on this account
- `422`: Failed to create service line

## Changes

- **2026-11-02** `dfd7014cfd6d`: 3 info
  - added the optional property `content/consumeFromPool` to the response with the `201` status
  - added the optional property `content/customFields` to the response with the `201` status
  - added the optional property `content/dataPoolId` to the response with the `201` status

[Operation history](https://skmtc.dev/starlink/apis/starlink-management-api/changes/public/v2/service-lines/post.md)

---

[API](https://skmtc.dev/starlink/apis/starlink-management-api.md) - [All operations](https://skmtc.dev/starlink/apis/starlink-management-api/llms.txt) - [OpenAPI document](https://skmtc.dev/starlink/apis/starlink-management-api/revisions/dfd7014cfd6d?raw)
