---
title: "Search webhook logs"
method: GET
path: "/webhooks/logs"
tags: ["Webhooks"]
---

# Search webhook logs

`GET /webhooks/logs`

Search for your webhook logs.

## Query parameters

- `endpoint` string, uri
- `at` string, date-time — RFC 3339, section 5.6
- `id` string
- `sid` string — Short ID
- `httpcode` integer
- `try` integer
- `type` 'v2.billing.credit.topup' | 'v2.billing.credit.warning' | 'v2.billing.credit.shutdown' | 'v2.call.inbound.started' | 'v2.call.inbound.ended' | 'v2.call.outbound.started' | 'v2.call.outbound.ended' | 'v2.number.assigned' | 'v2.number.unassigned' | 'v2.task.updated' | 'v2.audio-file.updated' | 'v2.recording.updated' | 'v2.sms.inbound.received' | 'v2.sms.outbound.updated' — - `v2.billing.credit.topup` = Your account has been credited with a new amount. - `v2.billing.credit.warning` = Your prepaid balance has reached its warning level. - `v2.billing.credit.shutdown` = Your prepaid balance has reached its shutdown level. Your account is suspended. - `v2.call.inbound.started` = An inbound call just started. - `v2.call.inbound.ended` = An inbound call just hung up. - `v2.call.outbound.started` = An outbound call just started. - `v2.call.outbound.ended` = An outbound call just hung up. - `v2.number.assigned` = A phone number was assigned to your account. - `v2.number.unassigned` = A phone number was unassigned from your account. - `v2.task.updated` = A task has been updated. - `v2.audio-file.updated` = An audio file has been updated. - `v2.recording.updated` = A recording has been updated. - `v2.sms.inbound.received` = An inbound SMS has been received. - `v2.sms.outbound.updated` = An outbound SMS has an updated status.
- `sort` 'at'
- `order` 'asc' | 'desc'
- `offset` integer — Offset index (zero-based)
- `limit` integer — Limit search results

## Response `200`

Search results

- WebhookLogsSearchResult
  - `offset` integer, required — Offset index (zero-based)
  - `total` integer, required
  - `hasMore` boolean, required — Whether there are more results available
  - `hits` WebhookLog[], required
    - `id` string, required — Unique identifier for the event. Use this for idempotency checks.
    - `at` string, date-time, required — RFC 3339, section 5.6
    - `sid` string, required — Short ID
    - `type` 'v2.billing.credit.topup' | 'v2.billing.credit.warning' | 'v2.billing.credit.shutdown' | 'v2.call.inbound.started' | 'v2.call.inbound.ended' | 'v2.call.outbound.started' | 'v2.call.outbound.ended' | 'v2.number.assigned' | 'v2.number.unassigned' | 'v2.task.updated' | 'v2.audio-file.updated' | 'v2.recording.updated' | 'v2.sms.inbound.received' | 'v2.sms.outbound.updated', required — - `v2.billing.credit.topup` = Your account has been credited with a new amount. - `v2.billing.credit.warning` = Your prepaid balance has reached its warning level. - `v2.billing.credit.shutdown` = Your prepaid balance has reached its shutdown level. Your account is suspended. - `v2.call.inbound.started` = An inbound call just started. - `v2.call.inbound.ended` = An inbound call just hung up. - `v2.call.outbound.started` = An outbound call just started. - `v2.call.outbound.ended` = An outbound call just hung up. - `v2.number.assigned` = A phone number was assigned to your account. - `v2.number.unassigned` = A phone number was unassigned from your account. - `v2.task.updated` = A task has been updated. - `v2.audio-file.updated` = An audio file has been updated. - `v2.recording.updated` = A recording has been updated. - `v2.sms.inbound.received` = An inbound SMS has been received. - `v2.sms.outbound.updated` = An outbound SMS has an updated status.
    - `try` integer, required — Number of attempts made to deliver the webhook
    - `endpoint` string, uri, required
    - `status` 'pending' | 'running' | 'done' | 'error', required — The status of the request
    - `httpCode` integer, required — The HTTP status code sent by the endpoint. 0 if the request failed before a response was received (connection error, timeout).
    - `duration` number, double, required — The total duration of the HTTP request in seconds
    - `error` string — The error message if the request failed
    - `payload` unknown, required

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `405` — Method Not Allowed
- `429` — Too Many Requests (rate limit exceeded)
- `500` — Internal Server Error

---

[API](https://skmtc.net/callr/apis/callr-rest-api-v2-0.md) · [All operations](https://skmtc.net/callr/apis/callr-rest-api-v2-0/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/callr/callr-rest-api-v2-0/versions/76d36d004a8f/schema)
