Raw Logs API QueryQuery API Logs

Query API Logs

Server-side DataTables endpoint for querying real-time CDN access logs. Supports pagination and optional filters on resource, edge PoP, HTTP method, status code, cache status, client IP, and request path.

Date range constraints: All timestamps in r must be in UTC with minute granularity (seconds always 00). Maximum supported window is 1 hour. Preset options available in the UI are: Last 15 Minutes, Last 30 Minutes, and Last 1 Hour. Windows of 2 hours, 3 hours, and 6 hours are not supported by the API.

Column definitions: The request must include all 9 DataTables column descriptors (columns[0] through columns[8]) with the data field names in this fixed order: e, timestamp, pop, clientip, verb, request, bytes, response, cache. Each column must also carry name (empty string), searchable ('true'), orderable ('false'), search[value] (empty string), and search[regex] ('false'). The global search[value] and search[regex] fields must also be present.

curl -X POST "https://api.5centscdn.com/v2/account/logs/api" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -H "X-API-Key: YOUR_API_KEY" \
  --data-urlencode draw=1 \
  --data-urlencode columns[0][data]=e \
  --data-urlencode columns[0][name]= \
  --data-urlencode columns[0][searchable]=true \
  --data-urlencode columns[0][orderable]=false \
  --data-urlencode columns[0][search][value]= \
  --data-urlencode columns[0][search][regex]=false \
  --data-urlencode columns[1][data]=timestamp \
  --data-urlencode columns[1][name]= \
  --data-urlencode columns[1][searchable]=true \
  --data-urlencode columns[1][orderable]=false \
  --data-urlencode columns[1][search][value]= \
  --data-urlencode columns[1][search][regex]=false \
  --data-urlencode columns[2][data]=pop \
  --data-urlencode columns[2][name]= \
  --data-urlencode columns[2][searchable]=true \
  --data-urlencode columns[2][orderable]=false \
  --data-urlencode columns[2][search][value]= \
  --data-urlencode columns[2][search][regex]=false \
  --data-urlencode columns[3][data]=clientip \
  --data-urlencode columns[3][name]= \
  --data-urlencode columns[3][searchable]=true \
  --data-urlencode columns[3][orderable]=false \
  --data-urlencode columns[3][search][value]= \
  --data-urlencode columns[3][search][regex]=false \
  --data-urlencode columns[4][data]=verb \
  --data-urlencode columns[4][name]= \
  --data-urlencode columns[4][searchable]=true \
  --data-urlencode columns[4][orderable]=false \
  --data-urlencode columns[4][search][value]= \
  --data-urlencode columns[4][search][regex]=false \
  --data-urlencode columns[5][data]=request \
  --data-urlencode columns[5][name]= \
  --data-urlencode columns[5][searchable]=true \
  --data-urlencode columns[5][orderable]=false \
  --data-urlencode columns[5][search][value]= \
  --data-urlencode columns[5][search][regex]=false \
  --data-urlencode columns[6][data]=bytes \
  --data-urlencode columns[6][name]= \
  --data-urlencode columns[6][searchable]=true \
  --data-urlencode columns[6][orderable]=false \
  --data-urlencode columns[6][search][value]= \
  --data-urlencode columns[6][search][regex]=false \
  --data-urlencode columns[7][data]=response \
  --data-urlencode columns[7][name]= \
  --data-urlencode columns[7][searchable]=true \
  --data-urlencode columns[7][orderable]=false \
  --data-urlencode columns[7][search][value]= \
  --data-urlencode columns[7][search][regex]=false \
  --data-urlencode columns[8][data]=cache \
  --data-urlencode columns[8][name]= \
  --data-urlencode columns[8][searchable]=true \
  --data-urlencode columns[8][orderable]=false \
  --data-urlencode columns[8][search][value]= \
  --data-urlencode columns[8][search][regex]=false \
  --data-urlencode start=0 \
  --data-urlencode length=25 \
  --data-urlencode search[value]= \
  --data-urlencode search[regex]=false \
  --data-urlencode r=2026-01-20 11:00:00 - 2026-01-20 12:00:00 \
  --data-urlencode resources[]=["12345"] \
  --data-urlencode verbs[]=["GET"]
{
  "draw": 1,
  "recordsTotal": 5000,
  "recordsFiltered": 1250,
  "data": [
    {
      "DT_RowId": "row_42",
      "e": "evt_abc123",
      "timestamp": "2026-01-20 12:00:00",
      "pop": "AMS-01",
      "clientip": "203.0.113.1",
      "verb": "GET",
      "request": "/video/sample.mp4",
      "bytes": 102400,
      "response": 200,
      "cache": "HIT",
      "useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
      "httpversion": 1.1,
      "os_full": "Windows 10",
      "device": "Desktop",
      "referrer": "https://example.com/",
      "browser_full": "Chrome 120",
      "geoip": {
        "country_name": "India",
        "continent_code": "AS",
        "asn_org": "Jio Platforms Limited",
        "asn_number": "AS55836"
      },
      "sort": 1705737600000
    }
  ]
}
POST
/account/logs/api
POST
Base URLstring

Target server for requests. Edit to use your own host.

API Key (header: X-API-Key)
X-API-Keystring
Required

API key (sent in header)

Content-Typestring
Required

The media type of the request body

Options: application/x-www-form-urlencoded
drawstring
Required

DataTables draw sequence counter. Echoed back in the response so the client can match async responses to requests and discard out-of-order results.

columns[0][data]string
Required

Data field name for column 0. Must be 'e' (expand/collapse toggle).

Options: e
columns[1][data]string
Required

Data field name for column 1. Must be 'timestamp'.

