Skip to main content

Resource Explorer API

Key information

IAM role management

Role management for the Resource Explorer service follows KakaoCloud’s IAM Role-Based Access Control (RBAC). Project roles are verified using a user token, and API access is granted according to each role.

Project roles

PermissionProject AdminProject MemberProject Reader
View resources
View tags
Create/delete tags
Assign tags

KCRN

KCRN stands for KakaoCloud Resource Name, a unique identifier assigned to resources in KakaoCloud. Resources with KCRNs can be explored in various ways using Resource Explorer.

FormatDescription
kcrn:region:project-id:service:resource-type:resource-idStarts with kcrn: and includes region, project ID, service, resource type, and resource ID
info

For the list of resource types supported by Resource Explorer, see Supported Resource Types.

Resource

There may be a delay in reflecting resource creation or deletion in the Resource Explorer.
The resource-related APIs are as follows.

Query resource

Resources can be queried using the KCRN format or via filters.

API method
MethodRequest URL
POSThttps://resource-explorer.kr-central-2.kakaocloud.com/api/v1/resources/search
Request header
HeaderTypeRequiredDescription
X-Auth-TokenstringYesProvide your authentication token.
Content-TypestringYesAlways set to application/json
Request body (KCRN Format)

Query resources using a KCRN pattern.

Request Body for KCRN Format
{
"filter": {
"filter_kcrn": "kcrn:*:91e6b4bf1ac441eaa99ba7802e64970c:Virtual Machine:Instance:*"
}
}
Request elements
Field NameTypeRequiredDescription
filterobjectOptionalObject containing filter conditions for resource queries. You can specify filter_kcrn inside to query using the KCRN format.
filter.filter_kcrnstringOptionalFilters resources based on the KCRN format: kcrn:region:project-id:service:resource-type:resource-id. Wildcards (*) can be used to specify a range.
- The example in the Request Body represents a query for all Instance resources in the Virtual Machine service within a specific project.
Request body (via filter)

You can query resources using various filter parameters.

Filter-Based Resource Query Request Body
{     
"filter": {         
"filter_string": "string"     
},     
"offset": 0, # optional     
"limit": 10, # optional (max, default 500)     
"sort": "string" # optional
}
Request elements
Field NameTypeRequiredDescription
filterobjectOptionalObject containing filter conditions used to query resources.
- You can retrieve all resources without specifying any filters.
filter.filter_stringstringOptionalParameter that specifies search filter conditions in string format when querying resources.
Use this to filter by service or tagged resources.
- Format: "key=value"
- Example: service=Virtual Machine → Retrieves only resources under the Virtual Machine service
- Refer to filter_string items for supported
filter_string

These are the supported filter options when querying resources. Multiple conditions are combined using logical AND.

