Skip to content

Search recorded video

Use a service token with searches:execute and searches:read, licensed search features, and access to cameras with indexed video. Set the time interval to a period with video available on your server.

Save the following as search.json, replacing the fictional camera ID and dates.

{
"kind": "naturalLanguage",
"text": "a person carrying a blue backpack",
"streamIds": ["8c5fd3a7-32e0-43b9-977d-a2554174be82"],
"startTime": "2026-11-05T15:00:00Z",
"endTime": "2026-11-05T16:00:00Z",
"limit": 50
}
Terminal window
curl --fail-with-body --silent --show-error \
--header "Authorization: Bearer ${EOI_SERVICE_TOKEN}" \
--header "Content-Type: application/json" \
--data-binary @search.json \
"${EOI_API_BASE_URL}/searches"

Create search accepts the request with 202 and returns a search job. Store its id, then call Get search to inspect state, progress, results, and any problem.

Use a bounded polling interval and respect server retry guidance. Results may be available while the job is running or partial. Terminal states include completed, cancelled, failed, and resourceExhausted. A partial result requires inspecting the job’s current state and problem information before treating coverage as complete.

The request discriminator also supports reference similarity, face, and PPE search. Choose the matching schema in the recorded-video search reference. Use the PPE coverage operation when deciding whether an interval contains the required PPE indexing.

Natural-language match scores express relative relevance. Review representative results when setting expectations for your application.

Use Cancel search when you intend to cancel a job. For ongoing detection over incoming video, use the separate live-search resource and inspect its match and coverage-gap resources.

Image preview