Network > Mirroring > API v2 Guide

API endpoint and token are required to use the API. Prepare the information required to use the API by referring to Prepare to Use API. The Mirroring API uses a network type endpoint. For the exact endpoint, refer to serviceCatalog in the token issuance response.

Type Region Endpoint
network Korea (Pangyo) Region
Korea (Pyeongchon) Region
https://kr1-api-network-infrastructure.nhncloudservice.com
https://kr2-api-network-infrastructure.nhncloudservice.com

API responses may contain fields not specified in the guide. The fields are used internally by NHN Cloud and are subject to change without notice, so they are not used.

Mirroring Session (Session)

A session is a unit that mirrors traffic from a source port to a target port. If needed, you can link one or more filter groups to mirror only specific traffic.

View Session Lists

GET /v2.0/mirroring/sessions
X-Auth-Token: {tokenId}

Request

This API does not require a request body.

Name Type Format Required Description
tokenId Header String O Token ID
id Query UUID - Session ID to query
tenant_id Query String - Tenant ID
name Query String - Session name
direction Query Enum - One of in, out, both
sort_dir Query Enum - Sorting direction. One of asc, desc
sort_key Query String - Sort criteria field
fields Query String - Fields to include in the response. e.g. fields=id&fields=name

Response

Name Type Format Description
sessions Body Array List of session objects
sessions.id Body UUID Session ID
sessions.name Body String Session name
sessions.description Body String Description
sessions.target_port_id Body UUID Target port ID
sessions.source_port_id Body UUID Source port ID
sessions.filter_groups Body Array[UUID] List of connected filter group IDs
sessions.direction Body Enum One of in, out, or both
sessions.tenant_id Body String Tenant ID
sessions.project_id Body String Project ID, same as tenant ID
sessions.target_network_id Body UUID Network ID of target port
sessions.source_network_id Body UUID Network ID of the source port
sessions.vni Body Number Mirroring tunnel VNI
sessions.status Body Enum Session status: ACTIVE, BUILD, ERROR
sessions.created_at Body String Creation time (UTC)
sessions.updated_at Body String Modification time (UTC)

Example

{
  "sessions": [
    {
      "id": "7b0b5e6f-9a75-4b5a-9d69-0fb6a6d8e111",
      "name": "mirror-sess-1",
      "description": "",
      "target_port_id": "c0a8012b-7f6d-4c16-951d-cca31af20c01",
      "source_port_id": "5d5b1ce7-9a68-4f3d-9c0d-2e6b5b9a1c02",
      "filter_groups": ["2a3a9c36-0a9a-4a1e-8bb2-03e8d7fa1f10"],
      "direction": "both",
      "tenant_id": "76841f7d054a40b88b2a99828280998c",
      "project_id": "76841f7d054a40b88b2a99828280998c",
      "target_network_id": "a2a9b0f0-1d75-4b3b-b3a1-5a1d2f3e4b55",
      "source_network_id": "b3b0f0a2-2e86-4c4c-a1b3-6c2d3e4f5a66",
      "vni": 5001001,
      "status": "ACTIVE",
      "created_at": "2025-08-29 05:25:30",
      "updated_at": "2025-08-29 05:25:30"
    }
  ]
}

View Sessions

GET /v2.0/mirroring/sessions/{SessionId}
X-Auth-Token: {tokenId}

Request

This API does not require a request body.

Name Type Format Required Description
SessionId URL UUID O Session ID
tokenId Header String O Token ID
fields Query String - Fields to include in the response. e.g. fields=id&fields=name

Response

Name Type Format Description
session Body Object Session object
session.id Body UUID Session ID
session.name Body String Session name
session.description Body String Description
session.target_port_id Body UUID Target port ID
session.source_port_id Body UUID Source port ID
session.filter_groups Body Array[UUID] List of connected filter group IDs
session.direction Body Enum One of in, out, or both
session.tenant_id Body String Tenant ID
session.project_id Body String Project ID
session.target_network_id Body UUID Target port's network ID
session.source_network_id Body UUID Source port's network ID
session.vni Body Number Tunnel VNI
session.status Body Enum ACTIVE, BUILD, ERROR
session.created_at Body String Creation time (UTC)
session.updated_at Body String Modification time (UTC)

