---
title: "Bulk import subscriptions"
method: POST
path: "/api/v1/subscriptions/import"
tags: ["Bulk Import"]
---

# Bulk import subscriptions

`POST /api/v1/subscriptions/import`

Imports multiple subscriptions in bulk. Used for migrating subscription data from external systems.

## Headers

- `X-ACCOUNT-ID` string
- `X-ENVIRONMENT-ID` string

## Request body

- ImportSubscriptionsRequestDto — Bulk import up to 1000 subscriptions. Creates an async import task that processes subscriptions in the background. Existing subscriptions are updated, new ones are created.
  - `subscriptions` object[], required — List of subscription objects to import
    - `customerId` string, required — Customer ID
    - `planId` string, required — Plan ID
    - `id` string, required — Subscription ID
    - `resourceId` string, nullable — Resource ID
    - `endDate` string, date-time, nullable — Subscription end date
    - `metadata` object — Additional metadata for the subscription
    - `billingId` string, nullable — Billing ID
    - `startDate` string, date-time — Subscription start date
    - `addons` object[]
      - `id` string, required — Addon ID
      - `quantity` integer, required — Number of addon instances
    - `billingPeriod` 'MONTHLY' | 'ANNUALLY' — Billing period (MONTHLY or ANNUALLY)
    - `charges` object[]
      - `type` 'FEATURE' | 'CREDIT', required — Charge type
      - `id` string, required — Charge ID
      - `quantity` number, required — Charge quantity. Minimum is 0 (zero is allowed).
  - `integrationId` string, nullable — Integration ID to use for importing subscriptions

## Response `201`

Import results with success and failure details.

- ImportSubscriptionsResponseDto — Response object
  - `data` object, required
    - `taskId` string, uuid, required — Unique identifier for the import task

## Other responses

- `400` — bad request.
- `401` — User is not authenticated.
- `403` — User is not allowed to access this resource.
- `404` — Subscriptions not found.
- `429` — Too many requests.

## Changes

- **2026-07-28** `913f273cc2f7` — 1 warning
  - added the new `ContractNotFound` enum value to the `code` response property for the response status `404`
- **2026-07-23** `b876edd1a4fc` — 5 warning
  - added the new `CreditOveragePriceCurrencyNotFound` enum value to the `code` response property for the response status `400`
  - added the new `InvalidCreditOverageBillingModel` enum value to the `code` response property for the response status `400`
  - added the new `InvoicePreviewNotAvailableForDraftContract` enum value to the `code` response property for the response status `400`
  - added the new `OveragePriceNotSupportedOnAddon` enum value to the `code` response property for the response status `400`
  - …1 more
- **2026-07-08** `58bb216ff8ce` — 1 warning
  - added the new `GovernanceNotEnabled` enum value to the `code` response property for the response status `403`
- **2026-07-01** `04d5fa9dcb6f` — 1 breaking, 1 info
  - removed the success response with the status `200`
  - added the success response with the status `201`
- **2026-06-08** `3acd63d6c861` — 2 info
  - added the new optional `header` request parameter `X-ACCOUNT-ID`
  - added the new optional `header` request parameter `X-ENVIRONMENT-ID`

[Full history](https://skmtc.dev/stiggio/apis/stigg-api/changes/api/v1/subscriptions/import/post.md)

---

[API](https://skmtc.dev/stiggio/apis/stigg-api.md) · [All operations](https://skmtc.dev/stiggio/apis/stigg-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/stiggio/stigg-api/revisions/3e2c8cfcd035/schema)
