List webhook deliveries
package main
import ( "fmt" "net/http" "io")
func main() {
url := "https://api.kirimdev.com/v1/webhook_deliveries?subscription_id=wbs_01HXYZABCDEFGHJKMNPQRSTVWX&status=pending&event_type=message.received&created_after=2026-09-10T00%3A00%3A00.000Z&created_before=2026-09-11T00%3A00%3A00.000Z&limit=25&cursor=eyJpZCI6IjAxSFhZWkFCQ0RFRkdISktNTlBRUlNUVldYIiwidHMiOiIyMDI2LTA5LTEwVDA5OjAwOjAwLjAwMFoifQ"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(res) fmt.Println(string(body))
}const url = 'https://api.kirimdev.com/v1/webhook_deliveries?subscription_id=wbs_01HXYZABCDEFGHJKMNPQRSTVWX&status=pending&event_type=message.received&created_after=2026-09-10T00%3A00%3A00.000Z&created_before=2026-09-11T00%3A00%3A00.000Z&limit=25&cursor=eyJpZCI6IjAxSFhZWkFCQ0RFRkdISktNTlBRUlNUVldYIiwidHMiOiIyMDI2LTA5LTEwVDA5OjAwOjAwLjAwMFoifQ';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}use reqwest;
#[tokio::main]pub async fn main() { let url = "https://api.kirimdev.com/v1/webhook_deliveries";
let querystring = [ ("subscription_id", "wbs_01HXYZABCDEFGHJKMNPQRSTVWX"), ("status", "pending"), ("event_type", "message.received"), ("created_after", "2026-09-10T00:00:00.000Z"), ("created_before", "2026-09-11T00:00:00.000Z"), ("limit", "25"), ("cursor", "eyJpZCI6IjAxSFhZWkFCQ0RFRkdISktNTlBRUlNUVldYIiwidHMiOiIyMDI2LTA5LTEwVDA5OjAwOjAwLjAwMFoifQ"), ];
let mut headers = reqwest::header::HeaderMap::new(); headers.insert("Authorization", "Bearer <token>".parse().unwrap());
let client = reqwest::Client::new(); let response = client.get(url) .query(&querystring) .headers(headers) .send() .await;
let results = response.unwrap() .json::<serde_json::Value>() .await .unwrap();
dbg!(results);}curl --request GET \ --url 'https://api.kirimdev.com/v1/webhook_deliveries?subscription_id=wbs_01HXYZABCDEFGHJKMNPQRSTVWX&status=pending&event_type=message.received&created_after=2026-09-10T00%3A00%3A00.000Z&created_before=2026-09-11T00%3A00%3A00.000Z&limit=25&cursor=eyJpZCI6IjAxSFhZWkFCQ0RFRkdISktNTlBRUlNUVldYIiwidHMiOiIyMDI2LTA5LTEwVDA5OjAwOjAwLjAwMFoifQ' \ --header 'Authorization: Bearer <token>'List webhook delivery attempts newest first. Combine subscription, event, status, and timestamp filters to inspect failures, then use the returned opaque cursor for the next page.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters ”Return deliveries for one webhook subscription.
Example
wbs_01HXYZABCDEFGHJKMNPQRSTVWXReturn deliveries for one webhook subscription.
Filter by the latest delivery state.
Example
deadFilter by the latest delivery state.
Filter by exact webhook event type.
Example
message.receivedFilter by exact webhook event type.
Return deliveries created strictly after this ISO 8601 instant.
Example
2026-09-10T00:00:00.000ZReturn deliveries created strictly after this ISO 8601 instant.
Return deliveries created strictly before this ISO 8601 instant.
Example
2026-09-11T00:00:00.000ZReturn deliveries created strictly before this ISO 8601 instant.
Number of items to return. Defaults to 25; minimum 1 and maximum 100.
Example
25Number of items to return. Defaults to 25; minimum 1 and maximum 100.
Opaque continuation token from the previous response’s next_cursor. Pass it unchanged and keep all other filters the same.
Example
eyJpZCI6IjAxSFhZWkFCQ0RFRkdISktNTlBRUlNUVldYIiwidHMiOiIyMDI2LTA5LTEwVDA5OjAwOjAwLjAwMFoifQOpaque continuation token from the previous response’s next_cursor. Pass it unchanged and keep all other filters the same.
Responses
Section titled “ Responses ”Delivery list
object
Items in this page, ordered as documented by the operation.
object
Body returned by YOUR endpoint, truncated. Null when the endpoint sent no body or was never reached — check error_code in that case.
Why the last attempt failed. Null on success. http_error means your endpoint answered with a non-2xx status. timeout and connection_error mean it never answered. The remaining values mean we declined to send.
Human-readable detail for error_code, truncated to 200 characters.
Whether another page is available.
Pass this value unchanged as cursor to fetch the next page. null marks the final page.
Unique request identifier to include when contacting support.
Example
{ "data": [ { "id": "wbd_01HXYZABCDEFGHJKMNPQRSTVWX", "object": "webhook_delivery", "status": "pending", "error_code": "timeout" } ], "has_more": false, "next_cursor": null, "request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX"}Validation failure
object
object
Human-readable explanation of the error.
Request field associated with the error, when applicable.
Unique request identifier to include when contacting support.
Examples
A field value is invalid.
{ "error": { "type": "invalid_request_error", "code": "invalid_field_value", "message": "A field value is invalid.", "request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX" }}Authentication failure
object
object
Human-readable explanation of the error.
Request field associated with the error, when applicable.
Unique request identifier to include when contacting support.
Examples
The provided API key is invalid.
{ "error": { "type": "authentication_error", "code": "invalid_api_key", "message": "The provided API key is invalid.", "request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX" }}Rate limit exceeded
object
object
Human-readable explanation of the error.
Request field associated with the error, when applicable.
Unique request identifier to include when contacting support.
Examples
Rate limit exceeded.
{ "error": { "type": "rate_limit_error", "code": "rate_limit_exceeded", "message": "Rate limit exceeded.", "request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX" }}Internal server error
object
object
Human-readable explanation of the error.
Request field associated with the error, when applicable.
Unique request identifier to include when contacting support.
Examples
An unexpected error occurred.
{ "error": { "type": "api_error", "code": "internal_error", "message": "An unexpected error occurred.", "request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX" }}