List an endpoint's deliveries
using System.Net.Http.Headers;var client = new HttpClient();var request = new HttpRequestMessage{ Method = HttpMethod.Get, RequestUri = new Uri("https://api.roundrobinbot.eu/v1/webhooks/example/deliveries?from=2026-04-15T12%3A00%3A00Z&to=2026-04-15T12%3A00%3A00Z"), Headers = { { "Authorization", "Bearer <token>" }, },};using (var response = await client.SendAsync(request)){ response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);}package main
import ( "fmt" "net/http" "io")
func main() {
url := "https://api.roundrobinbot.eu/v1/webhooks/example/deliveries?from=2026-04-15T12%3A00%3A00Z&to=2026-04-15T12%3A00%3A00Z"
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))
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder() .url("https://api.roundrobinbot.eu/v1/webhooks/example/deliveries?from=2026-04-15T12%3A00%3A00Z&to=2026-04-15T12%3A00%3A00Z") .get() .addHeader("Authorization", "Bearer <token>") .build();
Response response = client.newCall(request).execute();import axios from 'axios';
const options = { method: 'GET', url: 'https://api.roundrobinbot.eu/v1/webhooks/example/deliveries', params: {from: '2026-04-15T12:00:00Z', to: '2026-04-15T12:00:00Z'}, headers: {Authorization: 'Bearer <token>'}};
try { const { data } = await axios.request(options); console.log(data);} catch (error) { console.error(error);}const url = 'https://api.roundrobinbot.eu/v1/webhooks/example/deliveries?from=2026-04-15T12%3A00%3A00Z&to=2026-04-15T12%3A00%3A00Z';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);}curl --request GET \ --url 'https://api.roundrobinbot.eu/v1/webhooks/example/deliveries?from=2026-04-15T12%3A00%3A00Z&to=2026-04-15T12%3A00%3A00Z' \ --header 'Authorization: Bearer <token>'Every delivery we attempted against this endpoint inside a window you name: the event, the rotation it happened on, what your server last answered, and how many attempts it took. One row is one delivery, not one attempt, so a delivery your server refused twice and then accepted is one row with attemptCount: 3 rather than three rows sharing a deliveryId. Read GET /v1/webhooks/{webhookId}/deliveries/{deliveryId}/attempts for one delivery’s ladder with the exact bytes each attempt carried. Filter by eventType, rotationId and outcome, or by failuresOnly=true for every outcome but delivered and cancelled: a delivery you cancelled yourself is not a failure. from and to are both required and no more than 90 days apart; the log itself keeps 30 days, so an older window is answered honestly with nothing. Oldest first, like every collection here. Ask for sort=at|desc for the newest. No ETag: a page is assembled from many rows, so no single version stands behind it.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Query Parameters
Section titled “Query Parameters”Responses
Section titled “Responses”OK
The envelope every /v1 collection comes back in.
object
One row of the list: one whole delivery, not one attempt.
object
The id your receiver deduplicates on, shared by every attempt of this delivery. Pass it to POST /v1/webhooks/{webhookId}/deliveries/{deliveryId}/cancel to stop it.
When this delivery’s first attempt was made.
How many rows this delivery has, real sends and terminal states alike.
Whether this delivery is still climbing the retry ladder: its newest attempt ended in something a later attempt can still follow, and we are still enabled to make one.
Roughly when the retry ladder would give up on this delivery, if every round after its next attempt waits no longer than its own default.
Examplegenerated
{ "data": [ { "deliveryId": "example", "eventType": "example", "rotationId": "example", "firstAttemptedAt": "2026-04-15T12:00:00Z", "newestOutcome": "example", "newestStatusCode": 1, "newestDurationMs": 1, "attemptCount": 1, "onLadder": true, "newestRound": 1, "totalRounds": 1, "nextAttemptDueAt": "2026-04-15T12:00:00Z", "estimatedGivesUpAt": "2026-04-15T12:00:00Z" } ], "page": 1, "pageSize": 1, "totalItems": 1, "totalPages": 1}Bad Request
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}Unauthorized
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}Forbidden
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}Not Found
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}