Models

Free reference endpoint
GET/v1/models

List current model versions and supported species counts.

Try in playground

Response 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
    }
  ]
}