Skip to main content

Raw access logs

The Raw Logs page lets you inspect individual CDN requests instead of aggregates. Use it to trace a specific error, confirm a cache decision for one URL, or audit traffic from an IP. It is backed by GET /api/monitoring/logs, which requires a JWT Bearer token and is scoped to your account's hostnames.

When you want the data outside the panel, see Export logs to CSV.

Columns

Each row is one request. The endpoint returns the following fields (LogEntry):

ColumnFieldNotes
TimestamptimestampUTC, serialized with a Z suffix
HostrequestHostThe request Host
MethodrequestMethodHTTP method
URIrequestUriRequest path
StatusresponseStatusHTTP status code
SizeresponseSizeResponse size in bytes
DurationdurationIn seconds
IPclientIpClient IP address
CachecacheStatusHIT / MISS / BYPASS / EXPIRED
DevicedeviceTypeDevice class
CountrycountryCodeISO country code
User agentuserAgentFull UA string

In the panel, the table shows Timestamp, Domain, Path, Method, Status, Duration, Client IP, and User Agent. Clicking a row expands it to reveal Response Size, Device Type, Country, and the full User-Agent string.

:::note Duration is in seconds here The raw-log duration field is in seconds. When you export to CSV, the equivalent Duration_ms column is in milliseconds instead — convert accordingly. :::

Filters

The default range on this page is the last 30 days. Narrow results with these filters, which map directly to query parameters on /api/monitoring/logs:

FilterParamBehavior
SearchsearchFree-text match on request URI, client IP, or host
PropertypropertyIdRestrict to a single property
From / Tofrom, toUTC date range
Status CodestatusCodeCategory or exact code (see below)
MethodmethodHTTP method; upper-cased server-side
curl -H "Authorization: Bearer $TOKEN" \
"https://api.paradarum.com/api/monitoring/logs?from=2026-06-01T00:00:00Z&to=2026-06-10T23:59:59Z&propertyId=42&statusCode=400&method=GET&search=/images&page=1&pageSize=50"

The response is wrapped with pagination metadata:

{
"data": [],
"page": 1,
"pageSize": 50,
"totalRecords": 0,
"totalPages": 0
}

Status-code filter semantics

The statusCode filter is overloaded so you can match a whole class or a single code:

  • A value that is a multiple of 100 in the 100–599 range filters the entire category. For example, statusCode=400 matches every response where status >= 400 AND status < 500 (all 4xx).
  • Any other value is an exact match. For example, statusCode=404 matches only 404, and statusCode=503 matches only 503.
ValueMatches
400All 4xx
500All 5xx
404Only 404
503Only 503
429Only 429

The panel's Status Code dropdown offers categories (1xx–5xx) plus common specific codes such as 301, 302, 304, 401, 403, 404, 429, 502, 503, and 504.

:::tip Method is case-insensitive on input The method filter is upper-cased on the server, so get and GET behave identically. :::

Pagination

Results are paged with page (default 1) and pageSize (default 50). The panel offers page sizes of 25 / 50 / 100 / 250.

:::info Need more than a page at a time? Pagination is for browsing in the UI and via the API. To pull a large filtered set in one shot — up to the most recent 100,000 rows — use the CSV export, which ignores pagination entirely. See Export logs to CSV. :::