hosting
POST /v1/sites/{siteId}/ide-events
Record something the customer did in the site's web editor.
Authentication
This endpoint is public. It takes no credential and no organisation — it is what our own marketing site and AI answer engines read.
This endpoint takes no organisation id. Your key already identifies the organisation it belongs to, and the response is scoped to it.
Try it
Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.
curl -X POST https://api.zinndigital.com/v1/sites/{siteId}/ide-events \
-H "Content-Type: application/json" \
-d '{ "event": <string<file_saved, ai_applied, file_restored, terminal_opened>> }'Signed in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console
Details
Appends one row to the site's activity log for an action taken in the editor — a file saved, an AI suggestion applied, an earlier version restored, a terminal opened. Editing the files of a live website is a privileged action and is logged as one. The acting person is taken from the **grant**, which the engine signed when the editor was opened, and never from the request: the caller runs inside the cage being audited, so anything it claimed about identity would be a claim by its own subject. The event name is mapped to a closed set of audit actions for the same reason. **This records what the editor did.** A customer with a terminal can change their own files without it, so it is an accountability trail for actions taken through our tool rather than a filesystem-level record. The filesystem-level answer is the site backup.
Parameters
| Name | Type | Required | What it is |
|---|---|---|---|
siteId (path) | Uuid | Yes | Site ID (UUIDv7). |
Request body
| Name | Type | Required | What it is |
|---|---|---|---|
event | string<file_saved, ai_applied, file_restored, terminal_opened> | Yes | A closed set. The caller runs inside the cage being audited, so it names an event and the engine chooses the audit action — a log whose rows can be authored by their own subject… |
path | string | No | The file, relative to the site. Truncated to 512 characters. |
bytes_before | integer | No | Size of the file before the write, so a truncation is visible in the log. |
bytes_after | integer | No | — |
version | string | No | Which kept version was restored, for a `file_restored` event. |
Response
| Name | Type | Required | What it is |
|---|---|---|---|
recorded | boolean | Yes | — |
Errors this endpoint can return
404 · 422