curl --request PATCH \
--url https://{organization}.rescueconsole.com/api/animals/contract-templates/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"version": "2026-october",
"asks": [
"media_release",
"payment"
]
}
'const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({version: '2026-october', asks: ['media_release', 'payment']})
};
fetch('https://{organization}.rescueconsole.com/api/animals/contract-templates/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{organization}.rescueconsole.com/api/animals/contract-templates/{id}"
payload = {
"version": "2026-october",
"asks": ["media_release", "payment"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text){
"template": {
"id": "<string>",
"name": "<string>",
"version": "<string>",
"kind": "adoption",
"body": "<string>",
"is_active": true,
"body_blocks": [
{
"type": "p",
"runs": [
{
"text": "<string>",
"bold": true,
"italic": true,
"underline": true,
"strike": true,
"href": "<string>"
}
],
"items": [
[
{
"text": "<string>",
"bold": true,
"italic": true,
"underline": true,
"strike": true,
"href": "<string>"
}
]
],
"level": 1,
"rows": [
[
[
{
"text": "<string>",
"bold": true,
"italic": true,
"underline": true,
"strike": true,
"href": "<string>"
}
]
]
],
"src": "<string>",
"alt": "<string>"
}
],
"conditions": {
"species": [
"dog"
],
"age_bands": [
"<string>"
],
"traits": [
"<string>"
],
"min_days_in_care": 1,
"bonded_pair": true,
"min_animals": 3,
"min_fee_cents": 1,
"max_fee_cents": 1
},
"field_conditions": [
{
"target": "animal",
"field": "<string>",
"op": "is",
"value": "<string>"
}
],
"asks": [
"media_release"
],
"signature_count": 123,
"merge_fields": [
"animal_name"
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
}{
"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)"
}Change a contract template
Send only what changes. Editing a template that has been signed is safe: every signed contract keeps the text it was signed with. Needs write on Animals.
curl --request PATCH \
--url https://{organization}.rescueconsole.com/api/animals/contract-templates/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"version": "2026-october",
"asks": [
"media_release",
"payment"
]
}
'const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({version: '2026-october', asks: ['media_release', 'payment']})
};
fetch('https://{organization}.rescueconsole.com/api/animals/contract-templates/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{organization}.rescueconsole.com/api/animals/contract-templates/{id}"
payload = {
"version": "2026-october",
"asks": ["media_release", "payment"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text){
"template": {
"id": "<string>",
"name": "<string>",
"version": "<string>",
"kind": "adoption",
"body": "<string>",
"is_active": true,
"body_blocks": [
{
"type": "p",
"runs": [
{
"text": "<string>",
"bold": true,
"italic": true,
"underline": true,
"strike": true,
"href": "<string>"
}
],
"items": [
[
{
"text": "<string>",
"bold": true,
"italic": true,
"underline": true,
"strike": true,
"href": "<string>"
}
]
],
"level": 1,
"rows": [
[
[
{
"text": "<string>",
"bold": true,
"italic": true,
"underline": true,
"strike": true,
"href": "<string>"
}
]
]
],
"src": "<string>",
"alt": "<string>"
}
],
"conditions": {
"species": [
"dog"
],
"age_bands": [
"<string>"
],
"traits": [
"<string>"
],
"min_days_in_care": 1,
"bonded_pair": true,
"min_animals": 3,
"min_fee_cents": 1,
"max_fee_cents": 1
},
"field_conditions": [
{
"target": "animal",
"field": "<string>",
"op": "is",
"value": "<string>"
}
],
"asks": [
"media_release"
],
"signature_count": 123,
"merge_fields": [
"animal_name"
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
}{
"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 template's ID.
Body
Send only what changes. Sending body or body_blocks replaces the other. Contracts already signed keep the text they were signed with.
What the template is called.
Your own label for this version, such as 2026-standard. A name and version can be used once.
What it is signed on: an adoption, a foster placement, a surrender (an intake), or other.
adoption, foster, surrender, other The contract as plain text. Merge fields are written in double braces, such as {{adopter_name}}.
The contract as a formatted document. When sent, its text becomes the body.
Show child attributes
Show child attributes
When a template is offered. Every condition given must hold; none at all means every animal. A key not listed here is refused.
Show child attributes
Show child attributes
Conditions on the animal's or the adopter's own fields. Every one must hold.
10Show child attributes
Show child attributes
What is asked at signing: the media release, the payment and how to complete it, the team member approving, and where it was completed.
media_release, payment, approver, completed_where false retires it; true brings a retired template back.
Response
The template, as it now is.
Show child attributes
Show child attributes