List Webhook requests
curl --request GET \
--url https://api.sandbox.metriport.com/settings/webhook/request \
--header 'x-api-key: <api-key>'import requests
url = "https://api.sandbox.metriport.com/settings/webhook/request"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.sandbox.metriport.com/settings/webhook/request', 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.sandbox.metriport.com/settings/webhook/request",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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.sandbox.metriport.com/settings/webhook/request"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
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.sandbox.metriport.com/settings/webhook/request")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.metriport.com/settings/webhook/request")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_bodyimport { MetriportMedicalApi } from "@metriport/api-sdk";
const metriportClient = new MetriportMedicalApi("YOUR_API_KEY");
const response = await metriportClient.listWebhookRequests();
Settings
List Webhook requests
Lists webhook requests Metriport sent to your app, sorted by most recent as default.
GET
/
settings
/
webhook
/
request
List Webhook requests
curl --request GET \
--url https://api.sandbox.metriport.com/settings/webhook/request \
--header 'x-api-key: <api-key>'import requests
url = "https://api.sandbox.metriport.com/settings/webhook/request"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.sandbox.metriport.com/settings/webhook/request', 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.sandbox.metriport.com/settings/webhook/request",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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.sandbox.metriport.com/settings/webhook/request"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
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.sandbox.metriport.com/settings/webhook/request")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.metriport.com/settings/webhook/request")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_bodyimport { MetriportMedicalApi } from "@metriport/api-sdk";
const metriportClient = new MetriportMedicalApi("YOUR_API_KEY");
const response = await metriportClient.listWebhookRequests();
Returns webhook deliveries Metriport sent to your configured URL. Sorted by most recent
as default (
Remaining fields on
Example response:
createdAt=desc). The default page size is 50 and the maximum is 250. Use id to
retry a delivery.
Webhooks are retained for 30 days.
This is a paginated endpoint. For more information see pagination.
Query Params
string
Pagination cursor to start after a previous page. Use the
fromItem value from
meta.nextPage.number
Number of items per page. Default 50, maximum 250.
string
createdAt or when, with asc or desc. when is the same as createdAt.
Defaults to createdAt=desc.Response
object
required
Pagination metadata. See
pagination.
object[]
required
Webhook deliveries Metriport sent to your URL.
Show properties
Show properties
string
required
ID of this webhook request. Same as
payload.meta.messageId. Use this to retry.string
required
When the webhook request was created, ISO 8601. Same as
payload.meta.when.string
required
Delivery status:
processing, success, or failure.string
Detail for this delivery, when present.
object
required
The JSON Metriport POSTed to your URL.
Show payload properties
Show payload properties
object
required
Webhook metadata.
Show meta properties
Show meta properties
string
required
ID of this webhook request. Same as the item
id.string
required
When the webhook request was created, ISO 8601.
string
required
Webhook type, for example
medical.document-download.string
Related request ID when this webhook was tied to another flow.
object
Customer metadata from the original webhook request, when stored.
payload are the webhook body for that type.
import { MetriportMedicalApi } from "@metriport/api-sdk";
const metriportClient = new MetriportMedicalApi("YOUR_API_KEY");
const response = await metriportClient.listWebhookRequests();
{
"meta": {
"nextPage": "https://api.metriport.com/settings/webhook/request?fromItem=<cursor>&count=50",
"itemsOnPage": 1,
"itemsInTotal": 1
},
"requests": [
{
"id": "00000000-0000-0000-0000-000000000000",
"createdAt": "2026-09-21T19:00:00.000Z",
"status": "failure",
"statusDetail": "Request failed with status code 500",
"payload": {
"meta": {
"messageId": "00000000-0000-0000-0000-000000000000",
"when": "2026-09-21T19:00:00.000Z",
"type": "medical.document-download",
"requestId": "11111111-1111-1111-1111-111111111111"
},
"patients": [
{
"patientId": "eddeefa1-b54a-41d6-854f-0e91b7871d6a",
"type": "document-download",
"status": "completed"
}
]
}
}
]
}

