curl --request POST \
--url https://adp-global.laiye.com/open/agentic_doc_processor/{tenant_name}/v1/webhook/logs \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"webhook_id": "webhook_abc123",
"start_time": "2026-08-01 00:00:00",
"end_time": "2026-08-02 00:00:00",
"page": 1,
"page_size": 20
}
'const options = {
method: 'POST',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
webhook_id: 'webhook_abc123',
start_time: '2026-08-01 00:00:00',
end_time: '2026-08-02 00:00:00',
page: 1,
page_size: 20
})
};
fetch('https://adp-global.laiye.com/open/agentic_doc_processor/{tenant_name}/v1/webhook/logs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://adp-global.laiye.com/open/agentic_doc_processor/{tenant_name}/v1/webhook/logs"
payload = {
"webhook_id": "webhook_abc123",
"start_time": "2026-08-01 00:00:00",
"end_time": "2026-08-02 00:00:00",
"page": 1,
"page_size": 20
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)HttpResponse<String> response = Unirest.post("https://adp-global.laiye.com/open/agentic_doc_processor/{tenant_name}/v1/webhook/logs")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"webhook_id\": \"webhook_abc123\",\n \"start_time\": \"2026-08-01 00:00:00\",\n \"end_time\": \"2026-08-02 00:00:00\",\n \"page\": 1,\n \"page_size\": 20\n}")
.asString();const url = 'https://adp-global.laiye.com/open/agentic_doc_processor/{tenant_name}/v1/webhook/logs';
const options = {
method: 'POST',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
webhook_id: 'webhook_abc123',
start_time: '2026-08-01 00:00:00',
end_time: '2026-08-02 00:00:00',
page: 1,
page_size: 20
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://adp-global.laiye.com/open/agentic_doc_processor/{tenant_name}/v1/webhook/logs"
payload := strings.NewReader("{\n \"webhook_id\": \"webhook_abc123\",\n \"start_time\": \"2026-08-01 00:00:00\",\n \"end_time\": \"2026-08-02 00:00:00\",\n \"page\": 1,\n \"page_size\": 20\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}using RestSharp;
var options = new RestClientOptions("https://adp-global.laiye.com/open/agentic_doc_processor/{tenant_name}/v1/webhook/logs");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("X-API-KEY", "<api-key>");
request.AddJsonBody("{\n \"webhook_id\": \"webhook_abc123\",\n \"start_time\": \"2026-08-01 00:00:00\",\n \"end_time\": \"2026-08-02 00:00:00\",\n \"page\": 1,\n \"page_size\": 20\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://adp-global.laiye.com/open/agentic_doc_processor/{tenant_name}/v1/webhook/logs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'webhook_id' => 'webhook_abc123',
'start_time' => '2026-08-01 00:00:00',
'end_time' => '2026-08-02 00:00:00',
'page' => 1,
'page_size' => 20
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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;
}{
"data": {
"logs": [
{
"id": "<string>",
"webhook_id": "<string>",
"webhook_url": "<string>",
"event_type": "doc_parse_completed",
"status": "pending",
"retry_count": 1,
"app_id": "<string>",
"app_name": "<string>",
"next_retry_at": "2023-11-07T05:31:56Z",
"response_code": 123,
"response_body": "<string>",
"delivered_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z"
}
],
"total": 1,
"page": 2,
"page_size": 50
},
"code": "<string>",
"message": "<string>",
"tips": "<string>"
}{
"detail": [
{
"type": "greater_than",
"loc": [
"query",
"limit"
],
"msg": "Input should be greater than 0",
"input": 0,
"ctx": {
"gt": 0
}
}
]
}Query Webhook delivery logs
Query Webhook delivery results. The default window is the last 72 hours, and one request can span at most 30 days. response_body retains at most approximately 2,000 characters and may contain business or sensitive information returned by the receiver.
The current service queries logs at tenant scope and does not further isolate them by the user who created the Webhook. Use this endpoint only with an administrator API Key in a controlled tenant, and pass webhook_id whenever possible to narrow the scope. Do not expose log responses to ordinary end users.
curl --request POST \
--url https://adp-global.laiye.com/open/agentic_doc_processor/{tenant_name}/v1/webhook/logs \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"webhook_id": "webhook_abc123",
"start_time": "2026-08-01 00:00:00",
"end_time": "2026-08-02 00:00:00",
"page": 1,
"page_size": 20
}
'const options = {
method: 'POST',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
webhook_id: 'webhook_abc123',
start_time: '2026-08-01 00:00:00',
end_time: '2026-08-02 00:00:00',
page: 1,
page_size: 20
})
};
fetch('https://adp-global.laiye.com/open/agentic_doc_processor/{tenant_name}/v1/webhook/logs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://adp-global.laiye.com/open/agentic_doc_processor/{tenant_name}/v1/webhook/logs"
payload = {
"webhook_id": "webhook_abc123",
"start_time": "2026-08-01 00:00:00",
"end_time": "2026-08-02 00:00:00",
"page": 1,
"page_size": 20
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)HttpResponse<String> response = Unirest.post("https://adp-global.laiye.com/open/agentic_doc_processor/{tenant_name}/v1/webhook/logs")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"webhook_id\": \"webhook_abc123\",\n \"start_time\": \"2026-08-01 00:00:00\",\n \"end_time\": \"2026-08-02 00:00:00\",\n \"page\": 1,\n \"page_size\": 20\n}")
.asString();const url = 'https://adp-global.laiye.com/open/agentic_doc_processor/{tenant_name}/v1/webhook/logs';
const options = {
method: 'POST',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
webhook_id: 'webhook_abc123',
start_time: '2026-08-01 00:00:00',
end_time: '2026-08-02 00:00:00',
page: 1,
page_size: 20
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://adp-global.laiye.com/open/agentic_doc_processor/{tenant_name}/v1/webhook/logs"
payload := strings.NewReader("{\n \"webhook_id\": \"webhook_abc123\",\n \"start_time\": \"2026-08-01 00:00:00\",\n \"end_time\": \"2026-08-02 00:00:00\",\n \"page\": 1,\n \"page_size\": 20\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}using RestSharp;
var options = new RestClientOptions("https://adp-global.laiye.com/open/agentic_doc_processor/{tenant_name}/v1/webhook/logs");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("X-API-KEY", "<api-key>");
request.AddJsonBody("{\n \"webhook_id\": \"webhook_abc123\",\n \"start_time\": \"2026-08-01 00:00:00\",\n \"end_time\": \"2026-08-02 00:00:00\",\n \"page\": 1,\n \"page_size\": 20\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://adp-global.laiye.com/open/agentic_doc_processor/{tenant_name}/v1/webhook/logs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'webhook_id' => 'webhook_abc123',
'start_time' => '2026-08-01 00:00:00',
'end_time' => '2026-08-02 00:00:00',
'page' => 1,
'page_size' => 20
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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;
}{
"data": {
"logs": [
{
"id": "<string>",
"webhook_id": "<string>",
"webhook_url": "<string>",
"event_type": "doc_parse_completed",
"status": "pending",
"retry_count": 1,
"app_id": "<string>",
"app_name": "<string>",
"next_retry_at": "2023-11-07T05:31:56Z",
"response_code": 123,
"response_body": "<string>",
"delivered_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z"
}
],
"total": 1,
"page": 2,
"page_size": 50
},
"code": "<string>",
"message": "<string>",
"tips": "<string>"
}{
"detail": [
{
"type": "greater_than",
"loc": [
"query",
"limit"
],
"msg": "Input should be greater than 0",
"input": 0,
"ctx": {
"gt": 0
}
}
]
}Authorizations
Production API Key. You can find it under My API in the ADP platform. Make sure the API Key is active and belongs to the production environment.
Path Parameters
Tenant name. Default: laiye.
Body
Webhook configuration ID. Always provide it whenever possible to narrow the query scope.
Start time in YYYY-MM-DD HH:mm:ss format. If omitted, defaults to 72 hours before the end time.
^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$End time in YYYY-MM-DD HH:mm:ss format. If omitted, defaults to the current time.
^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$x >= 11 <= x <= 100