Skip to main content

Pub/Sub API

Common error codes

Response Error Syntax
{
"error": {
"code": int,
"message": string
}
}

// Example
{
"error": {
"code": 3,
"message": "you have passed an invalid ack ID to the service (ack_id=MTZBRklHTVZTREZTJEpTLkFQSQ==)"
}
}

Error messages and troubleshooting

Error CodeHTTP CodeResponse details and solutions
3 (INVALID_ARGUMENT)400Invalid request
The request is invalid; a required argument may be missing, exceeds limits, or has an invalid value.

Solution: Check the error message and retry the request.
9 (FAILED_PRECONDITION)400Failed precondition
Certain conditions must be met before this operation can proceed.

Solution: Verify the request and retry.
7 (PERMISSION_DENIED)403Permission denied
The certification is invalid.

Solution: Obtain the required permissions and retry.
5 (NOT_FOUND)404Topic or subscription not found
The referenced topic or subscription was not found. In JSON requests, this may also occur if the URL path is incorrect. For publish and pull operations, allow a few seconds for object creation propagation.

Solution: If the resource was recently created, retry the request or ensure the topic/subscription exists before retrying.
13 (INTERNAL)500Internal server error
This error should not occur. If it does, please report it to cloud support. The issue is likely transient.

Solution: Retry the request.
14 (UNAVAILABLE)503Internal server error
This error should not occur. If it does, please report it to cloud support. The issue is likely transient.

Solution: Retry the request.

Topics

The following APIs are related to topics.

Create topic

Creates a topic with the specified name.

API call method
MethodURI
PUT{endpoint-url}/v1/domains/{domain-id}/projects/{project-id}/topics/{topic-name}
PathTypeRequiredDescription
domain-idstringRequiredOrganization ID of the project
project-idstringRequiredProject ID in KakaoCloud
topic-namestringRequiredName of the topic
Request header
RequestTypeRequiredDescription
Credential-IDstringRequiredAccess key ID
Credential-SecretstringRequiredSecret access key
Request Body
Create topic Request Body
{
"topic":{
"description": "topic description",
"messageRetentionDuration": "604800s"
}
}
Response elements
FieldTypeRequiredDescription
descriptionstringOptionalDescription of the topic
messageRetentionDurationstringOptionalMessage retention period
- Default: 604800s (7 days)
Response body
Create Topic Response Body
{
"id": string,
"domain": string,
"project": string,
"name": string,
"messageRetentionDuration": string,
"subscriptionCount": int,
"description": string,
"creator": string,
"createdAt": string
}
Response Elements
ResponseTypeDescriptionOutput Only
idstringID of the topicO
domainstringID of the organization containing the topic
projectstringID of the project containing the topic
namestringName of the topic
messageRetentionDurationstringMessage retention period of the topic
subscriptionCountintNumber of subscriptions linked to the topicO
descriptionstringDescription of the topic
creatorstringCreator of the topicO
createdAttimestampTime when the topic was createdO

Retrieve topic list

Fetches the list of topics created in a project.

API call method
MethodURI
GET{endpoint-url}/v1/domains/{domain-id}/projects/{project-id}/topics
PathTypeRequiredDescription
domain-idstringRequiredID of the organization containing the project
project-idstringRequiredProject ID in KakaoCloud
Request header
RequestTypeRequiredDescription
Credential-IDstringRequiredAccess key ID
Credential-SecretstringRequiredSecret access key
Query parameters
RequestTypeDescription
pageSizeintNumber of items to retrieve per request
pageTokenstringToken to fetch the next page of results
Response body
Retrieve topic list Response Body
{
"topics": [
{
object (Topic)
}
],
"nextPageToken": string
}

//object (Topic) Example
{
"id": string,
"domain": string,
"project": string,
"name": string,
"messageRetentionDuration": string,
"subscriptionCount": int,
"description": string,
"creator": string,
"createdAt": string
}
Response Elements
FieldTypeDescription
topicsObject Array (Topic)List of topics and their details
nextPageTokenstringToken to fetch the next page of topics
Object Array (Topic)
FieldTypeDescriptionOutput Only
idstringID of the topicO
domainstringID of the organization containing the topic
projectstringID of the project containing the topic
namestringName of the topic
messageRetentionDurationstringMessage retention duration of the topic
subscriptionCountintNumber of subscriptions linked to the topicO
descriptionstringDescription of the topic
creatorstringCreator of the topicO
createdAttimestampTime when the topic was createdO

