Consumers
Acknowledge a managed consumer batch
After processing every event returned by getFeedChanges for this consumer, acknowledge that response’s next_cursor. Crashes before ack cause safe redelivery; stale, foreign, and invented cursors are rejected.
POST
https://api.smry.ai
/
v1
/
feeds
/
consumers
/
{id}
/
ack
Acknowledge a managed consumer batch
curl --request POST \
--url https://api.smry.ai/v1/feeds/consumers/{id}/ack \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"id": 7,
"cursor": "<next_cursor from get_feed_changes>"
}
'import requests
url = "https://api.smry.ai/v1/feeds/consumers/{id}/ack"
payload = {
"id": 7,
"cursor": "<next_cursor from get_feed_changes>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({id: 7, cursor: '<next_cursor from get_feed_changes>'})
};
fetch('https://api.smry.ai/v1/feeds/consumers/{id}/ack', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": 123,
"name": "<string>",
"where": "<unknown>",
"acknowledged_cursor": "<string>",
"created_at": "<string>",
"last_delivered_at": "<string>",
"last_acknowledged_at": "<string>"
}{
"error": "cursor: expected a next_cursor from a previous response.",
"code": "invalid_request",
"field": "where.published_after",
"hint": "<string>",
"retryable": true,
"retryAfter": 123,
"details": "<string>"
}{
"error": "cursor: expected a next_cursor from a previous response.",
"code": "invalid_request",
"field": "where.published_after",
"hint": "<string>",
"retryable": true,
"retryAfter": 123,
"details": "<string>"
}{
"error": "cursor: expected a next_cursor from a previous response.",
"code": "invalid_request",
"field": "where.published_after",
"hint": "<string>",
"retryable": true,
"retryAfter": 123,
"details": "<string>"
}{
"error": "cursor: expected a next_cursor from a previous response.",
"code": "invalid_request",
"field": "where.published_after",
"hint": "<string>",
"retryable": true,
"retryAfter": 123,
"details": "<string>"
}{
"error": "cursor: expected a next_cursor from a previous response.",
"code": "invalid_request",
"field": "where.published_after",
"hint": "<string>",
"retryable": true,
"retryAfter": 123,
"details": "<string>"
}Authorizations
oauth2AuthbearerAuthapiKeyAuth
Clerk OAuth 2.0 Authorization Code flow with PKCE. Request the minimum scope required by the operation.
Path Parameters
Identifier of the resource, as returned by the matching list or create operation.
Body
application/json
Response
Acknowledge a managed consumer batch. The operation succeeded.
Acknowledge a managed consumer batch. The operation succeeded.
The Consumer's durable acknowledged position. Poll with consumer_id; acknowledge the next_cursor returned by that poll.
Last modified on September 13, 2026
⌘I
Acknowledge a managed consumer batch
curl --request POST \
--url https://api.smry.ai/v1/feeds/consumers/{id}/ack \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"id": 7,
"cursor": "<next_cursor from get_feed_changes>"
}
'import requests
url = "https://api.smry.ai/v1/feeds/consumers/{id}/ack"
payload = {
"id": 7,
"cursor": "<next_cursor from get_feed_changes>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({id: 7, cursor: '<next_cursor from get_feed_changes>'})
};
fetch('https://api.smry.ai/v1/feeds/consumers/{id}/ack', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": 123,
"name": "<string>",
"where": "<unknown>",
"acknowledged_cursor": "<string>",
"created_at": "<string>",
"last_delivered_at": "<string>",
"last_acknowledged_at": "<string>"
}{
"error": "cursor: expected a next_cursor from a previous response.",
"code": "invalid_request",
"field": "where.published_after",
"hint": "<string>",
"retryable": true,
"retryAfter": 123,
"details": "<string>"
}{
"error": "cursor: expected a next_cursor from a previous response.",
"code": "invalid_request",
"field": "where.published_after",
"hint": "<string>",
"retryable": true,
"retryAfter": 123,
"details": "<string>"
}{
"error": "cursor: expected a next_cursor from a previous response.",
"code": "invalid_request",
"field": "where.published_after",
"hint": "<string>",
"retryable": true,
"retryAfter": 123,
"details": "<string>"
}{
"error": "cursor: expected a next_cursor from a previous response.",
"code": "invalid_request",
"field": "where.published_after",
"hint": "<string>",
"retryable": true,
"retryAfter": 123,
"details": "<string>"
}{
"error": "cursor: expected a next_cursor from a previous response.",
"code": "invalid_request",
"field": "where.published_after",
"hint": "<string>",
"retryable": true,
"retryAfter": 123,
"details": "<string>"
}