---
title: "Create API Product Version"
method: POST
path: "/v2/api-products/{apiProductId}/product-versions"
tags: ["API Product Versions"]
---

# Create API Product Version

`POST /v2/api-products/{apiProductId}/product-versions`

Creates a version of an API product.

## Request body

- CreateAPIProductVersionDTO — The request schema to create a version of an API product. Note that the `publish_status` and `deprecated` fields are deprecated: Use [PortalProductVersion.publish_status](https://docs.konghq.com/konnect/api/portal-management/v2/#/operations/create-portal-product-version) instead.
  - `name` string, required — The version name of the API product version.
  - `publish_status` 'unpublished' | 'published' — The publish status of the API product version. Applies publish status to all related portal product versions. This field is deprecated: Use [PortalProductVersion.publish_status](https://docs.konghq.com/konnect/api/portal-management/v2/#/operations/create-portal-product-version) instead.
  - `deprecated` boolean — Indicates if the version of the API product is deprecated. Applies deprecation or removes deprecation from all related portal product versions. This field is deprecated: Use [PortalProductVersion.deprecated](https://docs.konghq.com/konnect/api/portal-management/v2/#/operations/create-portal-product-version) instead.
  - `labels` Labels — Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_".
  - `gateway_service` GatewayServicePayload, nullable
    - `id` string, uuid, required — The identifier of a gateway service associated with the version of the API product.
    - `control_plane_id` string, uuid, required — The identifier of the control plane that the gateway service resides in

## Response `201`

API product

- APIProductVersion
  - `id` string, uuid, required — The API product version identifier.
  - `name` string, required — The version of the API product
  - `gateway_service` object, nullable, required
    - `id` string, uuid, nullable, required — The identifier of a gateway service associated with the version of the API product.
    - `runtime_group_id` string, uuid, nullable — This field is deprecated, please use `control_plane_id` instead. The identifier of the control plane that the gateway service resides in
    - `control_plane_id` string, uuid, required — The identifier of the control plane that the gateway service resides in
  - `publish_status` 'unpublished' | 'published', required — This field is published if the API product version is published to at least one portal. This field is deprecated: Use [PortalProductVersion.publish_status](https://docs.konghq.com/konnect/api/portal-management/v2/#/operations/create-portal-product-version) instead.
  - `deprecated` boolean, required — Whether this API product version is deprecated in at least one portal. This field is deprecated: Use [PortalProductVersion.deprecated](https://docs.konghq.com/konnect/api/portal-management/v2/#/operations/create-portal-product-version) instead
  - `labels` Labels, required — Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_".
  - `auth_strategy_sync_errors` AuthStrategySyncError[], nullable — The set of errors encountered when trying to sync the auth strategies on the version
    - `plugin_name` string
    - `value` 'plugin_sync_error_comm' | 'plugin_sync_error_unknown' | 'plugin_sync_error_fatal' | 'plugin_sync_error_updating_plugin_refs'
    - `message` string, required
    - `info` object
      - `details` object[]
        - `type` string
        - `message` string[]
  - `portals` APIProductVersionPortal[], required — The list of portals which this API product version is configured for
    - `portal_id` string, uuid, required
    - `portal_name` string, required
    - `portal_product_version_id` string, uuid, required
    - `publish_status` 'published' | 'unpublished', required
    - `deprecated` boolean, required
    - `application_registration_enabled` boolean, required
    - `auto_approve_registration` boolean, required
    - `auth_strategies` APIProductVersionAuthStrategy[], required
      - `id` string, uuid, required
      - `name` string, required
  - `created_at` string, date-time, required — An ISO-8601 timestamp representation of entity creation date.
  - `updated_at` string, date-time, required — An ISO-8601 timestamp representation of entity update date.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `409` — Conflict - V3 API is currently linked to the target gateway service
- `415` — Unsupported Media Type

## Changes

- **2025-10-29** `19e869275e28` — 1 warning
  - added the new `type` enum value to the `allOf[subschema #2]/invalid_parameters/items/oneOf[#/components/schemas/InvalidParameterStandard]/rule` response property for the response status `400`
- **2025-08-22** `96118a9cd7f4` — 7 breaking, 3 info
  - the response property `allOf[subschema #2]/invalid_parameters/items/oneOf[#/components/schemas/InvalidParameterChoiceItem]/source` became nullable for the status `400`
  - the response property `allOf[subschema #2]/invalid_parameters/items/oneOf[#/components/schemas/InvalidParameterDependentItem]/source` became nullable for the status `400`
  - the response property `allOf[subschema #2]/invalid_parameters/items/oneOf[#/components/schemas/InvalidParameterMaximumLength]/source` became nullable for the status `400`
  - the response property `allOf[subschema #2]/invalid_parameters/items/oneOf[#/components/schemas/InvalidParameterMinimumLength]/source` became nullable for the status `400`
  - …6 more
- **2025-08-13** `ab1a51b76144` — 1 breaking
  - the request property `labels/additionalProperties/` became not nullable
- **2025-03-13** `ddd4be7ea073` — 1 breaking, 1 info
  - the response property `labels/additionalProperties/` became nullable for the status `201`
  - the request property `labels/additionalProperties/` became nullable
- …earlier changes not shown

[Full history](https://skmtc.dev/kong/apis/konnect-api/changes/v2/api-products/:apiProductId/product-versions/post.md)

---

[API](https://skmtc.dev/kong/apis/konnect-api.md) · [All operations](https://skmtc.dev/kong/apis/konnect-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/kong/konnect-api/revisions/72502a676a92/schema)
