NewThree filters returned the wrong rows
BeeL
Get StartedMulti-NIFVeriFactuStripeAPI ReferenceChangelog
Request Logs

List API request logs

Scopelogs:read

Returns 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.

Whose traffic you see

  • 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. Requests made by other users, including other users of the same account, are never returned.
  • 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, a beel_sk_live_* key the live traffic of all your live ones. To see the other environment, use a key from that environment.

Browsing the history

  • Cursor pagination: navigate with the opaque cursor returned in next_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.

GET
/v1/developers/request-logs
AuthorizationBearer <token>

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

Query Parameters

only_errors?boolean

If true, only requests with status >= 400.

Defaultfalse
method?string

Filter by HTTP method.

http_status?integer

Filter by an exact HTTP status code.

Range100 <= value <= 599
path_contains?string

Filter by path substring (case-insensitive).

api_key_id?string

Filter by a specific API key.

Formatuuid
from?string

Lower bound of the time range (inclusive). Defaults to 30 days ago.

Formatdate-time
to?string

Upper bound of the time range (inclusive). Defaults to now.

Formatdate-time
cursor?string

Opaque cursor returned by a previous response (next_cursor / prev_cursor).

limit?integer
Default25
Range1 <= value <= 100

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://app.beel.es/api/v1/developers/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": "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"
  }
}

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.

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 — the axis is the person, not the individual credential. - **Deprecated:** use `GET /v1/accounts/{account_id}/request-logs/{request_id}`, whose result is identical. - **`404`:** the request does not exist, was made by another user, 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.