Loading...
Animal Detect logo

Detect URL

Consumes credits
POST /api/v1/detect-url

Fetches an image server-side (with SSRF protections), then runs the same detection pipeline as /detect.

Try in Playground

Required Parameters

  • url (string) Public image URL.

Optional Parameters

  • country (string) Optional geofencing hint (CCA2/CCA3/full country name).
  • threshold (number) Confidence threshold between 0.01 and 0.99. Default: 0.2.

Request body is JSON only. Private IPs and internal targets are blocked by URL security checks.

Status Codes

200Detection completed.
400Validation error or blocked URL target.
401Invalid, missing, or revoked API key.
402Quota exceeded.
429Rate limit exceeded.
500Internal or upstream service error.
Node.js / Express
const response = await fetch('https://www.animaldetect.com/api/v1/detect-url', {
  method: 'POST',
  headers: {
    Authorization: 'Bearer ' + process.env.ANIMAL_DETECT_API_KEY,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    url: 'https://example.com/camera-trap.jpg',
    country: 'USA',
    threshold: 0.2,
  }),
})

const data = await response.json()

Example Response

JSON
{
  "id": "70dc39be-e013-4ea5-bbc5-a3832f7fc310",
  "expires_at": "2026-03-12T09:44:20.954Z",
  "annotations": [],
  "info": {
    "processing_time_ms": 884,
    "model_version": "v1.0",
    "country_processed": "USA",
    "threshold_applied": 0.2,
    "source_url": "https://example.com/camera-trap.jpg"
  }
}