Example

{
  "session": {
    "id": "7b0b5e6f-9a75-4b5a-9d69-0fb6a6d8e111",
    "name": "mirror-sess-1",
    "description": "",
    "target_port_id": "c0a8012b-7f6d-4c16-951d-cca31af20c01",
    "source_port_id": "5d5b1ce7-9a68-4f3d-9c0d-2e6b5b9a1c02",
    "filter_groups": ["2a3a9c36-0a9a-4a1e-8bb2-03e8d7fa1f10"],
    "direction": "both",
    "tenant_id": "76841f7d054a40b88b2a99828280998c",
    "project_id": "76841f7d054a40b88b2a99828280998c",
    "target_network_id": "a2a9b0f0-1d75-4b3b-b3a1-5a1d2f3e4b55",
    "source_network_id": "b3b0f0a2-2e86-4c4c-a1b3-6c2d3e4f5a66",
    "vni": 5001001,
    "status": "ACTIVE",
    "created_at": "2025-08-29 05:25:30",
    "updated_at": "2025-08-29 05:25:30"
  }
}

Create Sessions

POST /v2.0/mirroring/sessions
X-Auth-Token: {tokenId}

Request

Name Type Format Required Description
tokenId Header String O Token ID
session Body Object O Session creation request object
session.name Body String - Session name (up to 32 characters, alphanumeric characters/-/_)
session.description Body String - Description (up to 255 characters)
session.target_port_id Body UUID O Target port ID
session.source_port_id Body UUID O Source port ID
session.filter_groups Body Array[UUID] - List of filter group IDs to connect to. If none are present, all traffic will be mirrored.
session.direction Body Enum O One of in, out, or both
session.tenant_id Body String O Tenant ID
session.project_id Body String O Project ID

Example

{
  "session": {
    "name": "mirror-sess-1",
    "description": "",
    "target_port_id": "c0a8012b-7f6d-4c16-951d-cca31af20c01",
    "source_port_id": "5d5b1ce7-9a68-4f3d-9c0d-2e6b5b9a1c02",
    "filter_groups": ["2a3a9c36-0a9a-4a1e-8bb2-03e8d7fa1f10"],
    "direction": "both",
    "tenant_id": "76841f7d054a40b88b2a99828280998c",
    "project_id": "76841f7d054a40b88b2a99828280998c"
  }
}

Response

Name Type Format Description
session Body Object Session object
session.id Body UUID Session ID
session.status Body Enum Initially, mainly BUILD
Other Body - Same as the session view

Example

{
  "session": {
    "id": "7b0b5e6f-9a75-4b5a-9d69-0fb6a6d8e111",
    "name": "mirror-sess-1",
    "description": "",
    "target_port_id": "c0a8012b-7f6d-4c16-951d-cca31af20c01",
    "source_port_id": "5d5b1ce7-9a68-4f3d-9c0d-2e6b5b9a1c02",
    "filter_groups": ["2a3a9c36-0a9a-4a1e-8bb2-03e8d7fa1f10"],
    "direction": "both",
    "tenant_id": "76841f7d054a40b88b2a99828280998c",
    "project_id": "76841f7d054a40b88b2a99828280998c",
    "target_network_id": "a2a9b0f0-1d75-4b3b-b3a1-5a1d2f3e4b55",
    "source_network_id": "b3b0f0a2-2e86-4c4c-a1b3-6c2d3e4f5a66",
    "vni": 5001001,
    "status": "BUILD",
    "created_at": "2025-08-29 05:25:30",
    "updated_at": "2025-08-29 05:25:30"
  }
}

Modify Sessions

PUT /v2.0/mirroring/sessions/{SessionId}
X-Auth-Token: {tokenId}

You can modify description, name, direction, and filter group list only. Changing ports is not supported.

Request

| Name | Type | Format | Required | Description | | --- | --- | --- | --- | | SessionId | URL | UUID | O | Session ID | | tokenId | Header | String | O | Token ID | | session | Body | Object | O | Include only the fields to be modified | | session.name | Body | String | - | Session name | | session.description | Body | String | - | Description | | session.filter_groups | Body | Array[UUID] | - | List of filter group IDs | | session.direction | Body | Enum | - | in, out, both |

