GET
/v1/service/@id/waf/zones/@zone/eventsList a website's events
Newest events first. Query: action, from, to (RFC 3339), cursor, limit; meta.next_cursor gives the next page.
API v1 · Updated 2026-10-21View .md
Call it through the gateway https://api.tino.vn/v1 with a token that has the waf:read scope; see Calling the Tino API.
Authentication
Send the token in the header Authorization:
Authorization: Bearer <token>
Tokens that can call it: app tokens (tinoat_, Sign in with Tino) or personal API tokens (tinopat_).
Scopes
waf:read
Parameters
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | int | Required | Service ID |
zone | string | Required | Website ID (UUID) on TinoWAF |
Query
| Name | Type | Required | Description |
|---|---|---|---|
action | string | Optional | Only events with this action: `block`, `challenge`, `rate_limited` or `log`. |
from | string | Optional | Start time, RFC 3339 (e.g. `2026-10-27T00:00:00+07:00`). |
to | string | Optional | End time, RFC 3339. |
cursor | string | Optional | `meta.next_cursor` of the previous page. |
limit | integer | Optional | Events per page. |
Response
No live sample: the route changes real data or the test account has no data for it. The answer is a JSON object; errors follow the common shape in Calling the Tino API.
Error codes
| Error code | Description |
|---|---|
401 · invalid_token | The token is wrong, expired or revoked. |
403 · insufficient_scope | The token lacks the waf:read scope. |
403 · ip_not_allowed | A personal API token called from an IP outside its allow-list. |
Business errors of a route usually come as HTTP 200 with {"error": ["<code>"]}; see common error codes.