---
title: "Create API Implementation"
method: POST
path: "/v3/apis/{apiId}/implementations"
tags: ["API Implementation"]
---

# Create API Implementation

`POST /v3/apis/{apiId}/implementations`

Creates an implementation for an API.
If all operations in an API are implemented by a single gateway service and the service
has no routes that are not part of the API, then the API can be linked to the service.
For cases where an API is implemented by multiple gateway services, only a subset of
routes in one or more gateway services, or API operations need to be made available for API packages,
then the API should be linked to the control plane that defines the routes that overlap with the API.

## Request body

- union — An entity that implements an API
  - object — A gateway service that implements an API
    - `id` string, uuid — Contains a unique identifier used for this resource.
    - `created_at` string, date-time — An ISO-8601 timestamp representation of entity creation date.
    - `updated_at` string, date-time — An ISO-8601 timestamp representation of entity update date.
    - `service` ApiImplementationService — A Gateway service that implements an API
      - `control_plane_id` string, uuid, required
      - `id` string, uuid, required
      - `auth_strategy_sync_error` AuthStrategyApiSyncError, nullable
        - `control_plane_error` 'control_plane_error_no_response' | 'control_plane_error_invalid_response' | 'control_plane_error_unavailable' | 'control_plane_error_internal_error' | 'control_plane_error_bad_request' | 'control_plane_error_plugin_conflict' | 'control_plane_error_data_constraint_error' | 'control_plane_error_implementation_not_found'
        - `message` string, required
        - `info` object
          - `details` object[]
            - `type` string
            - `message` string[]
  - object — A control plane that implements an API
    - `id` string, uuid — Contains a unique identifier used for this resource.
    - `created_at` string, date-time — An ISO-8601 timestamp representation of entity creation date.
    - `updated_at` string, date-time — An ISO-8601 timestamp representation of entity update date.
    - `control_plane` ApiImplementationControlPlane — A Control plane that implements an API
      - `access_control_enforcement_enabled` boolean — Indicates if the access control enforcement plugin is installed globally in the target control plane
      - `control_plane_id` string, uuid, required

## Response `201`

An API implementation

- union — An entity that implements an API
  - object — A gateway service that implements an API
    - `id` string, uuid, required — Contains a unique identifier used for this resource.
    - `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.
    - `service` ApiImplementationService — A Gateway service that implements an API
      - `control_plane_id` string, uuid, required
      - `id` string, uuid, required
      - `auth_strategy_sync_error` AuthStrategyApiSyncError, nullable
        - `control_plane_error` 'control_plane_error_no_response' | 'control_plane_error_invalid_response' | 'control_plane_error_unavailable' | 'control_plane_error_internal_error' | 'control_plane_error_bad_request' | 'control_plane_error_plugin_conflict' | 'control_plane_error_data_constraint_error' | 'control_plane_error_implementation_not_found'
        - `message` string, required
        - `info` object
          - `details` object[]
            - `type` string
            - `message` string[]
  - object — A control plane that implements an API
    - `id` string, uuid, required — Contains a unique identifier used for this resource.
    - `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.
    - `control_plane` ApiImplementationControlPlane — A Control plane that implements an API
      - `access_control_enforcement_enabled` boolean — Indicates if the access control enforcement plugin is installed globally in the target control plane
      - `control_plane_id` string, uuid, required

## Other responses

- `400` — Bad Request
- `401` — ApiUnauthorized
- `403` — ApiForbidden
- `404` — Not Found
- `409` — Conflict - A gateway service can only be linked to a single API

## Changes

- **2026-02-16** `2b2a72c67bd2` — 1 breaking, 1 info
  - added `#/components/schemas/ApiImplementationControlPlaneEntity` to the response body `oneOf` list for the response status `201`
  - added `#/components/schemas/ApiImplementationControlPlaneEntity` to the request body `oneOf` list
- **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` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/kong/apis/konnect-api/changes/v3/apis/:apiId/implementations/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/36da5cb9a674/schema)
