Pets & Pet Analysis
Manage your users' pets, upload their photos, and use computer vision to analyse their health, age, and breed composition. This controller allows for comprehensive pet profile management and advanced image analysis.
Core Management
Create a Pet
Create a profile for a pet. You can include multiple initial images during creation by repeating the images field.
curl -X POST -H "x-api-key: YOUR-API-KEY" -H "Content-Type: multipart/form-data" \
-F "name=Buddy" \
-F "breed_id=115" \
-F "date_of_birth=2022-06-15" \
-F "sub_id=my-user-123" \
-F "description=My best friend" \
-F "images=@/path/to/front_view.jpg" \
-F "images=@/path/to/side_view.jpg" \
https://api.thedogapi.com/v1/pets
List your Pets
Retrieve a paginated list of all pets associated with your account.
curl -H "x-api-key: YOUR-API-KEY" "https://api.thedogapi.com/v1/pets?limit=10&page=0"
Get Pet Details
Retrieve full profile details for a specific pet, including all their uploaded images.
curl -H "x-api-key: YOUR-API-KEY" https://api.thedogapi.com/v1/pets/{pet_id}
Update a Pet
Update metadata like name, breed, description, or manually record/update a WSAVA Body Condition Score (body_condition_score 1-9).
curl -X PATCH -H "x-api-key: YOUR-API-KEY" -H "Content-Type: application/json" \
-d '{"description": "Loves playing fetch", "body_condition_score": 5}' \
https://api.thedogapi.com/v1/pets/{pet_id}
Media Management
Upload Pet Images
To upload additional photos for an existing pet, use the /images sub-resource. This is useful for providing the AI with more reference angles for higher-quality analysis.
curl -X POST -H "x-api-key: YOUR-API-KEY" -H "Content-Type: multipart/form-data" \
-F "images=@/path/to/photo_3.jpg" \
-F "images=@/path/to/photo_4.jpg" \
https://api.thedogapi.com/v1/pets/{pet_id}/images
AI Health & Condition Analysis
Computer vision algorithms analyse the pet's images to provide quantitative and qualitative insights.
Body Condition Score (BCS)
The AI analyses profile and overhead photos to determine if a pet is underweight, ideal, or overweight. Low-confidence results go to a vet for review: see Body condition score with vet review. Body condition scores can also be manually recorded or updated directly on a pet profile via PATCH /pets/{pet_id}.
curl -X POST -H "x-api-key: YOUR-API-KEY" \
https://api.thedogapi.com/v1/pets/{pet_id}/body-condition-score
Example Output
{
"score": 5,
"reasons": "Ribs are easily palpable with minimal fat cover. Waist is easily noted when viewed from above. Abdominal tuck is evident from the side.",
"condition_flags": [],
"breed_predispositions": [],
"confidence": 5,
"confidence_reason": "All key anatomical landmarks clearly visible across multiple images.",
"prompt_version": "v1",
"generated_at": "2026-09-30T02:11:04.000Z",
"review": null
}

Muscle Condition Score (beta)
Analyses muscle mass across the spine, scapulae, and hips and returns a muscle-loss flag with reasons. Beta: see Roadmap.
curl -X POST -H "x-api-key: YOUR-API-KEY" \
https://api.thedogapi.com/v1/pets/{pet_id}/muscle-condition-score
Estimated Age
If a pet's exact history is unknown, our AI can estimate their age by analysing physical indicators.
curl -X POST -H "x-api-key: YOUR-API-KEY" \
https://api.thedogapi.com/v1/pets/{pet_id}/estimated-age
Estimated Weight
Estimate the pet's weight from its photos and breed, useful when a scale reading is not available.
curl -X POST -H "x-api-key: YOUR-API-KEY" \
https://api.thedogapi.com/v1/pets/{pet_id}/estimated-weight
Genealogy & Breed Insights
Understand a pet's ancestry through visual pattern recognition.
curl -X POST -H "x-api-key: YOUR-API-KEY" \
https://api.thedogapi.com/v1/pets/{pet_id}/genealogy
Genealogy Response
{
"genealogy": {
"is_mixed_breed": true,
"mixed_breed_reasoning": "Ear set and coat texture point to two parent breeds rather than one.",
"primary_breed": { "id": "115", "label": "German Shepherd", "confidence": 0.64 },
"secondary_breed": { "id": "1", "label": "Affenpinscher", "confidence": 0.31 },
"tertiary_breed": { "id": "", "label": "", "confidence": 0 },
"breed_probabilities": {
"ids": ["115", "1"],
"labels": ["German Shepherd", "Affenpinscher"],
"confidences": [0.64, 0.31]
}
},
"creative_descriptions": {
"fun_description": "…",
"fun_caption": "…",
"happy_sentence": "…",
"breed_fact": "…"
}
}
See Identify a breed from a photo for how to read it.
AI Portraits
Generate stylised, professional-quality artwork featuring the pet.
1. List Available Styles
curl -H "x-api-key: YOUR-API-KEY" https://api.thedogapi.com/v1/pets/portrait-styles
Styles include studio, watercolour, pencil_sketch, comic_book, anime, superhero, astronaut, renaissance, pop_art and seasonal editions such as christmas_edition and halloween_spooky. Each style has an id, name, description, category and popularity_score.
2. Generate Artwork
curl -X POST -H "x-api-key: YOUR-API-KEY" -H "Content-Type: application/json" \
-d '{"style": "studio"}' \
https://api.thedogapi.com/v1/pets/{pet_id}/portrait
| Studio | Pack Leader | Birthday |
|---|---|---|
![]() | ![]() | ![]() |
3. List Generated Portraits
curl -H "x-api-key: YOUR-API-KEY" https://api.thedogapi.com/v1/pets/{pet_id}/portraits
Cleanup
Delete a Pet
Remove a pet from your account. See Deleting a user's data for erasure.
curl -X DELETE -H "x-api-key: YOUR-API-KEY" https://api.thedogapi.com/v1/pets/{pet_id}


