Schedules & Compliance
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.
Schedules & Compliance
Daily schedules in the site's local time — such as a digest of what happened at the site — and compliance checks: time-of-day obligations from your playbook ("shop open by 09:00") that are judged against the footage and recorded as pass, fail or inconclusive.
GET/api/v1/projects/:projectId/schedulesList schedules
List schedules
Query param: kind.
POST/api/v1/projects/:projectId/schedulesCreate a schedule
Create a schedule
spec is { "type": "daily", "at": "HH:MM", "days"?: [0-6] } (0 = Sunday). timezone defaults to the project's site timezone. A digest schedule takes payload.template: site or compliance, and is delivered to the project's notification channels. catch_up: run_once_late or skip after a missed time. Returns 201.
{
"kind": "digest",
"spec": { "type": "daily", "at": "18:30", "days": [0, 1, 2, 3, 4] },
"timezone": "Asia/Jerusalem",
"payload": { "template": "site" }
}PATCH/api/v1/projects/:projectId/schedules/:scheduleIdUpdate a schedule
Update a schedule
Change spec, timezone, payload, enabled or catch_up.
DELETE/api/v1/projects/:projectId/schedules/:scheduleIdDelete a schedule
Delete a schedule
Send the request to https://platform.endlessai.com/api/v1/projects/:projectId/schedules/:scheduleId using your project key or user token.
POST/api/v1/projects/:projectId/schedules/:scheduleId/runRun a schedule now
Run a schedule now
An extra run; the schedule's next regular time is unchanged.
POST/api/v1/projects/:projectId/compliance/compileBuild compliance checks from the playbook
Build compliance checks from the playbook
Reads the project's compiled playbook and creates one scheduled check per time-of-day obligation, replacing the previous set. Rules it cannot pin to a time become open questions on the playbook. Optional timezone; otherwise the site timezone is used. Takes seconds and returns the plan.
GET/api/v1/projects/:projectId/compliance/planGet the compliance plan
Get the compliance plan
{
"data": {
"status": "compiled",
"compiled_at": "2026-10-01T07:00:00.000Z",
"timezone": "Asia/Jerusalem",
"check_count": 3,
"check_ids": ["CHECK_ID_1", "CHECK_ID_2", "CHECK_ID_3"],
"open_question_ids": [],
"compliance_applied": "full"
},
"meta": {}
}GET/api/v1/projects/:projectId/compliance/checksList compliance checks
List compliance checks
Query param: status (active, paused, archived).
PATCH/api/v1/projects/:projectId/compliance/checks/:checkIdPause or resume a compliance check
Pause or resume a compliance check
{ "status": "paused" }GET/api/v1/projects/:projectId/compliance/verdictsList compliance verdicts
List compliance verdicts
Query params: check_id, limit.
{
"data": [
{
"id": "VERDICT_ID",
"check_id": "CHECK_ID",
"window_start": "2026-10-01T05:30:00.000Z",
"window_end": "2026-10-01T06:30:00.000Z",
"verdict": "fail",
"reason": "The shutters were still down at 09:20.",
"alert_id": "ALERT_ID",
"created_at": "2026-10-01T06:31:04.000Z"
}
],
"meta": { "total": 1, "returned": 1, "hasMore": false }
}