● Proof
Events
The account event log. Every signed webhook envelope, listed and replayable by id.
| GET | /v1/events | List events |
| GET | /v1/events/{event_id} | Retrieve an event |
| GET | /v1/events/verify-chain | Verify the event chain |
GET/v1/events
List events
Lists events emitted on your account, most recent first. Each event mirrors the signed webhook envelope.
scope · events:read
§ Query parameters
| Parameter | Type |
|---|---|
| limit optional · query | integer |
| starting_after optional · query | string |
| matter_id optional · query | string |
# sandbox: full surface, no production data curl https://api.kineticanvil.com/v1/events \ -H "Authorization: Bearer kx_test_xxxxxxxxxxxxxxxx" \ -H "Anvil-Version: 2026-07-05"
import requests
resp = requests.get(
"https://api.kineticanvil.com/v1/events",
headers={
"Authorization": "Bearer kx_test_xxxxxxxxxxxxxxxx",
"Anvil-Version": "2026-07-05",
},
)
print(resp.json())const resp = await fetch("https://api.kineticanvil.com/v1/events", { method: "GET", headers: { "Authorization": "Bearer kx_test_xxxxxxxxxxxxxxxx", "Anvil-Version": "2026-07-05", }, }); console.log(await resp.json());
● 200Anvil-Request-Id: req_01J…
200 Response
{
"object": "list",
"data": [
{
"id": "string",
"type": "string",
"created": "2026-07-05T00:00:00Z",
"livemode": true,
"data": {}
}
],
"has_more": true
}GET/v1/events/{event_id}
Retrieve an event
Retrieves a single event by id.
scope · events:read
§ Path parameters
| Parameter | Type |
|---|---|
| event_id required · path | string |
# sandbox: full surface, no production data curl https://api.kineticanvil.com/v1/events/{event_id} \ -H "Authorization: Bearer kx_test_xxxxxxxxxxxxxxxx" \ -H "Anvil-Version: 2026-07-05"
import requests
resp = requests.get(
"https://api.kineticanvil.com/v1/events/{event_id}",
headers={
"Authorization": "Bearer kx_test_xxxxxxxxxxxxxxxx",
"Anvil-Version": "2026-07-05",
},
)
print(resp.json())const resp = await fetch("https://api.kineticanvil.com/v1/events/{event_id}", { method: "GET", headers: { "Authorization": "Bearer kx_test_xxxxxxxxxxxxxxxx", "Anvil-Version": "2026-07-05", }, }); console.log(await resp.json());
● 200Anvil-Request-Id: req_01J…
200 Response
{
"id": "string",
"type": "string",
"created": "2026-07-05T00:00:00Z",
"livemode": true,
"data": {}
}GET/v1/events/verify-chain
Verify the event chain
Verify the tenant's append-only event hash chain. Every event links to its predecessor with a sha256 chain; this walks the log and reports the first break, if any.
scope · events:read
# sandbox: full surface, no production data curl https://api.kineticanvil.com/v1/events/verify-chain \ -H "Authorization: Bearer kx_test_xxxxxxxxxxxxxxxx" \ -H "Anvil-Version: 2026-07-05"
import requests
resp = requests.get(
"https://api.kineticanvil.com/v1/events/verify-chain",
headers={
"Authorization": "Bearer kx_test_xxxxxxxxxxxxxxxx",
"Anvil-Version": "2026-07-05",
},
)
print(resp.json())const resp = await fetch("https://api.kineticanvil.com/v1/events/verify-chain", { method: "GET", headers: { "Authorization": "Bearer kx_test_xxxxxxxxxxxxxxxx", "Anvil-Version": "2026-07-05", }, }); console.log(await resp.json());
● 200Anvil-Request-Id: req_01J…
200 Response
{
"object": "chain_verification",
"valid": true,
"events_checked": 0,
"first_break": "string",
"verified_at": "2026-07-05T00:00:00Z"
}