KeyTypeSearch SupportRequiredDescription
resource_namestringexact, not, contains, start with, end with, *OptionalFilter by resource name.
Examples:
- exact: resource_name=myResource
- not: -resource_name=myResource
- contains: resource_name=*my*
- start with: resource_name=my*
- end with: resource_name=*my
- *: resource_name=* → Retrieves all resources
resource_idstringexact, not, contains, start with, end with, *OptionalFilter by resource ID.
Examples:
- exact: resource_id=63cbe932-3a14-4d39-a24e-ed2fa28cc410
- not: -resource_id=63cbe932-3a14-4d39-a24e-ed2fa28cc410
- contains: resource_id=*3a14*
- start with: resource_id=3a14*
- end with: resource_id=*3a14
- *: resource_id=*
regionstringexact, not, *OptionalFilter by region.
Examples:
- exact: region=kr-central-2
- not: -region=kr-central-2
- *: region=*
servicestringexact, not, *OptionalFilter by service.
Examples:
- exact: service=Virtual Machine
- not: -service=Virtual Machine
- *: service=*
resource_typestringexact, not, *OptionalFilter by resource type.
Examples:
- exact: resource_type=Instance
- not: -resource_type=Instance
- *: resource_type=*
tag.keystringexact, not, *OptionalFilter by tag key.
Examples:
- exact: tag.key=myKey
- not: -tag.key=myKey
- *: tag.key=*
tag.valuestringexact, not, *OptionalFilter by tag value.
Examples:
- exact: tag.value=myValue
- not: -tag.value=myValue
- *: tag.value=*
Others--OptionalFilter by tag presence.
Examples:
- tag:all → Resources with tags
- tag:none → Resources without tags
sort
ItemSearch Support & Examples
resource_name- Ascending: +resource_name
- Descending: -resource_name
resource_id- Ascending: +resource_id
- Descending: -resource_id
resource_type- Ascending: +resource_type
- Descending: -resource_type
service- Ascending: +service
- Descending: -service
Response body
Retrieve resource Response Body
{
"success": boolean,
"resources": [
{
"kcrn": "string",
"project_id": "string",
"region": "string",
"resource_type": "string",
"service": "string",
"resource_id": "string",
"resource_name": "string",
"user_name": "string",
"tags": [
{
"tag_id": "string",
"key": "string",
"value": "string",
"type": "string"
}
]
}
],
"count": integer,
"total_count": integer
}
Response elements
Field NameTypeDescription
successbooleanIndicates whether the API request was successful.
- true, false
resourceslistA list of resource objects retrieved. Each item contains information about a resource.
resources[].kcrnstringThe unique identifier for the resource (KakaoCloud Resource Name).
resources[].project_idstringThe ID of the project to which the resource belongs.
resources[].regionstringThe region where the resource is located.
resources[].resource_typestringThe type of resource.
- Example: Instance, Volume, etc.
resources[].servicestringThe name of the service providing the resource.
- Example: Virtual Machine
resources[].resource_idstringThe unique ID of the resource.
resources[].resource_namestringThe name of the resource set by the user or assigned by the service.
resources[].user_namestringThe user account or service agent that created the resource.
resources[].tagslistA list of tags associated with the resource.
resources[].tags[].tag_idstringThe unique ID of the tag.
resources[].tags[].keystringThe key of the tag.
resources[].tags[].valuestringThe value of the tag.
resources[].tags[].typestringThe type of the tag.
- Custom tag: custom
- System tag: system
countintegerThe number of resources returned in this request.
total_countintegerThe total number of resources that match the filter conditions.
Status codes
CodeResponse ContentDescription
200OKSuccess
400Bad RequestInvalid request
- Please refer to the error message and modify the request.
403ForbiddenAuthentication succeeded, but no permission for the requested resource or action.
- Check if the request was made with an account or project that has proper permissions.
500Internal Server ErrorInternal server error
- Please try again later.

Search tag

It may take some time for newly created or deleted tags to be reflected in the Resource Explorer tag list.
The API for tag retrieval is as follows.

info

Only custom tags are assigned a tag_id, while system tags do not have a tag_id.

Query multiple tag

API method
MethodRequest URL
POSThttps://resource-explorer.kr-central-2.kakaocloud.com/api/v1/tags/search
Request Header
Request HeaderTypeRequiredDescription
X-Auth-TokenstringRequiredEnter User Authentication Token
Content-TypestringRequiredAlways set to application/json
Request body
Query multiple tags Request Body
{
"filter": {
"filter_string": "string"
},
"offset": integer, # optional
"limit": integer, # optional
"sort": "string" # optional
}
Request elements
Field NameTypeRequiredDescription
filterobjectOptionalContains the filter conditions for tag search. It includes filter_string and allows specifying various filter conditions.
- You can search all tags without any filter.
filter.filter_stringstringOptionalSpecifies the filter conditions for tag search in a string format.
- Example: tag.type=system&tag.value=Kubernetes Engine allows you to search based on specific tag information, and when multiple conditions are specified, they are treated as logical AND.
- Refer to filter_string items for supported filter fields.
offsetintegerOptionalThe index of the data to retrieve from the search results.
For example, if you set offset to 0, it will start from the first result, and if set to 10, it will return data starting from the 11th result.
- Default: 0
limitintegerOptionalSpecifies the maximum number of resources to return in a single request. When there are many results, it can be used with offset to retrieve the resources in pages.
- Default: 500
- Maximum: 500
- Example: limit: 10 → will return a maximum of 10 resources.
sortintegerOptionalA parameter used to sort the result list.
- Format: +sort_key (ascending) or -sort_key (descending)
- Example: +key → sort by tag key in ascending order.
- Refer to sort items for supported sort fields.
filter_string

The available filter fields for multiple tag searches. When multiple conditions are specified, they work as logical AND.

