List API request logs
Scopelogs:readReturns the history of public API requests made by you, with any of your API keys in this
environment — not only the key you are authenticating with. Only auth_type=API_KEY
traffic is recorded.
- The axis is the person, not the individual credential: a second key of yours sees the
same history, and narrowing it to one key is a filter (
api_key_id), not the default. - It is still not the account's traffic: requests made by other users of the same
account, or by their API keys, are never returned. The
{account_id}in the path authorizes the call; it does not widen what you can see. - Environment is not a filter: results are always scoped to the environment of the
credential you authenticate with — a
beel_sk_test_*key sees the test traffic of all your test keys, abeel_sk_live_*key the live traffic of all your live ones. To see the other environment, use a key from that environment. - Cursor pagination: navigate with the opaque
cursorreturned innext_cursor/prev_cursor; there is no jump to an arbitrary page N. - Time window: defaults to the last 30 days; narrow or move it with
from/to.
Keys are prefixed beel_sk_, and each one carries the scopes it was created with: a key
short of the scope an operation needs is answered 403. The scope an operation requires
is shown next to its title, and the full catalogue lives in the Scopes reference.
Keys are created from the BeeL dashboard. They are secret credentials: do not share them or commit them to source control.
In: header
Path Parameters
Account the call is authorized against. It does not widen the result set.
uuidQuery Parameters
If true, only requests with status >= 400.
falseFilter by HTTP method.
Filter by an exact HTTP status code.
100 <= value <= 599Filter by path substring (case-insensitive).
Narrow the result to one of your API keys. Any key of yours in this environment is accepted, not just the one you authenticate with; a key belonging to someone else simply yields no results.
uuidLower bound of the time range (inclusive). Defaults to 30 days ago.
date-timeUpper bound of the time range (inclusive). Defaults to now.
date-timeOpaque cursor returned by a previous response (next_cursor / prev_cursor).
251 <= value <= 100Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://app.beel.es/api/v1/accounts/497f6eca-6276-4993-bfeb-53cbbbba6f08/request-logs"{
"success": true,
"data": {
"request_logs": [
{
"request_id": "6f9619ff-8b86-d011-b42d-00cf4fc964ff",
"timestamp": "2019-08-24T14:15:22Z",
"http_method": "POST",
"http_path": "/v1/invoices",
"http_status": 422,
"duration_ms": 0,
"environment": "PROD",
"api_key_id": "b0dd218e-3bcf-4bdb-a1e3-0689d60a8afd",
"error_code": "VALIDATION_ERROR",
"client_ip": "string"
}
],
"pagination": {
"next_cursor": "string",
"prev_cursor": "string",
"has_next": true,
"has_previous": true
}
},
"meta": {
"timestamp": "2025-01-15T10:30:00Z",
"request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
}
}{
"success": false,
"error": {
"code": "BAD_REQUEST",
"message": "Invalid request"
},
"meta": {
"timestamp": "2025-01-15T10:30:00Z",
"request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
}
}{
"success": false,
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication is required to access this resource"
},
"meta": {
"timestamp": "2025-01-15T10:30:00Z",
"request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
}
}{
"success": false,
"error": {
"code": "FORBIDDEN",
"message": "You do not have permission to access this resource"
},
"meta": {
"timestamp": "2025-01-15T10:30:00Z",
"request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
}
}{
"success": false,
"error": {
"code": "REQUEST_LOG_INVALID_CURSOR",
"message": "The pagination cursor is not valid."
},
"meta": {
"timestamp": "2025-01-15T10:30:00Z",
"request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
}
}{
"success": false,
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Too many requests. Please try again in 60 seconds."
},
"meta": {
"timestamp": "2025-01-15T10:30:00Z",
"request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
}
}{
"success": false,
"error": {
"code": "INTERNAL_ERROR",
"message": "Internal server error"
},
"meta": {
"timestamp": "2025-01-15T10:30:00Z",
"request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
}
}{
"success": false,
"error": {
"code": "UNSUPPORTED_MEDIA_TYPE",
"message": "Unsupported media type: text/plain. Supported: application/json"
},
"meta": {
"timestamp": "2025-01-15T10:30:00Z",
"request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
}
}Retry a failed webhook delivery POST
**Deprecated.** Use `POST /v1/accounts/{account_id}/webhooks/{webhook_id}/deliveries/{delivery_id}/retry`, which behaves identically. Re-sends the original payload of a delivery immediately. - **Payload:** the one captured when the event happened, not a fresh snapshot, so changes made to the entity since then are not reflected. - **History:** the outcome is recorded as a new entry and the original entry is kept as it was. `attempt_number` continues the same sequence, so it can exceed the 5 automatic attempts.
Get an API request log detail GET
Returns the full detail (bodies and headers) of a request made by you, with any of your API keys in this environment — including one made with a key other than the one you are authenticating with, because the axis is the person, not the individual credential. - **`{account_id}`:** authorizes the call; it does not widen what you can see. - **`404`:** the request does not exist, was made by another user (including another user of this same account), or belongs to the other environment. - **The widest read `logs:read` opens:** it returns the bodies and headers that any key of yours exchanged in this environment, so a key holding only `logs:read` reads the traffic of your privileged keys too. It never crosses to another user or to another account. Grant it accordingly.