Retrieve topic details

Fetches detailed information about a specific topic.

API call method
MethodRequest URL
GET{endpoint-url}/v1/domains/{domain-id}/projects/{project-id}/topics/{topic-name}
PathTypeRequiredDescription
domain-idstringRequiredID of the organization containing the project
project-idstringRequiredProject ID in KakaoCloud
topic-namestringRequiredName of the topic
Request header
RequestTypeRequiredDescription
Credential-IDstringRequiredAccess key ID
Credential-SecretstringRequiredSecret access key
Response body
Retrieve Topic Details Response Body
{
"id": string,
"domain": string,
"project": string,
"name": string,
"messageRetentionDuration": string,
"subscriptionCount": int,
"description": string,
"creator": string,
"createdAt": string
}
Response Elements
FieldTypeDescriptionOutput Only
idstringID of the topicO
domainstringID of the organization containing the topic
projectstringID of the project containing the topic
namestringName of the topic
messageRetentionDurationstringMessage retention duration of the topic
subscriptionCountintNumber of subscriptions linked to the topicO
descriptionstringDescription of the topic
creatorstringCreator of the topicO
createdAttimestampTime when the topic was createdO

Publish message

Sends one or more messages to a topic.

API call method
MethodRequest URL
POST{endpoint-url}/v1/domains/{domain-id}/projects/{project-id}/topics/{topic-name}/publish
PathTypeRequiredDescription
domain-idstringRequiredID of the organization containing the project
project-idstringRequiredProject ID in KakaoCloud
topic-namestringRequiredName of the topic
Request header
RequestTypeRequiredDescription
Credential-IDstringRequiredAccess key ID
Credential-SecretstringRequiredSecret access key
Request body
Publish Message Request Body
{
"messages": [
{
"data": "66mU7Iuc7KeAIOqyjOyLnCDthYzsiqTtirjsnoXri4jri6Qu",
"attributes": {
"key1": "value1",
"key2": "value2"
}
},
{
"data": "message-2"
}
]
}
Request Elements
RequestTypeRequiredDescription
messagesObject ArrayRequiredList of messages to send to the topic
- Max: 100
message[].datastringRequired
(if attributes are absent)
Message content
- Max size: 1 MiB
⚠️ Note: Must be Base64-encoded.
message[].attributesmap
[string : string]
Required
(if data is absent)
Message attributes
- Max count: 100
- Key: 1~256 characters
- Value: 1~1024 characters
- Total size of Key and Value must not exceed 60 KiB.
⚠️ Note: Keys starting with kakaoc are not allowed.
Response body
Publish Message Response Body
{
"messageIds": [
string,
string
]
}
Response Elements
Response유형설명
messageIdsstring array메시지 별로 발급된 고유 ID
ResponseTypeDescription
messageIdsstring arrayUnique ID assigned to each message

Modify topic

Modify the description, message retention period, and other properties of a topic. The message retention period can only be extended beyond the previously set value.
For user-created topics, the retention period can be extended up to 7 days, while Default-Topics can be extended up to 31 days.

API call method
MethodRequest URL
PATCH{endpoint-url}/v1/domains/{domain-id}/projects/{project-id}/topics/{topic-name}
PathTypeRequiredDescription
domain-idstringRequiredID of the organization containing the project
project-idstringRequiredProject ID in KakaoCloud
topic-namestringRequiredName of the topic
Request header
RequestTypeRequiredDescription
Credential-IDstringRequiredAccess key ID
Credential-SecretstringRequiredSecret access key
Request body
Modify Topic Request Body
{
"topic": {
"description": "topic description",
"messageRetentionDuration": "604800s"
},
"updateMask": "messageRetentionDuration,description"
}
Request Elements
RequestTypeRequiredDescription
topic.descriptionstringRequiredDescription of the topic
topic.messageRetentionDurationstringOptional
(Required if included in updateMask)
Message retention period
- Can only be extended beyond the previously set value (in seconds)
updateMaskstringRequiredList of fields to update
- Separated by commas (,)
Response body
Modify Topic Response Body
{
object (Topic) // Topic details
}