Example

{
  "session": {
    "name": "mirror-sess-1b",
    "description": "update",
    "filter_groups": ["2a3a9c36-0a9a-4a1e-8bb2-03e8d7fa1f10"],
    "direction": "in"
  }
}

Response

Same as the session view response.


Delete Sessions

DELETE /v2.0/mirroring/sessions/{SessionId}
X-Auth-Token: {tokenId}

Request

This API does not request a request body.

Name Type Format Required Description
SessionId URL UUID O Session ID
tokenId Header String O Token ID

Response

This API does not return a response body.


Mirroring Filter Group (filtergroup)

A filter group is a container that groups one or more filters. You can connect them to a session to mirror only specific traffic.

View a List of Filter Groups

GET /v2.0/mirroring/filtergroups
X-Auth-Token: {tokenId}

Request

This API does not require a request body.

| Name | Type | Format | Required | Description | | --- | --- | --- | --- | | tokenId | Header | String | O | Token ID | | id | Query | UUID | - | Filter Group ID | | tenant_id | Query | String | - | Tenant ID | | name | Query | String | - | Name | | sort_dir | Query | Enum | - | asc, desc | | sort_key | Query | String | - | Sort Key | | fields | Query | String | - | Fields to Include |

Response

Name Type Format Description
filtergroups Body Array List of filter groups
filtergroups.id Body UUID ID
filtergroups.name Body String Name
filtergroups.description Body String Description
filtergroups.tenant_id Body String Tenant ID
filtergroups.project_id Body String Project ID
filtergroups.filters Body Array List of filter objects/IDs within the group
filtergroups.created_at Body String Creation time (UTC)
filtergroups.updated_at Body String Modification time (UTC)

Example

{
  "filtergroups": [
    {
      "id": "2a3a9c36-0a9a-4a1e-8bb2-03e8d7fa1f10",
      "name": "fg-1",
      "description": "",
      "tenant_id": "76841f7d054a40b88b2a99828280998c",
      "project_id": "76841f7d054a40b88b2a99828280998c",
      "filters": [],
      "created_at": "2025-08-29 05:20:00",
      "updated_at": "2025-08-29 05:20:00"
    }
  ]
}

View Filter Groups

GET /v2.0/mirroring/filtergroups/{FilterGroupId}
X-Auth-Token: {tokenId}

Request

This API does not require a request body.

| Name | Type | Format | Required | Description | | --- | --- | --- | --- | | tokenId | Header | String | Yes | Token ID | | id | URL | UUID | Yes | Filter Group ID |

Response

Name Type Format Description
filtergroup Body Object List of filter groups
filtergroup.id Body UUID ID
filtergroup.name Body String Name
filtergroup.description Body String Description
filtergroup.tenant_id Body String Tenant ID
filtergroup.project_id Body String Project ID
filtergroup.filters Body Array List of filter objects/IDs within the group
filtergroup.created_at Body String Creation Time (UTC)
filtergroup.updated_at Body String Modification Time (UTC)

Create Filter Groups

POST /v2.0/mirroring/filtergroups
X-Auth-Token: {tokenId}

Request

| Name | Type | Format | Required | Description | | --- | --- | --- | --- | | tokenId | Header | String | O | Token ID | | filtergroup | Body | Object | O | Filter group creation request object | | filtergroup.name | Body | String | - | Name (up to 32 characters, English letters/numbers/-/_) | | filtergroup.description | Body | String | - | Description (up to 255 characters) | | filtergroup.tenant_id | Body | String | O | Tenant ID | | filtergroup.project_id | Body | String | O | Project ID |

Example

{
  "filtergroup": {
    "name": "fg-1",
    "description": "",
    "tenant_id": "76841f7d054a40b88b2a99828280998c",
    "project_id": "76841f7d054a40b88b2a99828280998c"
  }
}

Response

Name Type Format Description
filtergroup Body Object Filter group object
filtergroup.id Body UUID ID
filtergroup.name Body String Name
filtergroup.description Body String Description
filtergroup.tenant_id Body String Tenant ID
filtergroup.project_id Body String Project ID
filtergroup.filters Body Array List of filter objects/IDs in the group
filtergroup.created_at Body String Creation time (UTC)
filtergroup.updated_at Body String Modification time (UTC)

