API Designer is gone. Assembly isn’t.

If you opened API Connect v12 looking for Designer and the Assembly canvas, you are not alone. API Designer is deprecated and replaced by IBM API Studio — but assembly did not disappear. It became a named, versioned, reusable policy sequence.

What changed

Designer (v10) Studio (v12)
One YAML held contract + x-ibm-configuration + assembly.execute Split assets: api-spec, kind: api, policy-sequence, Product/Plan
Assembly lived on that API Policy sequence attaches globally, at API level, or at path/method scope
Visual canvas was the main path Form View + Code View, project/Git workspace

Same policies still matter — invoke, map, switch, security, transforms. Same Product / Plan / Catalog lifecycle. What changed is packaging: the flow is no longer trapped inside one API file.

The one idea to keep

What used to be “the assembly on this API” is now something you attach:

policy-seq$ref: namespace:policy-sequence-name:version

Same Orders flow (invoke backend → map response) still exists. In Designer it sat under assembly.execute. In Studio it lives in a policy-sequence file and the API just references it. Reuse without copy-paste.

Old: one API YAML (Designer)

# orders-1.0.0.yaml — contract + assembly together
openapi: 3.0.3
info:
  title: Orders API
  version: 1.0.0
paths:
  /orders/{orderId}:
    get:
      operationId: getOrder
      # ... parameters & responses ...

x-ibm-configuration:
  assembly:
    execute:
      - invoke:
          title: invoke-orders-backend
          target-url: $(orders-backend-url)/orders/$(request.parameters.orderId)
      - map:
          title: map-order-response
          inputs:
            backend:
              variable: message.body
          outputs:
            response:
              variable: message.body
          actions:
            - set: response.orderId
              from: backend.id
            - set: response.status
              from: backend.orderStatus

New: api-spec + policy sequence (Studio)

1. Clean OpenAPI (api-spec)

# orders-api-spec.yaml
openapi: 3.0.3
info:
  title: Orders API
  version: 1.0.0
paths:
  /orders/{orderId}:
    get:
      operationId: getOrder
      # ... parameters & responses ...

2. Policy sequence (the old assembly)

# orders-backend-flow.yaml
kind: PolicySequence
metadata:
  name: orders-backend-flow
  namespace: orders
  version: 1.0.0
spec:
  execute:
    - invoke:
        title: invoke-orders-backend
        target-url: $(orders-backend-url)/orders/$(request.parameters.orderId)
    - map:
        title: map-order-response
        inputs:
          backend:
            variable: message.body
        outputs:
          response:
            variable: message.body
        actions:
          - set: response.orderId
            from: backend.id
          - set: response.status
            from: backend.orderStatus

3. API metadata attaches it

# orders-api.yaml
kind: api
metadata:
  name: orders
  namespace: orders
  version: 1.0.0
spec:
  api-spec: orders-api-spec.yaml
  policy-seq:
    $ref: orders:orders-backend-flow:1.0.0

Same invokemap. Different packaging — and that sequence can be reused on other APIs or scopes.

Why IBM moved this way

Studio is built for API-as-code, shared governance, multi-gateway authoring (DataPower API Gateway, Nano, webMethods), DevOps ownership, and AI/agent tooling. Structured assets beat one opaque mega-YAML.

Day-1 remap: create a project → import OpenAPI → create a policy sequence → attach at API level → try scope-level → Tryout/publish. Start in Form View if you loved the canvas; switch to Code View once $ref clicks. And do not assume old v10 APIs drop unchanged onto Nano or webMethods.


If you are still asking “where did Assembly go?” — reframe it. Assembly became a reusable object. Designer is deprecated. The ideas are not.