Scan Image Text
1 credit / requestPOST /api/v1/scan-image-textUse 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 PlaygroundRequired 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": "%" }
}