Modify Filter Groups

PUT /v2.0/mirroring/filtergroups/{FilterGroupId}
X-Auth-Token: {tokenId}

Name and description only can be modified.

Request

| Name | Type | Format | Required | Description | | --- | --- | --- | --- | | FilterGroupId | URL | UUID | Yes | Filter Group ID | | tokenId | Header | String | Yes | Token ID | | filtergroup | Body | Object | Yes | Include only fields to modify | | filtergroup.name | Body | String | - | Name | | filtergroup.description | Body | String | - | Description |

Response

Name Type Format Description
filtergroup Body Object Filter Group Object
filtergroup.id Body UUID ID
filtergroup.name Body String Name
filtergroup.description Body String Description
filtergroup.tenant_id Body String Tenant ID
filtergroup.project_id Body String Project ID
filtergroup.filters Body Array List of filter objects/IDs within the group
filtergroup.created_at Body String Creation time (UTC)
filtergroup.updated_at Body String Modification time (UTC)

Delete Filter Groups

DELETE /v2.0/mirroring/filtergroups/{FilterGroupId}
X-Auth-Token: {tokenId}

Request/Response

No request body. No response body.


Mirroring Filter (filter)

A filter consists of matching conditions and actions, and is used to allow (accept) or exclude (drop) specific traffic. A filter must belong to a specific filter group.

View Filter Lists

GET /v2.0/mirroring/filters
X-Auth-Token: {tokenId}

Request

This API does not require a request body.

Name Type Format Required Description
tokenId Header String O Token ID
id Query UUID - Filter ID
filter_group_id Query UUID - Filter Group ID
tenant_id Query String - Tenant ID
sort_dir Query Enum - asc, desc
sort_key Query String - Sort Key
fields Query String - Fields to Include

Response

Name Type Format Description
filters Body Array Filter List
filters.id Body UUID Filter ID
filters.description Body String Description
filters.filter_group_id Body UUID Filter group ID
filters.src_cidr Body CIDR Source CIDR. Optional
filters.dst_cidr Body CIDR Destination CIDR. Optional
filters.src_port_range_min Body Number Start of source port range
filters.src_port_range_max Body Number End of source port range
filters.dst_port_range_min Body Number Start of destination port range
filters.dst_port_range_max Body Number End of destination port range
filters.protocol Body String tcp, udp, icmp, or null
filters.action Body Enum accept, drop
filters.priority Body Number Priority (default 101)
filters.tenant_id Body String Tenant ID
filters.project_id Body String Project ID
filters.created_at Body String Creation Time (UTC)
filters.updated_at Body String Modification Time (UTC)

Example

{
  "filters": [
    {
      "id": "f1e2d3c4-b5a6-7890-1234-56789abcde01",
      "description": "allow tcp 80 to 10.0.0.0/24",
      "filter_group_id": "2a3a9c36-0a9a-4a1e-8bb2-03e8d7fa1f10",
      "src_cidr": null,
      "dst_cidr": "10.0.0.0/24",
      "src_port_range_min": null,
      "src_port_range_max": null,
      "dst_port_range_min": 80,
      "dst_port_range_max": 80,
      "protocol": "tcp",
      "action": "accept",
      "priority": 101,
      "tenant_id": "76841f7d054a40b88b2a99828280998c",
      "project_id": "76841f7d054a40b88b2a99828280998c",
      "created_at": "2025-08-29 05:22:00",
      "updated_at": "2025-08-29 05:22:00"
    }
  ]
}

View Filters

GET /v2.0/mirroring/filters/{FilterId}
X-Auth-Token: {tokenId}

Request

This API does not require a request body.

| Name | Type | Format | Required | Description | | --- | --- | --- | --- | | tokenId | Header | String | Yes | Token ID | | id | Query | URL | Yes | Filter ID |

Response