// object (Topic) Example
{
"id": string,
"domain": string,
"project": string,
"name": string,
"messageRetentionDuration": string,
"subscriptionCount": int,
"description": string,
"creator": string,
"createdAt": string
}
Response Elements
ResponseTypeDescriptionOutput Only
idstringID of the topicO
domainstringID of the organization containing the topic
projectstringID of the project containing the topic
namestringName of the topic
messageRetentionDurationstringMessage retention duration of the topic
subscriptionCountintNumber of subscriptions linked to the topicO
descriptionstringDescription of the topic
creatorstringCreator of the topicO
createdAttimestampTime when the topic was createdO

Delete topic

Deletes a topic with the specified name.

Caution

Deleting a topic will also delete all its associated subscriptions.

API call method
MethodURI
DELETE{endpoint-url}/v1/domains/{domain-id}/projects/{project-id}/topics/{topic-name}
PathTypeRequiredDescription
domain-idstringRequiredID of the organization containing the project
project-idstringRequiredProject ID in KakaoCloud
topic-namestringRequiredName of the topic
Request header
RequestTypeRequiredDescription
Credential-IDstringRequiredAccess key ID
Credential-SecretstringRequiredSecret access key

Retrieve subscriptions of a topic

Fetches a list of subscriptions linked to a topic.

API call method
MethodURI
GET{endpoint-url}/v1/domains/{domain-id}/projects/{project-id}/topics/{topic-name}/subscriptions
PathTypeRequiredDescription
domain-idstringRequiredID of the organization containing the project
project-idstringRequiredProject ID in KakaoCloud
topic-namestringRequiredName of the topic
Request header
RequestTypeRequiredDescription
Credential-IDstringRequiredAccess key ID
Credential-SecretstringRequiredSecret access key
Query parameters
RequestTypeDescription
pageSizeintNumber of items to retrieve per request
pageTokenstringToken to fetch the next page of results
Response body
Retrieve Subscriptions of a Topic Response Body
{
"subscriptions": [
string
],
"nextPageToken": string
}
Response Elements
FieldTypeDescription
subscriptionsstring ArrayList of subscription names linked to the topic
nextPageTokenstringToken to fetch the next page of subscription results

Subscription

The following APIs are related to subscriptions.

Create subscription

Creates a subscription with the specified name.

