List Deliveries
curl --request GET \
--url https://api.flowiq.live/v1/webhooks/deliveries \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.flowiq.live/v1/webhooks/deliveries"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.flowiq.live/v1/webhooks/deliveries', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.flowiq.live/v1/webhooks/deliveries",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.flowiq.live/v1/webhooks/deliveries"
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(string(body))
}HttpResponse<String> response = Unirest.get("https://api.flowiq.live/v1/webhooks/deliveries")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flowiq.live/v1/webhooks/deliveries")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"webhook_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"url": "<string>",
"platform": "whatsapp",
"event_type": "message_received",
"event_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "pending",
"attempts": 123,
"max_attempts": 8,
"next_attempt_at": "2023-11-07T05:31:56Z",
"last_attempt_at": "2023-11-07T05:31:56Z",
"last_status_code": 123,
"last_error": "HTTP 503",
"last_duration_ms": 123,
"delivered_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z"
}
],
"pagination": {
"limit": 123,
"has_more": true,
"next_cursor": "<string>"
}
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Delivery log
List Deliveries
Deliveries to your webhooks, newest first, cursor-paged. Delivered rows are kept 7 days, dead ones 30. Scope: read.
GET
/
v1
/
webhooks
/
deliveries
List Deliveries
curl --request GET \
--url https://api.flowiq.live/v1/webhooks/deliveries \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.flowiq.live/v1/webhooks/deliveries"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.flowiq.live/v1/webhooks/deliveries', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.flowiq.live/v1/webhooks/deliveries",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.flowiq.live/v1/webhooks/deliveries"
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(string(body))
}HttpResponse<String> response = Unirest.get("https://api.flowiq.live/v1/webhooks/deliveries")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flowiq.live/v1/webhooks/deliveries")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"webhook_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"url": "<string>",
"platform": "whatsapp",
"event_type": "message_received",
"event_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "pending",
"attempts": 123,
"max_attempts": 8,
"next_attempt_at": "2023-11-07T05:31:56Z",
"last_attempt_at": "2023-11-07T05:31:56Z",
"last_status_code": 123,
"last_error": "HTTP 503",
"last_duration_ms": 123,
"delivered_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z"
}
],
"pagination": {
"limit": 123,
"has_more": true,
"next_cursor": "<string>"
}
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Every event FlowIQ sent to your webhooks, newest first, with the result of the last attempt and when the next one is due. See Delivery behaviour for the retry schedule.
Basic Usage
curl "https://api.flowiq.live/v1/webhooks/deliveries?status=failed&limit=50" \
-H "Authorization: Bearer fiq_YOUR_API_KEY"
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
status | string | No | pending, in_flight, delivered, failed or dead |
event_type | string | No | e.g. message_received, call, subscription.renewed |
webhook_id | string | No | Only this webhook (from Get Webhooks) |
event_id | string | No | Every delivery of one event (one per webhook) |
since | string | No | ISO date or time; deliveries created at or after it |
until | string | No | ISO date or time; deliveries created before it |
cursor | string | No | next_cursor from the previous page |
limit | integer | No | Per page, default 50, max 100 |
Response
Success (200)
{
"organization_id": "a4234f32-…",
"data": [
{
"id": "c0a1f3d2-5e6b-4a7c-9d8e-1f2a3b4c5d6e",
"webhook_id": "7c370d81-f159-4279-b383-a514cf1c6675",
"url": "https://your-server.com/webhook",
"platform": "whatsapp",
"event_type": "message_received",
"event_id": "9e8d7c6b-5a4f-4e3d-8c2b-1a0f9e8d7c6b",
"status": "failed",
"attempts": 3,
"max_attempts": 8,
"next_attempt_at": "2026-10-27T00:31:00.000Z",
"last_attempt_at": "2026-10-27T00:26:00.000Z",
"last_status_code": 503,
"last_error": "HTTP 503",
"last_duration_ms": 412,
"delivered_at": null,
"created_at": "2026-10-27T00:25:48.000Z"
}
],
"pagination": { "limit": 50, "has_more": false, "next_cursor": null }
}
status | Meaning |
|---|---|
pending | Recorded, first attempt about to run |
in_flight | An attempt is running now |
delivered | Your server answered 2xx |
failed | The last attempt failed; another is due at next_attempt_at |
dead | All 8 attempts failed; retry by hand if you want it |
Authorizations
Your FlowIQ organisation API key (Settings → API Keys), sent as a bearer token. Format: Bearer fiq_YOUR_API_KEY
Query Parameters
One status
Available options:
pending, in_flight, delivered, failed, dead e.g. message_received, call, subscription.renewed
Only this webhook
Every attempt of one event
ISO date or time; deliveries created at or after it
ISO date or time; deliveries created before it
next_cursor from the previous page
Per page, default 50, max 100
Required range:
1 <= x <= 100
