End a foster placement
curl --request POST \
--url https://{organization}.rescueconsole.com/api/animals/foster-assignments/{id}/complete \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"ended_on": "2026-10-02",
"end_reason": "returned_to_shelter"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({ended_on: '2026-10-02', end_reason: 'returned_to_shelter'})
};
fetch('https://{organization}.rescueconsole.com/api/animals/foster-assignments/{id}/complete', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{organization}.rescueconsole.com/api/animals/foster-assignments/{id}/complete"
payload = {
"ended_on": "2026-10-02",
"end_reason": "returned_to_shelter"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"assignment": {
"id": "<string>",
"foster_home_id": "<string>",
"animal_id": "<string>",
"status": "pending",
"requested_on": "<string>",
"is_live": true,
"started_on": "<string>",
"ended_on": "<string>",
"end_reason": "adopted",
"decline_reason": "<string>",
"notes": "<string>",
"updated_at": "2023-11-07T05:31:56Z",
"duration_days": 123,
"animal_name": "<string>",
"animal_species": "<string>",
"foster_first_name": "<string>",
"foster_last_name": "<string>",
"foster_name": "<string>"
}
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}Foster homes
End a foster placement
The animal has left the foster home. An active assignment becomes completed: its spot is freed and the foster placement on the animal ends on the same day. Refused (409) when the assignment is not active. Changing an animal to a status your organization set to end a foster does this for you. Needs write on Animals.
POST
/
api
/
animals
/
foster-assignments
/
{id}
/
complete
End a foster placement
curl --request POST \
--url https://{organization}.rescueconsole.com/api/animals/foster-assignments/{id}/complete \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"ended_on": "2026-10-02",
"end_reason": "returned_to_shelter"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({ended_on: '2026-10-02', end_reason: 'returned_to_shelter'})
};
fetch('https://{organization}.rescueconsole.com/api/animals/foster-assignments/{id}/complete', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{organization}.rescueconsole.com/api/animals/foster-assignments/{id}/complete"
payload = {
"ended_on": "2026-10-02",
"end_reason": "returned_to_shelter"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"assignment": {
"id": "<string>",
"foster_home_id": "<string>",
"animal_id": "<string>",
"status": "pending",
"requested_on": "<string>",
"is_live": true,
"started_on": "<string>",
"ended_on": "<string>",
"end_reason": "adopted",
"decline_reason": "<string>",
"notes": "<string>",
"updated_at": "2023-11-07T05:31:56Z",
"duration_days": 123,
"animal_name": "<string>",
"animal_species": "<string>",
"foster_first_name": "<string>",
"foster_last_name": "<string>",
"foster_name": "<string>"
}
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}Authorizations
An API key from Settings, API keys. It starts with rc_live_.
Path Parameters
The assignment's ID.
Body
application/json
Response
The assignment, completed.
Show child attributes
Show child attributes