Reports
Manage your videos, ask questions, and build applications with the Platform API. Explore the operations below for request details, responses, and examples.
No matching documentation. Try a different search.
Reports
Written reports with evidence frames: an incident report for one alert, or a period report over a time range or a video. Reports are generated in the background and can be printed or shared by link.
GET/api/v1/projects/:projectId/reportsList reports
List reports
Newest first. Query params: alert_id, limit (default 50, max 200).
POST/api/v1/projects/:projectId/reportsGenerate a report
Generate a report
type is incident (default, needs alert_id) or period (needs from / to or video_id). Returns 202 with the report in status queued; poll it until ready or failed. Generating a report spends the project's tokens; 402 means the project's budget is stopped.
curl -X POST https://platform.endlessai.com/api/v1/projects/PROJECT_ID/reports \
-H "X-Api-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{ "type": "incident", "alert_id": "ALERT_ID" }'import time
import requests
headers = {"X-Api-Key": API_KEY}
report = requests.post(
f"{BASE}/projects/{PROJECT_ID}/reports",
headers=headers,
json={"type": "incident", "alert_id": ALERT_ID},
).json()
while report["status"] in ("queued", "generating"):
time.sleep(5)
report = requests.get(
f"{BASE}/projects/{PROJECT_ID}/reports/{report['id']}",
headers=headers,
).json()
print(report["status"], report.get("title"))const res = await fetch(
`${BASE}/projects/${projectId}/reports`,
{
method: "POST",
headers: { "X-Api-Key": API_KEY, "Content-Type": "application/json" },
body: JSON.stringify({ type: "incident", alert_id: alertId })
}
);
const report = await res.json(); // { id, status: "queued", ... }GET/api/v1/projects/:projectId/reports/:reportIdGet a report
Get a report
{
"id": "REPORT_ID",
"type": "incident",
"status": "ready",
"alert_id": "ALERT_ID",
"video_id": "VIDEO_ID",
"title": "Unattended bag near the main entrance",
"content": { "...": "the report's sections" },
"created_at": "2026-10-01T09:14:03.000Z"
}GET/api/v1/projects/:projectId/reports/:reportId/viewView a report as a printable page
View a report as a printable page
Returns an HTML page. Answers 409 while the report is not ready yet.
POST/api/v1/projects/:projectId/reports/:reportId/shareCreate a share link for a report
Create a share link for a report
Anyone with the link can open the report without signing in. Optional ttl_days (1–365, default 30; null = never expires). The token is shown only in this response.
{
"id": "SHARE_ID",
"token": "SHARE_TOKEN",
"url": "https://platform.endlessai.com/share/SHARE_TOKEN",
"expires_at": "2026-10-31T09:20:00.000Z",
"resource_type": "report",
"resource_id": "REPORT_ID"
}DELETE/api/v1/projects/:projectId/reports/:reportIdDelete a report
Delete a report
Send the request to https://platform.endlessai.com/api/v1/projects/:projectId/reports/:reportId using your project key or user token.