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