Skip to content

Animals

These routes manage the animals of the business that connected your app: the ones it owns of record, and the ones it co-owns.

  • A token from the authorization-code grant. A client-credentials token answers 403 0010010000406.
  • The business must keep a valid payment card on file; without one, 403 0010010000407.
  • Scopes animal:read (list, get) and animal:write (create, update, archive), declared by your app and granted by the business on the consent page — see Business resources.
{
"id": "a3c8e1f0-6b2d-4e7a-9c15-0d4f8b2e6a71",
"upcCode": "UPC-DOG-7Q2M4K",
"name": "Biscuit",
"registeredName": "Sunnyvale Golden Biscuit",
"species": "DOG",
"breedCode": "LABR",
"sex": "F",
"dateOfBirth": "2024-01-01",
"lifeStatus": "ALIVE",
"isOwnerOfRecord": true,
"createdAt": "2026-10-18T09:12:44Z"
}
FieldMeaning
upcCodeThe animal’s United Pet Club code.
nameThe call name, else the registered name.
species, breedCodeCodes, as you send them. Species codes are listed on Species and gestation.
sexM, F, I (intersex) or U (unknown).
isOwnerOfRecordfalse when the business is a co-owner.
GET /api/animal/v1/animals?species=DOG&page=1&pageSize=20

The animals the business owns of record, newest first; archived animals are left out. Co-owned animals answer by id but are not listed. species is a species code (any case). The answer is { "data": [...], "pagination": {...} } — see Pagination.

GET /api/animal/v1/animals/{id}

An animal the business owns of record or co-owns. Any other animal answers 404, exactly like one that does not exist.

POST /api/animal/v1/animals
Content-Type: application/json
{ "name": "Biscuit", "species": "DOG", "breedCode": "LABR", "sex": "F", "dateOfBirth": "2024-01-01" }
FieldRequiredMeaning
nameyesThe call name. It needs a Latin spelling.
speciesyesA species code.
breedCodenoA breed code of that species.
sexnoM, F, I, U or MALE, FEMALE, INTERSEX, UNKNOWN (default U).
dateOfBirthnoyyyy-MM-dd.
confirmedNotDuplicatenotrue to register an animal born on the same day as another of the business’s, after a 409 Animal_AnimalRegistry_AD_DuplicateBirthDate_RJ. The same name and the same date of birth stay a duplicate.

The business becomes the owner of record. The answer is 201 Created with a Location header and the animal.

PATCH /api/animal/v1/animals/{id}
Content-Type: application/json
{ "name": "Biscuit II", "dateOfBirth": "2024-01-03" }

name, breedCode, sex and dateOfBirth; a field you leave out (or send as null) is unchanged. The species cannot change. The answer is the updated animal.

DELETE /api/animal/v1/animals/{id}

DELETE archives the animal: its record, history and UPC code are kept, it leaves the list, and afterwards every route answers 404 for it. It cannot be undone through this API. The answer is 204 No Content.

StatusplatformResponseCodeCause
4000010010000400page or pageSize out of range, or no name / species on a create.
400Animal_AnimalRegistry_VL_Request_RJA malformed request or an unknown sex.
400Animal_AnimalRegistry_VL_Species_FLAn unknown species code.
400Animal_AnimalRegistry_VL_Lookup_FLAn unknown breed code, or a breed of another species.
400Animal_AnimalRegistry_VL_Name_RJ, …_VL_Length_RJA name without a Latin spelling, or too long.
400Animal_AnimalOwnership_VL_PlaceOwner_RJThe business is a place profile, which cannot own animals.
400Animal_AnimalOwnership_VL_ParentBirthDate_RJ, …_VL_OffspringBirthDate_RJThe date of birth contradicts the recorded parents or offspring.
404Animal_AnimalRegistry_GT_Resource_FLNot one of the business’s animals, or archived.
409Animal_AnimalRegistry_AD_Duplicate_RJThe business already has an animal with this name and date of birth.
409Animal_AnimalRegistry_AD_DuplicateBirthDate_RJAnother animal of the business was born that day: resend with confirmedNotDuplicate: true if it is a different animal.
409Animal_AnimalRegistry_AD_UpcCode_FLA UPC code could not be assigned. Retry the create.

Everything else follows Errors.