KeyTypeSearch SupportRequiredDescription
tag.keystringexact, not, *OptionalSearch by tag key.
Example:
- exact: tag.key=myKey
- not: -tag.key=myKey
- *: tag.key=* → search all tags
tag.valuestringexact, not, *OptionalSearch by tag value.
Example:
- exact: tag.value=myValue
- not: -tag.value=myValue
- *: tag.value=* → search all tags
tag.typestringexact, not, *OptionalSearch by tag type. Tag types include system tags (system) and custom tags (custom).
Example:
- exact: tag.type=system
- not: -tag.type=system
- *: tag.type=* → search all tags
Others--OptionalSearch by tag usage.
Example:
- tag:in_use → tags connected to resources
- tag:not_in_use → tags not connected to any resources
sort
FieldSearch Support and Example
tag.key- Ascending: +tag.key
- Descending: -tag.key
tag.value- Ascending: +tag.value
- Descending: -tag.value
tag.type- Ascending: +tag.type
- Descending: -tag.type
tag.created_at- Ascending: +tag.created_at
- Descending: -tag.created_at
Response body
Query multiple tags Response Body
{ 
"success": boolean,
"total_count": integer,
"count": integer,
"tags": [
{
"tag_id": "string",
"key": "string",
"value": "string",
"type": "string",
"created_at": "string",
"resource_count": integer
}
]
}
Response elements
Field NameTypeDescription
successbooleanIndicates the success of the API request.
- true, false
total_countintegerThe total number of tags that match the conditions.
countintegerThe number of tags included in the current response. Some may be returned if pagination (offset, limit) is applied.
tagslistA list of tag objects.
tags[].tag_idstringThe unique ID of the tag.
tags[].keystringThe key of the tag.
tags[].valuestringThe value of the tag.
tags[].typestringThe type of the tag.
- Custom tag: custom
- System tag: system
tags[].created_atstringThe time when the tag was created.
- ISO 8601 format UTC timestamp
- Example: 2025-03-17T05:46:52.537490588Z
tags[].resource_countintegerThe number of resources connected to the tag.
Status codes
CodeResponse MessageDescription
200OKSuccess
400Bad RequestInvalid request
- Modify the request based on the error message
403ForbiddenAuthentication succeeded but insufficient permissions for the requested resource or action
- Ensure the request is made with the correct account or project that has the appropriate permissions
500Internal Server ErrorInternal server error
- Please retry after some time

Query single tag

API method
MethodRequest URL
GEThttps://resource-explorer.kr-central-2.kakaocloud.com/api/v1/tags/search/{tag_id}
Request header
Request HeaderTypeRequiredDescription
X-Auth-Token   stringRequired   Enter the user authentication token
Request
Query single tag Request Example

curl --location --request GET 'https://resource-explorer.kr-central-2.kakaocloud.com/api/v1/tags/search/{tag_id}' \
--header 'X-Auth-Token: {x-auth-token}'
Request body

No request body.

Request elements
Field NameLocationRequiredDescription
tag_idpathRequiredThe unique ID of the tag you want to query.
X-Auth-TokenheaderRequiredEnter the user authentication token.
- If using this value, Credential-ID and Credential-Secret are omitted.
Response Body
Query single tag Response Body
{ 
"success": boolean,
"tag": {
"tag_id": "string",
"key": "string",
"value": "string",
"type": "string",
"created_at": "string"
}
}
Response Elements
Field NameTypeDescription
successbooleanIndicates the success of the API request.
- true, false
tagobjectAn object containing the returned tag information.
tag.tag_idstringThe unique ID of the tag.
tag.keystringThe key of the tag.
tag.valuestringThe value of the tag.
tag.typestringThe type of the tag.
- Custom tag: custom
- System tag: system
tag.created_atstringThe timestamp when the tag was created.
- ISO 8601 formatted UTC timestamp
- Example: 2025-03-17T05:46:52.537490588Z
Status codes
CodeResponse MessageDescription
200OKSuccess
400Bad RequestInvalid request
- Check error messages and modify the request
403ForbiddenAuthentication succeeded, but no permission for the requested resource or action
- Verify that the correct permissions are granted to the account or project
404Not FoundThe tag does not exist
- Check tag_id information
500Internal Server ErrorInternal server error
- Please try again later

Manage tag

The APIs related to tag creation and deletion are as follows.

Create tag

Up to 100 tags can be created at once. Tag creation or deletion requests are processed asynchronously, and it may take some time to complete.
Additionally, if tag creation, deletion, or assigning tags to resources is in progress, the next request can only be processed once all previous tasks are completed.

