This operation creates a new shelter profile in the PawFinder system.
POST /shelters
| 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 POST request bodies or returns a 400 error.
curl -X POST {base_url}/shelters \
-H "Authorization: Bearer pawfinder-secret-2025" \
-H "Content-Type: application/json" \
-d '{
"name": "Plano Animal Services",
"address": "4028 W Plano Pkwy, Plano, TX 75093",
"phone": "+1-972-769-4360",
"email": "contact@planoanimalservices.org",
"hours": "Mon-Fri 10:00-17:00, Sat 10:00-16:00",
"available_pet_count": 12,
"adoption_fee_range": "80-150"
}
Response: 201 Created
{
"name": "Plano Animal Services",
"address": "4028 W Plano Pkwy, Plano, TX 75093",
"phone": "+1-972-769-4360",
"email": "contact@planoanimalservices.org",
"hours": "Mon-Fri 10:00-17:00, Sat 10:00-16:00",
"available_pet_count": 12,
"adoption_fee_range": "80-150",
"id": 5
}
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
}