Models
Free reference endpointGET
/v1/modelsList current model versions and supported species counts.
Try in playgroundResponse fields
array
Required. One entry per model the API serves.
string
Required. Stable model identifier, also returned as model_id in detection responses.
string
Required. Display name.
string
Required. API version the model is served under.
string
Required. What the model does, in one sentence.
detect | filter
Required. detect returns bounding boxes with species labels; filter returns bounding boxes with coarse labels only.
taxonomy_detection | coarse_detection
Required. Shape of the labels the model produces.
string
Required. Scenes the model is tuned for.
string[]
Required. Endpoints that run this model.
integer
Required. Number of species the model can label. 0 for coarse detectors.
Status codes
200Model list returned.
401Invalid, missing, or revoked API key.
429Rate limit exceeded.
Notes
- The pipeline behind these models combines open-source models with proprietary algorithms. The open-source parts are MegaDetector, SpeciesNet and DeepFaune.
- DeepFaune is built by the DeepFaune initiative at the CNRS, and its model weights are released under the Creative Commons Attribution-ShareAlike 4.0 International licence. Reference: Rigoudy et al. 2023, The DeepFaune initiative: a collaborative effort towards the automatic identification of European fauna in camera trap images, European Journal of Wildlife Research 69:113, doi:10.1007/s10344-023-01742-7.
Examples
cURL
curl "https://api.animaldetect.com/v1/models" -H "Authorization: Bearer $ANIMAL_DETECT_API_KEY"Python
import os
import requests
response = requests.get(
"https://api.animaldetect.com/v1/models",
headers={
"Authorization": "Bearer " + os.environ["ANIMAL_DETECT_API_KEY"],
"User-Agent": "MyApp/1.0 (ops@example.com)",
},
)
response.raise_for_status()
data = response.json()Node.js / Express
const response = await fetch('https://api.animaldetect.com/v1/models', {
headers: {
Authorization: 'Bearer ' + process.env.ANIMAL_DETECT_API_KEY,
},
})
const data = await response.json()Example response
{
"models": [
{
"id": "mdv1000-speciesnet",
"name": "Detect",
"version": "v1.0",
"description": "Camera-trap optimized full detection pipeline with bounding boxes and taxonomy labels.",
"family": "detect",
"output_type": "taxonomy_detection",
"best_for": "Classical wildlife camera traps",
"public_endpoints": ["/v1/detect"],
"species_count": 2064
},
{
"id": "mdv5-speciesnet",
"name": "Detect Urban",
"version": "v1.0",
"description": "Urban-focused full detection pipeline with bounding boxes and taxonomy labels.",
"family": "detect",
"output_type": "taxonomy_detection",
"best_for": "Urban, indoor, roadside, zoo, farm, and other human-modified environments",
"public_endpoints": ["/v1/detect-urban"],
"species_count": 2064
},
{
"id": "mdv1000-redwood",
"name": "Filter",
"version": "v1.0",
"description": "Camera-trap optimized coarse detector for animal, human, and vehicle filtering.",
"family": "filter",
"output_type": "coarse_detection",
"best_for": "Classical wildlife camera traps when you want fast object-vs-empty screening",
"public_endpoints": ["/v1/filter"],
"species_count": 0
},
{
"id": "mdv5",
"name": "Filter Urban",
"version": "v1.0",
"description": "Urban-focused coarse detector for animal, human, and vehicle filtering.",
"family": "filter",
"output_type": "coarse_detection",
"best_for": "Urban, indoor, roadside, zoo, farm, and other human-modified empty-vs-object screening",
"public_endpoints": ["/v1/filter-urban"],
"species_count": 0
}
]
}