Skip to content

Query recording storage

POST /api/v1/recording-storage/inventory

Filter authorized recordings, sort the complete matching inventory, then return a page. Protection sorts by active protection expiration; unprotected recordings have no expiration. Totals cover the complete matching inventory regardless of pagination or sort order.

Authentication options declared in the contract include user cookie session or bearer service token.

The shared authentication policy requires media:read. Resource access also depends on the caller’s role, organization, camera grants, and the operation’s validation.

Authentication and permissions explains tokens, cookies, CSRF, and workspace context.

Name Location Required Type Description and constraints
offset query No integer minimum 0. default 0
limit query No integer minimum 1. maximum 500. default 100
sortBy query No string values "camera", "kind", "startTime", "server", "allocatedBytes", "protection". default "startTime"
sortDirection query No string values "asc", "desc". default "desc"
X-EyesOnIt-Session-Id header No string (uuid) The sessionId the caller expects. Required when switching workspaces and for cookie requests after workspace rotation. A mismatched value returns 409 with X-EyesOnIt-Workspace-Changed: 1. Bootstrap with getCurrentPrincipal; never replay a mutation automatically after changing context. Bearer clients do not use this header.
X-CSRF-Token header No string Required for unsafe requests authenticated by CookieSession; ignored for bearer clients. minimum length 32. maximum length 256

Required.

application/json — StorageFilter.

Field Type Required Description and constraints
cameraIds array of string No maximum items 1000
nodeIds array of string No maximum items 100
kinds array of string No maximum items 4
startTime string (date-time) or null No
endTime string (date-time) or null No
protection string No values "all", "protected", "unprotected". default "all"
itemIds array of string No maximum items 50000
includeProtected boolean No Explicit administrator override for cleanup previews only. default false

Set the connection variables described in Get started. Replace each additional EOI_… variable with the parameter value for this request. Prepare the body file using the request schema above. This template sends the request when run.

Terminal window
curl --fail-with-body --silent --show-error \
--request POST \
--header "Authorization: Bearer ${EOI_SERVICE_TOKEN}" \
--header "Content-Type: application/json" \
--data-binary @request.json \
"${EOI_API_BASE_URL}/recording-storage/inventory"

The table records responses declared by the OpenAPI contract. See Errors and status codes for the runtime error envelope and shared failures.

Status Description Media type Body
200 Successful Response application/json StorageInventoryResponse
422 Validation Error application/json HTTPValidationError

Operation identifier queryRecordingStorage. Browse Recording storage and retention.

Image preview