This operation edits all fields of an existing shelter record in the PawFinder System.
PUT replaces an entire profile and PATCH only updates
the fields provided in the request body. In a PUT request,
missing fields set to null or default values. In a PATCH
request, fields not present in the request remain unchanged.
PUT /shelters/{id}
| Header | Value | Required |
|---|---|---|
Content-Type |
application/json |
Yes |
All fields required.
| Property | Type | Description |
|---|---|---|
name |
string | Shelter’s name |
address |
string | Shelter’s address information |
phone |
string | Shelter’s phone number, E.164 format |
email |
string | Shelter’s email address |
hours |
string | Shelter’s hours of operation |
available_pet_count |
integer | Shelter’s available pets |
adoption_fee_range |
string | Shelter’s fee range in United States Dollar |
| Field | Validation Rule |
|---|---|
phone |
Must be E.164 format: +1-XXX-XXX-XXXX |
PawFinder auto-generates shelter unique identifiers, id. The system
ignores id fields in PUT request bodies or returns a 400 error.
curl -X PUT {base_url}/shelters/1 \
-H "Authorization: Bearer pawfinder-secret-2025" \
-H "Content-Type: application/json" \
-d '{
"name": "Dallas Animal Services",
"address": "1818 N Westmoreland Rd, Dallas, TX 75212",
"phone": "+1-214-671-0249",
"email": "info@dallasanimalservices.org",
"hours": "Mon-Sat 11:00-19:00",
"available_pet_count": 25,
"adoption_fee_range": "75-200"
}
Response: 200 OK
{
"name": "Dallas Animal Services",
"address": "1818 N Westmoreland Rd, Dallas, TX 75212",
"phone": "+1-214-671-0249",
"email": "info@dallasanimalservices.org",
"hours": "Mon-Sat 11:00-19:00",
"available_pet_count": 25,
"adoption_fee_range": "75-200"
}
Response: 400 Bad Request - missing required field values
{
"error": "Bad Request",
"message": "Missing required field: name",
"status": 400
}
Response: 400 Bad Request - invalid values for fields
phone or adoption_fee_range
{
"error": "Bad Request",
"message": "Invalid value for 'adoption_fee_range'.
Must be in USD.",
"status": 400
}
Response: 404 Not Found - no matching id
{
"error": "Not Found",
"message": "Shelter with ID 999 not found",
"status": 404
}