API call method
MethodURI
PUT{endpoint-url}/v1/domains/{domain-id}/projects/{project-id}/subscriptions/{sub-name}
PathTypeRequiredDescription
domain-idstringRequiredID of the organization containing the project
project-idstringRequiredProject ID in KakaoCloud
sub-namestringRequiredName of the subscription
Request body
Create Subscription Request Body
{
"subscription":{
"topic": "topic-1",
// For creating a subscription of type Push
"pushConfig": {
object (PushConfig)
},
// For creating a subscription of type Object Storage
"objectStorageConfig": {
object (ObjectStorageConfig)
},
"ackDeadlineSeconds": 30,
"messageRetentionDuration": "604800s",
"maxDeliveryAttempt": 1
}
}
Request Elements
RequestTypeRequiredDescription
subscription.topicstringRequiredName of the topic to associate with the subscription
subscription.pushConfigObject (PushConfig)OptionalPushSubscription details
- Endpoint Message: Object (PushEndpointMessage)
- If no endpoint is set, the subscription will default to Pull type.
subscription.objectStorageConfigObject (ObjectStorageConfig)OptionalObjectStorageSubscription details
- Cannot be used together with pushConfig
subscription.messageRetentionDurationintOptionalMessage retention period
- Default: Topic's messageRetentionDuration (specified in seconds)
subscription.maxDeliveryAttemptstringOptionalNumber of message retries
- Default: -1 (Unlimited)
subscription.ackDeadlineSecondsintOptionalTime Pub/Sub waits before resending a message to the Subscriber
- Default: 10s (in seconds)
- If the subscriber does not acknowledge the message within the ackDeadline, it will be resent.
PushConfig
PushConfig
{
"pushEndpoint": string
"pushBatchSize": int
}
FieldTypeDescription
pushEndpointstringEndpoint URL (*Applicable only for Push Subscriptions)
pushBatchSizeintMessage batch size for Push subscriptions
- Default: 1
- Max: 100
ObjectStorageConfig
ObjectStorageConfig
{
"bucket": string,
"exportIntervalMinutes": int,
"filePrefix": string,
"fileSuffix": string,
"channelCount": int,
"maxChannelCount": int,
"isExportEnabled": bool
}
FieldTypeDescriptionOutput Only
bucketstringName of the Object Storage bucket
exportIntervalMinutesintInterval for saving files to Object Storage
filePrefixstringThe prefix of the file stored in Object Storage
- Certain special characters (\ : * ? ” < > |) are not allowed, and the prefix cannot start with a slash ('/')
- Consecutive slashes ('//') are not allowed
- The combined length of the prefix and suffix must not exceed 200 bytes
fileSuffixstringThe suffix of the file stored in Object Storage
- Certain special characters (\ : * ? ” < > |) are not allowed
- Consecutive slashes ('//') are not allowed
channelCountintNumber of configured export channels
maxChannelCountintMaximum number of channels that can be created
* Only returned in Subscription Get requests (not in List requests)
O
isExportEnabledboolIndicates whether export is enabledO
Response body
Create Subscription Response Body
{
"id": string,
"name": string,
"domain": string,
"project": string,
"topicId": string,
"topic": string,
"ackDeadlineSeconds": string,
"messageRetentionDuration": string,
"maxDeliveryAttempt": int,
"status": string,
"subscriptionType": string,
"pushConfig": {
object (PushConfig)
},
"objectStorageConfig": {
object (ObjectStorageConfig)
},
"unprocessedMessageCount": int,
"creator": string,
"createdAt": string
}
Response Elements
ResponseTypeDescriptionOutput Only
idstringID of the subscriptionO
namestringName of the subscription
domainstringDomain ID linked to the subscription
projectstringProject ID linked to the subscription
topicIdstringID of the topic linked to the subscriptionO
topicstringName of the topic linked to the subscription
ackDeadlineSecondsintTime Pub/Sub waits before resending a message to the Subscriber
messageRetentionDurationstringMessage retention duration for the subscription
maxDeliveryAttemptintMaximum number of message retry attempts
- -1 (default): Unlimited
- 1~100
statusstringStatus of the subscriptionO
subscriptionTypestringType of subscription
- PULL, PUSH, OBJECT_STORAGE
O
pushConfigObject (PushConfig)Endpoint settings for Push type subscriptions
objectStorageConfigObject (ObjectStorageConfig)Configuration settings for Object Storage type subscriptions
unprocessedMessageCountintCurrent number of unprocessed messages in the subscriptionO
creatorstringCreator of the subscriptionO
createdAttimestampTime when the subscription was createdO

Retrieve subscription list

Fetches the list of subscriptions created in a project.

API call method
MethodURI
GET{endpoint-url}/v1/domains/{domain-id}/projects/{project-id}/subscriptions
PathTypeRequiredDescription
domain-idstringRequiredID of the organization containing the project
project-idstringRequiredProject ID in KakaoCloud
Request header
RequestTypeRequiredDescription
Credential-IDstringRequiredAccess key ID
Credential-SecretstringRequiredSecret access key
Query parameters
RequestTypeDescription
pageSizeintNumber of items to retrieve per request
pageTokenstringToken to fetch the next page of results
Response body
Retrieve Subscription List Response Body
{
"subscriptions": [
{
Object (Subscription)
}
],
"nextPageToken": string
}