Options: timestamp
columns[2][data]string
Required

Data field name for column 2. Must be 'pop'.

Options: pop
columns[3][data]string
Required

Data field name for column 3. Must be 'clientip'.

Options: clientip
columns[4][data]string
Required

Data field name for column 4. Must be 'verb'.

Options: verb
columns[5][data]string
Required

Data field name for column 5. Must be 'request'.

Options: request
columns[6][data]string
Required

Data field name for column 6. Must be 'bytes'.

Options: bytes
columns[7][data]string
Required

Data field name for column 7. Must be 'response'.

Options: response
columns[8][data]string
Required

Data field name for column 8. Must be 'cache'.

Options: cache
columns[i][name]string

Column name. Always empty string for all 9 columns.

columns[i][searchable]string

Whether the column is searchable. Always 'true'.

Options: true
columns[i][orderable]string

Whether the column is orderable. Always 'false'.

Options: false
columns[i][search][value]string

Per-column search value. Always empty string.

columns[i][search][regex]string

Whether the per-column search is a regex. Always 'false'.

Options: false
startstring
Required

Zero-based record offset for pagination.

lengthstring
Required

Number of records per page. The dashboard UI uses 25.

search[value]string
Required

Global search value. Always empty string.

search[regex]string
Required

Whether the global search uses a regex. Always 'false'.

Options: false
rstring
Required

Date range filter in UTC with minute granularity: "YYYY-MM-DD HH:mm:00 - YYYY-MM-DD HH:mm:00". Maximum window is 1 hour. Timestamps are converted from local time to UTC by the client before sending.

resources[]array

Optional. Filter to the specified resource IDs. When omitted, all resources assigned to the API log tab are queried.

pops[]array

Optional. Filter to requests served by the specified edge PoP codes.

verbs[]array

Optional. Filter to the specified HTTP methods.

responses[]array

Optional. Filter to the specified HTTP response status codes. Accepts values 100–599.

caches[]array

Optional. Filter to the specified CDN cache statuses (e.g. HIT, MISS, BYPASS).

clientips[]array

Optional. Filter to requests from the specified client IPv4 addresses.

requests[]array

Optional. Filter to requests matching the specified path patterns.

Request Preview
Response

Response will appear here after sending the request

Authentication

header
X-API-Keystring
Required

API Key for authentication. Provide your API key in the header.

Body

application/x-www-form-urlencoded
drawstring
Required

DataTables draw sequence counter. Echoed back in the response so the client can match async responses to requests and discard out-of-order results.

Example:
1
columns[0][data]string
Required

Data field name for column 0. Must be 'e' (expand/collapse toggle).

Allowed values:e
columns[1][data]string
Required

Data field name for column 1. Must be 'timestamp'.

Allowed values:timestamp
columns[2][data]string
Required

Data field name for column 2. Must be 'pop'.

Allowed values:pop
columns[3][data]string
Required

Data field name for column 3. Must be 'clientip'.

Allowed values:clientip
columns[4][data]string
Required

Data field name for column 4. Must be 'verb'.

Allowed values:verb
columns[5][data]string
Required

Data field name for column 5. Must be 'request'.

Allowed values:request
columns[6][data]string
Required

Data field name for column 6. Must be 'bytes'.

Allowed values:bytes
columns[7][data]string
Required

Data field name for column 7. Must be 'response'.

Allowed values:response
columns[8][data]string
Required

Data field name for column 8. Must be 'cache'.

Allowed values:cache
columns[i][name]string

Column name. Always empty string for all 9 columns.

Example:
columns[i][searchable]string

Whether the column is searchable. Always 'true'.

Allowed values:true
columns[i][orderable]string

Whether the column is orderable. Always 'false'.

Allowed values:false
columns[i][search][value]string

Per-column search value. Always empty string.

Example:
columns[i][search][regex]string

Whether the per-column search is a regex. Always 'false'.

Allowed values:false
startstring
Required

Zero-based record offset for pagination.

Example:
0
lengthstring
Required

Number of records per page. The dashboard UI uses 25.

Example:
25
search[value]string
Required

Global search value. Always empty string.

Example:
search[regex]string
Required

Whether the global search uses a regex. Always 'false'.

Allowed values:false
rstring
Required

Date range filter in UTC with minute granularity: "YYYY-MM-DD HH:mm:00 - YYYY-MM-DD HH:mm:00". Maximum window is 1 hour. Timestamps are converted from local time to UTC by the client before sending.

Example:
2026-01-20 11:00:00 - 2026-01-20 12:00:00
resources[]array

Optional. Filter to the specified resource IDs. When omitted, all resources assigned to the API log tab are queried.

Example:
["12345"]
pops[]array

Optional. Filter to requests served by the specified edge PoP codes.

Example:
["AMS-01"]
verbs[]array

Optional. Filter to the specified HTTP methods.

Example:
["GET","POST"]
responses[]array

Optional. Filter to the specified HTTP response status codes. Accepts values 100–599.

Example:
["200","404"]
caches[]array

Optional. Filter to the specified CDN cache statuses (e.g. HIT, MISS, BYPASS).

Example:
["HIT"]
clientips[]array

Optional. Filter to requests from the specified client IPv4 addresses.

Example:
["203.0.113.1"]
requests[]array

Optional. Filter to requests matching the specified path patterns.

Example:
["/video/sample.mp4"]

Responses

drawinteger

Echo of the draw counter from the request. Used by DataTables to correlate async responses with the correct request.

recordsTotalinteger

Total number of records in the unfiltered dataset.

recordsFilteredinteger

Total number of records matching the active filters. Used by DataTables to calculate total page count.

dataarray

Access log entries for the current page.