Name Type Format Description
filter Body Object Filter List
filter.id Body UUID Filter ID
filter.description Body String Description
filter.filter_group_id Body UUID Filter Group ID
filter.src_cidr Body CIDR Source CIDR. Optional
filter.dst_cidr Body CIDR Destination CIDR. Optional
filter.src_port_range_min Body Number Source port range start
filter.src_port_range_max Body Number Source port range end
filter.dst_port_range_min Body Number Destination port range start
filter.dst_port_range_max Body Number Destination port range end
filter.protocol Body String tcp, udp, icmp, or null
filter.action Body Enum accept, drop
filter.priority Body Number Priority (default 101)
filter.tenant_id Body String Tenant ID
filter.project_id Body String Project ID
filter.created_at Body String Creation time (UTC)
filter.updated_at Body String Modified Time (UTC)

Create Filters

POST /v2.0/mirroring/filters
X-Auth-Token: {tokenId}

Request

Name Type Format Required Description
tokenId Header String O Token ID
filter Body Object O Filter Create Request Object
filter.description Body String - Description (max 255 characters)
filter.filter_group_id Body UUID O Affiliated Filter Group ID
filter.src_cidr Body CIDR - Source CIDR
filter.dst_cidr Body CIDR - Destination CIDR
filter.src_port_range_min Body Number - Source Port Start
filter.src_port_range_max Body Number - Source Port End
filter.dst_port_range_min Body Number - Destination port start
filter.dst_port_range_max Body Number - Destination port end
filter.protocol Body String - tcp, udp, icmp, or null
filter.action Body Enum O accept, drop
filter.priority Body Number - Priority. Default 101
filter.tenant_id Body String O Tenant ID
filter.project_id Body String O Project ID

Example

{
  "filter": {
    "description": "allow tcp 80 to 10.0.0.0/24",
    "filter_group_id": "2a3a9c36-0a9a-4a1e-8bb2-03e8d7fa1f10",
    "dst_cidr": "10.0.0.0/24",
    "dst_port_range_min": 80,
    "dst_port_range_max": 80,
    "protocol": "tcp",
    "action": "accept",
    "priority": 101,
    "tenant_id": "76841f7d054a40b88b2a99828280998c",
    "project_id": "76841f7d054a40b88b2a99828280998c"
  }
}

Response

Name Type Format Description
filter Body Object Filter List
filter.id Body UUID Filter ID
filter.description Body String Description
filter.filter_group_id Body UUID Filter Group ID
filter.src_cidr Body CIDR Source CIDR. Optional
filter.dst_cidr Body CIDR Destination CIDR. Optional
filter.src_port_range_min Body Number Source port range start
filter.src_port_range_max Body Number Source port range end
filter.dst_port_range_min Body Number Destination port range start
filter.dst_port_range_max Body Number End of destination port range
filter.protocol Body String tcp, udp, icmp, or null
filter.action Body Enum accept, drop
filter.priority Body Number Priority (default 101)
filter.tenant_id Body String Tenant ID
filter.project_id Body String Project ID
filter.created_at Body String Creation time (UTC)
filter.updated_at Body String Modification time (UTC)

Modify Filters

PUT /v2.0/mirroring/filters/{FilterId}
X-Auth-Token: {tokenId}

Only the description can be modified. Matching conditions, actions, priorities, and group affiliation cannot be modified.

Request

Name Type Format Required Description
FilterId URL UUID Yes Filter ID
tokenId Header String Yes Token ID
filter Body Object Yes Include only fields to be modified
filter.description Body String - Description

Response

Name Type Format Description
filter Body Object Filter List
filter.id Body UUID Filter ID
filter.description Body String Description
filter.filter_group_id Body UUID Filter Group ID
filter.src_cidr Body CIDR Source CIDR. Optional
filter.dst_cidr Body CIDR Destination CIDR. Can be unspecified
filter.src_port_range_min Body Number Source port range start
filter.src_port_range_max Body Number Source port range end
filter.dst_port_range_min Body Number Destination port range start
filter.dst_port_range_max Body Number Destination port range end
filter.protocol Body String tcp, udp, icmp, or null
filter.action Body Enum accept, drop
filter.priority Body Number Priority (default 101)
filter.tenant_id Body String Tenant ID
filter.project_id Body String Project ID
filter.created_at Body String Creation Time (UTC)
filter.updated_at Body String Modification Time (UTC)

Delete Filters

DELETE /v2.0/mirroring/filters/{FilterId}
X-Auth-Token: {tokenId}

Request/Response

No request body. No response body.

TOP