//Object (Subscription) Example
{
"id": string,
"name": string,
"domain": string,
"project": string,
"topicId": string,
"topic": string,
"ackDeadlineSeconds": string,
"messageRetentionDuration": string,
"maxDeliveryAttempt": int,
"status": string,
"subscriptionType": string,
"pushConfig": {
object (PushConfig)
},
"objectStorageConfig": {
object (ObjectStorageConfig)
},
"unprocessedMessageCount": int,
"creator": string,
"createdAt": string
}
Response Elements
FieldTypeDescription
subscriptionsObject Array (Subscription)List of subscriptions created in the project
nextPageTokenstringToken to fetch the next page of subscription results
Object Array (Subscription)
FieldTypeDescriptionOutput Only
idstringID of the subscriptionO
namestringName of the subscription
domainstringDomain ID linked to the subscription
projectstringProject ID linked to the subscription
topicIdstringID of the topic linked to the subscriptionO
topicstringName of the topic linked to the subscription
ackDeadlineSecondsintTime Pub/Sub waits before resending a message to the subscriber
messageRetentionDurationstringMessage retention period for the subscription
maxDeliveryAttemptintMaximum number of message retry attempts
- -1 (default): Unlimited
- Range: 1~100
statusstringStatus of the subscriptionO
subscriptionTypestringType of the subscription
- PULL, PUSH, OBJECT_STORAGE
O
pushConfigObject (PushConfig)Endpoint settings for Push type subscriptions
objectStorageConfigObject (ObjectStorageConfig)Configuration settings for Object Storage type subscriptions
creatorstringCreator of the subscriptionO
createdAttimestampTime when the subscription was createdO

Retrieve subscription details

Fetches the details of a specific subscription.

API call method
MethodRequest URL
GET{endpoint-url}/v1/domains/{domain-id}/projects/{project-id}/subscriptions/{sub-name}
PathTypeRequiredDescription
domain-idstringRequiredID of the organization containing the project
project-idstringRequiredProject ID in KakaoCloud
sub-namestringRequiredName of the subscription
Request header
RequestTypeRequiredDescription
Credential-IDstringRequiredAccess key ID
Credential-SecretstringRequiredSecret access key
Response body
Retrieve Subscription Details Object (Subscription) Response Body
{
"id": string,
"name": string,
"domain": string,
"project": string,
"topicId": string,
"topic": string,
"ackDeadlineSeconds": string,
"messageRetentionDuration": string,
"maxDeliveryAttempt": int,
"status": string,
"subscriptionType": string,
"pushConfig": {
object (PushConfig)
},
"objectStorageConfig": {
object (ObjectStorageConfig)
},
"unprocessedMessageCount": int,
"creator": string,
"createdAt": string
}
Response Elements
FieldTypeDescriptionOutput only
idstringThe id of the subscriptionO   
namestringThe name of the subscription
domainstringThe domain name associated with the subscription
projectstringThe project name associated with the subscription
topicIdstringThe id of the topic associated with the subscriptionO
topicstringThe name of the topic associated with the subscription
ackDeadlineSecondsintThe time pub/sub waits before resending a message to the subscriber
messageRetentionDurationstringThe message retention duration for the subscription
maxDeliveryAttemptintThe number of times a message is retried
- -1(default): unlimited
- configurable between 1 and 100
statusstringThe status of the subscriptionO
subscriptionTypestringThe type of subscription
- PULL, PUSH, OBJECT_STORAGE
O
pushConfigobject (PushConfig)Endpoint configuration for push-type subscriptions
objectStorageConfigobject (ObjectStorageConfig)Property settings for object storage subscription type
unprocessedMessageCountintThe current number of unprocessed messages in the subscriptionO
creatorstringThe creator of the subscriptionO
createdAttimestampThe timestamp of subscription creationO

Update subscription (Patch)

Modifies the subscription's configuration.

API call method
MethodURI
PATCH{endpoint-url}/v1/domains/{domain-id}/projects/{project-id}/subscriptions/{sub-name}
PathTypeRequiredDescription
domain-idstringrequired   The id of the organization the project belongs to
project-idstringrequired   Project id in KakaoCloud
sub-namestringrequired   The name of the subscription
Request Header
requesttyperequireddescription
credential-idstringrequired   Access key ID
credential-secretstringrequired   Secret access key
Request Body
Update Subscription Object (Subscription) Request Body

