Filter
1 credit / requestPOST /v1/filterQuickly separate empty camera-trap images from images with an animal, human, or vehicle. Returns bounding boxes and coarse labels only.
Processing images regularly or at large scale?
Use this synchronous endpoint for first tests, debugging, and small workflows. For steady pipelines, larger files, or bursty camera-fleet uploads, approved customers can use Async Image Processing.
Open Async Image ProcessingExamples
const form = new FormData()
form.append('image', imageFile)
form.append('threshold', '0.2')
form.append('metadata', 'true')
const response = await fetch('https://api.animaldetect.com/v1/filter', {
method: 'POST',
headers: {
Authorization: 'Bearer ' + process.env.ANIMAL_DETECT_API_KEY,
},
body: form,
})
const data = await response.json(){
"id": "8f3770e5-d7ad-4067-9f31-70b16f4a6262",
"expires_at": "2026-03-12T09:44:20.954Z",
"detections": [
{
"id": 0,
"bbox": [0.22, 0.18, 0.41, 0.53],
"score": 0.97,
"label": "animal",
"category": "animal"
}
],
"metadata": {
"image_width": 4000,
"image_height": 3000,
"file_size": 2456789
},
"info": {
"processing_time_ms": 455,
"model_version": "mdv1000-redwood",
"model_id": "mdv1000-redwood",
"threshold_applied": 0.2
}
}Parameters
Required
Image data. Upload request body limit is 20MB; raw image budget is 10MB.
Optional
Optional geofencing hint (CCA2/CCA3/full country name).
Confidence threshold between 0.01 and 0.99. Default: 0.2.
Set to `true` to include available image metadata in the response.
Request Notes
Send multipart/form-data for files or JSON with a base64 image. Limits: 20MB request body and 10MB raw image.
Status Codes
Notes
- Best for: camera-trap empty-vs-object screening.
- `metadata=true` includes metadata only for fields found in the source image.
- Returns only coarse categories: `animal`, `human`, `vehicle`.