Petwise API
Scan pet photos and pet food
Send multipart form-data with header x-api-key. Image: jpg, png, or webp, max 10MB.
Endpoints
POST /api/v1/scan/food
Pet food / packet photo. Returns food analysis for the given pet.
POST /api/v1/scan/pet
Pet photo. Returns visible wellness notes. Not a diagnosis.
GET /api/v1/scan/jobs/{jobId}
Poll a queued scan when POST returns 202.
GET /docs
Swagger UI. Try requests with x-api-key.
GET /api/openapi
OpenAPI JSON used by Swagger.
Scan food params
image (required), outputLanguage, petName, species (dog|cat|other|unknown), allergies.
Scan pet params
image (required), outputLanguage. Optional petName, species, allergies if the photo is actually food.
Food result fields
- type
- Always food when this analysis is returned.
- imageKind
- animal_food means the photo is pet food.
- supported
- true if the photo can be analyzed.
- productName
- Name or description of the food in the photo.
- recipe
- Flavor / recipe line if visible.
- brand
- Brand if readable, otherwise Unknown.
- safety
- safe | caution | unsafe | toxic for this pet.
- choiceLabel
- Good Choice | Use Caution | Not Recommended | Unsafe.
- overview
- One-line summary for this pet.
- nutrients
- Protein, fat, fiber, moisture with percent and status.
- ingredientPoints
- Visible ingredient notes.
- feedingTips
- How to feed this pet.
- warnings
- Allergies, species mismatch, or missing label.
Pet result fields
- type
- Always pet when this analysis is returned.
- imageKind
- animal means the photo is a pet.
- species
- dog | cat | other | unknown.
- breedGuess
- Best-guess breed from the photo.
- confidence
- 0 to 1 confidence for species/breed guess.
- overallStatus
- healthy | monitor | concern | urgent.
- conditionLabel
- Good | Fair | Needs Attention | Urgent.
- summary
- Short visible-wellness summary.
- observations
- What is visible in the photo.
- careTip
- Friendly care suggestion.
- careGuide
- null when healthy. Extra guidance when not healthy.
HTTP status
- 200
- Scan finished. Body has data.type and data.analysis.
- 202
- Queued. Poll GET /api/v1/scan/jobs/{jobId}.
- 400
- Bad image, validation, or photo is not pet/food.
- 401
- Missing or invalid x-api-key header.
- 405
- Only POST on scan routes (except job GET).
- 429
- Rate limit. Wait and retry.
- 502
- Scan model failed.
- 503
- Queue full. Retry shortly.