Loading...
Animal Detect logo

Scan Image Text

1 credit / request
POST /api/v1/scan-image-text

Use this endpoint to extract camera-trap style text metadata from an uploaded image and receive a structured response. OCR endpoints are available on Core and higher plans in the normal API.

Try in Playground

Required Parameters

  • image (file | base64 string) Image data (5MB max).

Supports multipart/form-data (recommended for files) and application/json with base64 image.

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 (bad payload/image/base64).
401Invalid, missing, or revoked API key.
403Paid plan required in the normal API.
402Credit limit exceeded.
413File too large.
429Rate limit exceeded.
500Unexpected internal server error.
503OCR provider temporarily unavailable.
  • 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`.
  • Public API keys can still test OCR inside the docs playground only; that exception does not apply to direct `/api/v1` calls.
Node.js / Express
const form = new FormData()
form.append('image', imageFile)

const response = await fetch('https://www.animaldetect.com/api/v1/scan-image-text', {
  method: 'POST',
  headers: {
    Authorization: 'Bearer ' + process.env.ANIMAL_DETECT_API_KEY,
  },
  body: form,
})

const data = await response.json()

Example Response

JSON
{
  "raw_text": "CAM01 2026/02/12 21:34:10 15C 72%RH",
  "date": "2026-02-12",
  "time": "21:34:10",
  "temperature": { "value": 15, "unit": "C" },
  "humidity": { "value": 72, "unit": "%" }
}