{
"subscription":{
"pushConfig": {
Object (PushConfig)
},
"objectStorageConfig": {
Object (ObjectStorageConfig)
},
"ackDeadlineSeconds": 30,
"messageRetentionDuration": "604800s",
"maxDeliveryAttempt": 5
},
"updateMask": "ackDeadlineSeconds,messageRetentionDuration,pushConfig.pushEndpoint,maxDeliveryAttempt"
}
FieldTypeRequiredDescription
subscription.pushConfigObject (PushConfig)OptionalEndpoint URL (for Push subscriptions)
subscription.objectStorageConfigObject (ObjectStorageConfig)OptionalBucket details (for Object Storage subscription type)
subscription.ackDeadlineSecondsintOptionalTime Pub/Sub waits before resending a message to the Subscriber
subscription.messageRetentionDurationstringOptionalMessage retention duration
subscription.maxDeliveryAttemptintOptionalNumber of message retry attempts
updateMaskstringRequiredList of fields to update
- Separated by commas (,)
Response body
Update Subscription Object (Subscription) Response Body
{
"id": string,
"name": string,
"domain": string,
"project": string,
"topicId": string,
"topic": string,
"ackDeadlineSeconds": string,
"messageRetentionDuration": string,
"maxDeliveryAttempt": int,
"status": string,
"subscriptionType": string,
"pushConfig": {
object (PushConfig)
},
"objectStorageConfig": {
object (ObjectStorageConfig)
},
"unprocessedMessageCount": int,
"creator": string,
"createdAt": string
}
Response Elements
FieldTypeDescriptionOutput Only
idstringID of the subscriptionO
namestringName of the subscription
domainstringDomain ID linked to the subscription
projectstringProject ID linked to the subscription
topicIdstringID of the topic linked to the subscriptionO
topicstringName of the topic linked to the subscription
ackDeadlineSecondsintTime Pub/Sub waits before resending a message to the subscriber
messageRetentionDurationstringMessage retention period for the subscription
maxDeliveryAttemptintMaximum number of message retry attempts
- -1 (default): Unlimited
- Range: 1~100
statusstringStatus of the subscriptionO
subscriptionTypestringType of the subscription
- PULL, PUSH, OBJECT_STORAGE
O
pushConfigObject (PushConfig)Endpoint settings for Push type subscriptions
objectStorageConfigObject (ObjectStorageConfig)Configuration settings for Object Storage type subscriptions
unprocessedMessageCountintCurrent number of unprocessed messages in the subscriptionO
creatorstringCreator of the subscriptionO
createdAttimestampTime when the subscription was createdO

Delete subscription

Deletes a subscription with the specified name.

MethodURI
DELETE{endpoint-url}/v1/domains/{domain}/projects/{project}/subscriptions/{sub-name}

Pull messages

Fetches messages. (*Supported only for Pull subscriptions.)

API call method
MethodURI
POST{endpoint-url}/v1/domains/{domain-id}/projects/{project-id}/subscriptions/{sub-name}/pull
PathTypeRequiredDescription
domain-idstringRequiredID of the organization containing the project
project-idstringRequiredProject ID in KakaoCloud
sub-namestringRequiredName of the subscription
Request header
RequestTypeRequiredDescription
Credential-IDstringRequiredAccess key ID
Credential-SecretstringRequiredSecret access key
Request body
Pull Messages Request Body
{
"maxMessages": 1,
"waitTime": "100ms"
}
RequestTypeRequiredDescription
maxMessagesintRequiredNumber of messages to fetch
- Max: 100
⚠️ If message size is large, fewer messages than requested may be received due to waitTime.
waitTimestringOptionalFetch wait time for messages
- Default: 100ms
- Max: 30s (specified in seconds)
Response body
Pull Messages Response Body
{
"receivedMessages": [
{
object (ReceivedMessage)
}
]
}

//object (ReceivedMessage) Example
{
"ackId": string,
"message": {
object (PubsubMessage)
},
"deliveryAttempt": int
}

//// object (PubsubMessage) Example
{
"data": string,
"attributes": {
string: string
...
},
"messageId": string,
"publishTime": string
}
Response Elements
FieldType
receivedMessagesObject Array (ReceivedMessage)
ReceivedMessage
FieldTypeDescription
ackIdstringID used to perform specific actions (acknowledge, modifyAckDeadline) on the message
messageObject (PubsubMessage)Message details
deliveryAttemptintNumber of times the message has been redelivered
PubsubMessage
FieldTypeDescription
datastring (required)Content of the message, maximum size 1 MiB
attributesmap (key: string, value: string) (optional)Attributes of the message, maximum of 100
messageIdstringUnique message ID, matches the ID assigned to the message in the Publish response
publishTimestringTime the message was published
⚠️ Time: UTC format

