Loading...
Animal Detect logo

Scan Image Text URL

Consumes credits
POST /api/v1/scan-image-text-url

Use this endpoint to extract camera-trap style text metadata from a public image URL without uploading a file.

Try in Playground

Required Parameters

  • url (string) Public image URL.

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

All Possible Response Fields

  • raw_text (string) Required. Full raw text extracted from the image before structured parsing.
  • date (string (YYYY-MM-DD)) Optional. Detected and normalized date from the image overlay.
  • time (string (HH:MM:SS, 24h)) Optional. Detected and normalized time from the image overlay.
  • temperature ({ value: number, unit: "C" | "F" }) Optional. Primary detected temperature value.
  • temperature_alt ({ value: number, unit: "C" | "F" }) Optional. Secondary detected temperature in alternate unit when available.
  • humidity ({ value: number, unit: "%" }) Optional. Detected relative humidity.
  • pressure ({ value: number, unit: string }) Optional. Detected barometric pressure and its unit.
  • moon_phase (string) Optional. Detected moon phase (normalized snake_case label).
  • camera_brand (string) Optional. Detected camera brand based on known camera patterns.
  • camera_model (string) Optional. Detected camera model based on known camera patterns.
  • burst_sequence ({ current: number, total: number }) Optional. Detected burst position such as frame 2 of 3.

Status Codes

200OCR and metadata extraction completed.
400Validation error or blocked URL target.
401Invalid, missing, or revoked API key.
402Quota exceeded.
429Rate limit exceeded.
500Internal or upstream OCR service error.
  • Fields not found during extraction are omitted from the response.
  • Parser is optimized for camera-trap overlays (date/time/environment/camera/burst). For arbitrary text, use `raw_text`.
Node.js / Express
const response = await fetch('https://www.animaldetect.com/api/v1/scan-image-text-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',
  }),
})

const data = await response.json()

Example Response

JSON
{
  "raw_text": "BUSHNELL 2026-02-12 09:17 PM 59F",
  "date": "2026-02-12",
  "time": "21:17:00",
  "temperature": { "value": 59, "unit": "F" },
  "camera_brand": "bushnell"
}