The PawPlacer API allows you to retrieve pet profiles and their related data. This enables external systems to access up-to-date information about available pets and their medical history.
Note: This feature is in beta and may be subject to changes. DO NOT use this feature in production environments until it is officially released. Please contact us with any feedback or issues.
If you would rather embed a full-feature widget for your organization and pets, you can use the widget instead.
Endpoint
GET /api/pets
Authentication
All API requests require an API key, which can be retrieved from your account settings. Include the API key in the request headers as follows:
"x-api-key": process.env.PAWPLACER_API_KEY
Example
async function fetchPets() {
try {
const response = await fetch("https://pawplacer.com/api/pets", {
headers: {
"x-api-key": process.env.PAWPLACER_API_KEY
}
});
if (!response.ok) {
throw new Error('Failed to fetch pets');
}
return await response.json();
} catch (error) {
console.error('Error:', error);
}
}
Response Format
A successful request returns a JSON object containing an array of pet profiles with the following fields.
Fields
Field | Type | Required | Description |
---|
id | string | Yes | Unique identifier for the pet |
name | string | Yes | Pet's name |
species | Species | Yes | See types below |
age_category | Age | Yes | See types below |
sex | Sex | Yes | See types below |
size | Size | Yes | See types below |
status | Status | Yes | See types below |
health | Health | Yes | See types below |
breed | string[] | No | List of breeds associated with the pet |
color | string[] | No | List of colors describing the pet |
age_years | string | No | Age in years |
age_months | string | No | Age in months |
age_birthday | string | No | Pet's birthdate |
description | string | No | Description of the pet |
spayed | boolean | No | Whether the pet is spayed/neutered |
adoption_fee | string | No | Adoption fee amount |
adopted_by | string | No | ID of adopter |
adopted_on | string | No | Date of adoption |
microchip_id | string | No | Microchip ID |
good_with | Compatibility[] | No | List of compatibilities. See types below |
bad_with | Compatibility[] | No | List of incompatibilities. See types below |
temperaments | Temperament[] | No | List of temperaments. See types below |
image_urls | string[] | No | List of image URLs |
created_at | string | Yes | Timestamp when pet profile was created |
updated_at | string | Yes | Timestamp when pet profile was last updated |
notes | Note[] | No | List of notes. See Note type below |
exams | Exam[] | No | List of medical exams. See Exam type below |
vaccinations | Vaccination[] | No | List of vaccinations. See Vaccination type below |
procedures | Procedure[] | No | List of procedures. See Procedure type below |
Types
General
Type | Values |
---|
Age | youngest , young , adult , senior |
Compatibility | activeLifestyle , cats , disabledMental , disabledPhysical , dogs , families , firstTimeOwners , frequentTravelers , kids , otherPets , outdoorsLiving , sedentaryLifestyle , seniors , smallApartments |
Health | unknown , poor , good , great |
Sex | male , female |
Size | xSmall , small , medium , large , xLarge |
Species | dog , cat , rabbit |
Status | adopted , archived , available , deceased , escaped , euthanized , fostered , hold , intake , lost , medicalHold , medicalTreatment , other , pending , quarantine , recoveryPeriod , returnedToOwner , stray , surrendered , transferred |
Temperament | affectionate , aggressive , cuddly , curious , docile , energetic , fearful , gentle , independent , loyal , mischievous , moody , playful , protective , quiet , rough , shy , smart , social , stubborn , vocal |
Note
Field | Type | Required | Description |
---|
id | string | Yes | Unique identifier for the note |
author_id | string | Yes | ID of the user who authored the note |
body | string | Yes | Content of the note |
created_at | string | Yes | Timestamp when note was created |
title | string | Yes | Title of the note |
updated_at | string | Yes | Timestamp when note was last updated |
Exam
Field | Type | Required | Description |
---|
id | string | Yes | Unique identifier for the exam |
assignee_id | string | No | ID of assigned staff member |
cost | number | No | Cost of the exam |
date | string | Yes | Date of the exam |
diagnoses | string[] | No | List of diagnoses from the exam |
follow_up_date | string | No | Follow-up appointment date |
medications | string[] | No | List of medications prescribed |
notes | string | No | Additional notes from the exam |
reasons | string[] | No | Reasons for the exam |
recurring_end_date | string | No | End date for recurring exams |
recurring_interval | number | No | Interval for recurring exams in days |
vet_name | string | No | Name of the veterinarian |
Vaccination
Field | Type | Required | Description |
---|
id | string | Yes | Unique identifier for the vaccination |
administration_route | string | No | How vaccine was administered |
administration_site | string | No | Where vaccine was administered |
assignee_id | string | No | ID of assigned staff member |
cost | number | No | Cost of vaccination |
date_administered | string | Yes | Date vaccination was given |
did_receive_proof | boolean | No | Whether proof was received |
dose_number | number | No | Dose number in series |
follow_up_date | string | No | Date for next vaccination |
lot_expiration_date | string | No | Expiration date of vaccine lot |
lot_number | string | No | Vaccine lot number |
manufacturer | string | No | Vaccine manufacturer |
name | string | Yes | Name of the vaccination |
notes | string | No | Additional notes |
recurring_end_date | string | No | End date for recurring vaccinations |
recurring_interval | number | No | Interval for recurring vaccinations in days |
vet_name | string | No | Name of the veterinarian |
Procedure
Field | Type | Required | Description |
---|
id | string | Yes | Unique identifier for the procedure |
assignee_id | string | No | ID of assigned staff member |
complications | string | No | Any complications that occurred |
cost | number | No | Cost of procedure |
date_performed | string | Yes | Date procedure was performed |
duration | string | No | Duration of procedure |
follow_up_date | string | No | Follow-up appointment date |
medications_administered | string[] | No | Medications given during procedure |
medications_prescribed | string[] | No | Medications prescribed after procedure |
notes | string | No | Additional notes |
procedure_name | string | Yes | Name of the procedure |
procedure_type | string | No | Type of procedure performed |
recovery_instructions | string | No | Post-procedure recovery instructions |
recurring_end_date | string | No | End date for recurring procedures |
recurring_interval | number | No | Interval for recurring procedures in days |
vet_name | string | No | Name of the veterinarian |
Error Handling
Status Code | Meaning | Reason |
---|
400 | Bad Request | Invalid or missing fields |
401 | Unauthorized | API key missing or invalid |
500 | Server Error | An error occurred on the server |
Best Practices
- Keep API keys secure and do not expose them publicly
- Make requests efficiently to avoid rate limiting
- Keep data in sync with your application by updating records periodically