API method
MethodRequest URL
POSThttps://resource-explorer.kr-central-2.kakaocloud.com/api/v1/tags
Request header
Request HeaderTypeRequiredDescription
X-Auth-TokenstringRequiredEnter User Authentication Token
Content-TypestringRequiredAlways set to application/json
Request body
Create tag Request Body
{ 
"tags": [
{
"key": "string",
"value": "string"
}
]
}
Request Elements
Field NameTypeRequiredDescription
tagslistRequiredA list of tag objects to be created. You can create up to 100 tags at once.
tags[].keystringRequiredThe key of the tag.
tags[].valuestringRequiredThe value of the tag.
Response body
Create tag Response Body
{ 
"success": boolean,
"tags": [
{
"tag_id": "string"
"key": "string"
"value": "string"
}
]
}
Response elements
Field NameTypeDescription
successbooleanIndicates whether the API request was successful.
- true, false
tagslistList of the created tags.
tags[].tag_idstringThe unique ID of the created tag.
tags[].keystringThe key of the created tag.
tags[].valuestringThe value of the created tag.
Status codes
CodeResponse StatusDescription
202AcceptedSuccess
400Bad RequestInvalid request
- Please refer to the error message to modify the request.
403ForbiddenAuthentication succeeded, but no permission for the requested resource or action.
- Ensure you are using an account or project with the correct permissions.
500Internal Server ErrorInternal server error.
- Please retry after a short period.

Delete tag

Tags that are no longer in use can be deleted. You can delete up to 100 tags at once. Tag creation and deletion requests are processed asynchronously, and it may take some time to complete.
Furthermore, tag creation, deletion, or the assignment of tags to resources must be completed before any further requests can be processed.

API method
MethodRequest URL
POSThttps://resource-explorer.kr-central-2.kakaocloud.com/console/api/v1/tags/delete
Request header
Request HeaderTypeRequiredDescription
X-Auth-TokenstringRequiredEnter the user authentication token
Content-TypestringRequiredAlways set to application/json
Request body
Delete tag Request Body
{ 
"tag_ids": [
"string"
]
}
Request elements
Field NameTypeRequiredDescription
tag_idslistRequiredA list of tag IDs to be deleted. A maximum of 100 tags can be deleted at once.
tag_ids[]stringRequiredThe unique ID of each tag. IDs that do not exist will result in an error.
Response body
Create tag Response Body
{ 
"success": boolean
}
Response elements
Field NameTypeDescription
successbooleanIndicates whether the API request was successful.
- true, false
Status codes
CodeResponse MessageDescription
202OKSuccess
400Bad RequestInvalid request
- Refer to the error message and modify the request
403ForbiddenAuthentication succeeded, but the user lacks permission for the requested resource or action
- Ensure the correct account or project with proper permissions is used
500Internal Server ErrorInternal server error
- Please retry later

Assign tag

Tag assignment allows you to attach the desired tags to specific resources. This operation is processed asynchronously and may take some time to complete.
Additionally, tag creation, deletion, or assignment to resources can only proceed after the current operations have completed.

info

Only custom tags are assigned a tag_id, while system tags do not have a tag_id.

API method
MethodRequest URL
PATCHhttps://resource-explorer.kr-central-2.kakaocloud.com/api/v1/resources/tags
Request Header
Request HeaderTypeRequiredDescription
X-Auth-TokenstringRequiredUser Authentication Token
Content-TypestringRequiredAlways set to application/json
Assign tag Request Body
{ 
"kcrns": ["string"],
"connect_tag_ids": ["string"],
"disconnect_tag_ids": ["string"]
}
Request Elements
Field NameTypeRequiredDescription
kcrnslistRequiredAn array of KCRNs (KakaoCloud Resource Names) for the resources to assign tags to.
- Tags can be assigned to multiple resources simultaneously.
connect_tag_idslistRequiredA list of tag IDs to be connected.
- The specified tags will be linked to the resources.
disconnect_tag_idslistRequiredA list of tag IDs to be disconnected.
- The specified tags will be removed from the resources.
Response Body
Assign tag Response Body
{ 
"success": boolean
}
Response elements
Field NameTypeDescription
successbooleanIndicates whether the API request was successful.
- true, false
Status codes
CodeResponse ContentDescription
202OKSuccess
400Bad RequestInvalid request
- Modify the request according to the error message
403ForbiddenAuthentication succeeded, but no permission for the requested resource or action.
- Ensure that the request was made with the correct account or project that has appropriate permissions
500Internal Server ErrorInternal server error
- Please try again later