Skip to content

Submitting Video

This guide covers every way to get a video into Gaard Classify: the manual uploader in the web app, the classify API for automated pipelines, and re-running a video that is already stored.

MethodBest forMetadata support
Web app uploaderAd-hoc checks, spot testing, a handful of clipsNo: use the API to attach metadata
Classify APICamera integrations, batch pipelines, anything automatedYes: metadata.json
Re-classifyRe-running a stored video after a configuration changeInherits the original submission

The uploader is a three-step flow: select files, upload, done. It accepts several files at once and shows per-file progress.

  1. Open the Upload view in the web app.

  2. Drag video files onto the drop zone, or select Open File Dialog and pick them from your machine. Each selected file appears in a list with its name and size.

  3. Select Upload and classify. Progress is shown as a percentage next to each file.

  4. When every file reaches 100%, you see All video files have been sent for classification!. Select Upload again to submit more, or open the review workspace to work through the results.

Automated integrations send video to POST /api/classify as a multipart/form-data request. The video is uploaded as a form field named video: not as a JSON body.

terminal
curl -X POST https://vision.gaard.ai/api/classify \
-H "Authorization: Bearer $API_KEY" \

The full endpoint reference (every parameter, response shape, and related endpoint) lives in Endpoints. You need an API token to authenticate; see API Tokens.

The sync query parameter decides whether the request waits for the result.

ModeRequestResponseUse it when
Asynchronous (default)POST /api/classifyAn id and an accepted_at timestamp: poll for the result later, or receive it by webhookThroughput matters and you process results out of band
SynchronousPOST /api/classify?sync=trueThe full classification result in the response bodyYou need the verdict inline in a single call

The asynchronous response returns immediately:

{
"id": "66436fc66d24ab9cf81140eb",
"accepted_at": "2024-05-14T16:05:58.444Z"
}

The id is the classify_id used by every other endpoint: retrieve the result with GET /api/result/<classify_id>.

A metadata.json file lets you tag a submission with the site and camera it came from, so results are attributable in the review workspace and can be filtered by site and camera. All fields are optional.

{
"site_id": "134188",
"camera_id": "VI01"
}

Send it as a second form field named metadata:

terminal
curl -X POST https://vision.gaard.ai/api/classify \
-H "Authorization: Bearer $API_KEY" \

The full field list and fallback behaviour are documented in Metadata.

When you change a threshold or add an exclusion zone, you often want to see how an existing result would change: without re-uploading the file. Re-classify runs the stored video through classification again.

  1. In the review workspace, open a classification to bring up its detail view.

  2. Select Reclassify. The button changes to Sent while the video is re-processed, and the view refreshes to the new result.

Re-classifying reuses the original video and metadata, so the new result is directly comparable to the old one.