Acknowledge message

Processes acknowledgment for a message using its ackId.

API call method
MethodURI
POST{endpoint-url}/v1/domains/{domain-id}/projects/{project-id}/subscriptions/{sub-name}/acknowledge
PathTypeRequiredDescription
domain-idstringRequiredID of the organization containing the project
project-idstringRequiredProject ID in KakaoCloud
sub-namestringRequiredName of the subscription
Request header
FieldTypeRequiredDescription
Credential-IDstringRequiredAccess key ID
Credential-SecretstringRequiredSecret access key
Request body
Acknowledge Message Request Body
{
"ackIds": ["ack-id-1"]
}
RequestTypeRequiredDescription
ackIdsstring arrayRequiredList of ackIds for messages to be acknowledged
Response body
Acknowledge Message Response Body
{
"failure": [
{
object (FailedAckID)
}
]
}

//object (FailedAckID) Example
{
"ackID": string,
"error": object (Error)
}
Response Elements
ResponseType
failureObject (FailedAckID)
FailedAckID
FieldTypeDescription
ackIDstringOriginal ackId
errorstringObject(Error), contains error code and message

Modify message acknowledgment deadline

Extend or shorten the message acknowledgment deadline (Ack Deadline). Upon success, a new ackId is issued.

API call method
MethodURI
POST{endpoint-url}/v1/domains/{domain-id}/projects/{project-id}/subscriptions/{sub-name}/modifyAckDeadline
PathTypeRequiredDescription
domain-idstringRequiredID of the organization containing the project
project-idstringRequiredProject ID in KakaoCloud
sub-namestringRequiredName of the subscription
Request header
FieldTypeRequiredDescription
Credential-IDstringRequiredAccess key ID
Credential-SecretstringRequiredSecret access key
Request body
Modify Acknowledgment Deadline Request Body
{
"ackIds": ["ack-id-1"],
"action": "extend"
}
RequestTypeRequiredDescription
ackIdsstring ArrayRequiredList of ackIds for messages to modify the acknowledgment deadline
actionstringRequiredAction to perform:
- Extend: Extends the message usage time by the subscription's AckDeadline from now
- Skip: Sets the message usage time to 0, allowing other clients to receive the message
Response body
Modify Acknowledgment Deadline Response Body
{
"success": [
{
object (AckID)
}
],
"failure": [
{
object (FailedAckID)
}
]
}

//object (AckID) Example
{
"ackID": string,
"reissuedAckID": string
}

//object (FailedAckID) Example
{
"ackID": string,
"error": object (Error)
}
Response Elements
ResponseTypeDescription
successObject (AckID)List of successfully modified Ack IDs
failureObject (FailedAckID)List of failed Ack IDs
AckID
FieldTypeDescription
ackIDstringOriginal acknowledgment ID
reissuedAckIDstringNewly issued acknowledgment ID
FailedAckID
FieldTypeDescription
ackIDstringOriginal acknowledgment ID
errorstringObject (Error), including error code and description

Rewind messages (Seek)

Allows rewinding a subscription to a specific point in time, so all messages published after that point can be received again.

API call format
MethodURI
POST{endpoint-url}/v1/domains/{domain-id}/projects/{project-id}/subscriptions/{sub-name}/seek
PathTypeRequiredDescription
domain-idstringRequiredOrganization ID of the project
project-idstringRequiredProject ID of KakaoCloud
sub-namestringRequiredName of the subscription
Request Header
HeaderTypeRequiredDescription
Credential-IDstringRequiredAccess key ID
Credential-SecretstringRequiredSecret access key
Request Body
Seek Request Body
{
"time": string
}
RequestTypeRequiredDescription
timestringrequired  the time to rewind
- Format: "2006-01-02T15:04:05+09:00", KST
Response body

No response body.