Batch Filter
1 credit / imagePOST /api/v1/batch-filterBest for classical wildlife camera traps when you want to quickly separate empty images from images that contain an animal, human, or vehicle.
Try in PlaygroundRequired Parameters
images(file[] | base64[]) Array of 1-10 images. Practical combined raw limit is about 1.1MB because Vertex enforces a 1.5MB encoded request cap.
Optional Parameters
country(string) Optional shared geofencing hint (CCA2/CCA3/full country name).threshold(number) Confidence threshold between 0.01 and 0.99. Default: 0.2.
Supports multipart/form-data (`images` repeated) and application/json with base64 string array. This Vertex-backed route enforces the upstream 1.5MB request cap, so keep combined raw image payloads around 1.1MB or less.
Status Codes
200Batch filtering completed.
400Validation error (empty list, too many images, invalid threshold).
413Batch payload too large for the Vertex-backed request limit.
401Invalid, missing, or revoked API key.
402Credit limit exceeded.
429Rate limit exceeded.
503Upstream Vertex service error.
Node.js / Express
const form = new FormData()
form.append('images', firstFile)
form.append('images', secondFile)
form.append('threshold', '0.2')
const response = await fetch('https://www.animaldetect.com/api/v1/batch-filter', {
method: 'POST',
headers: {
Authorization: 'Bearer ' + process.env.ANIMAL_DETECT_API_KEY,
},
body: form,
})
const data = await response.json()Example Response
JSON
{
"id": "92d6a2f0-c143-4f91-b4be-5b51bf5d7d21",
"expires_at": "2026-03-12T09:44:20.954Z",
"results": [
{
"index": 0,
"filename": "cam-1.jpg",
"detections": [],
"info": {
"processing_time_ms": 330,
"model_version": "mdv1000-redwood",
"model_id": "mdv1000-redwood",
"threshold_applied": 0.2
}
}
],
"info": {
"total_processed": 1,
"total_time_ms": 330,
"model_version": "mdv1000-redwood",
"model_id": "mdv1000-redwood",
"threshold_applied": 0.2
}
}