curl --request POST \
--url https://{organization}.rescueconsole.com/api/people/persons/{id}/merge \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"loser_id": "a3d9e7f2-1b6c-4e8d-9f0a-5c2b7e1d4f36"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({loser_id: 'a3d9e7f2-1b6c-4e8d-9f0a-5c2b7e1d4f36'})
};
fetch('https://{organization}.rescueconsole.com/api/people/persons/{id}/merge', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{organization}.rescueconsole.com/api/people/persons/{id}/merge"
payload = { "loser_id": "a3d9e7f2-1b6c-4e8d-9f0a-5c2b7e1d4f36" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"roles": [
"adopter"
],
"address": {
"country": "<string>",
"line1": "<string>",
"line2": "<string>",
"city": "<string>",
"administrative_area": "<string>",
"postal_code": "<string>"
},
"status": "active",
"preferred_contact": [
"email"
],
"custom_fields": {},
"id": "<string>",
"display_name": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"name_prefix": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"name_suffix": "<string>",
"email": "<string>",
"phone": "<string>",
"phone_country": "<string>",
"date_of_birth": "2023-12-25",
"tenant_id": "<string>",
"photo_file_id": "<string>",
"avatar_key": "<string>",
"tags": [
"<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)"
}Merge two people
Keeps the person in the path and folds the person named by loser_id into them. The other person’s donations, their foster homes and their message history move to the person you keep. The other person is then archived, not deleted, and the change is in their history. Nothing else moves: their notes, tags, phones, emails, addresses, affiliations and shift sign-ups stay on the archived record. There is no route to undo a merge. Needs admin on People.
curl --request POST \
--url https://{organization}.rescueconsole.com/api/people/persons/{id}/merge \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"loser_id": "a3d9e7f2-1b6c-4e8d-9f0a-5c2b7e1d4f36"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({loser_id: 'a3d9e7f2-1b6c-4e8d-9f0a-5c2b7e1d4f36'})
};
fetch('https://{organization}.rescueconsole.com/api/people/persons/{id}/merge', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{organization}.rescueconsole.com/api/people/persons/{id}/merge"
payload = { "loser_id": "a3d9e7f2-1b6c-4e8d-9f0a-5c2b7e1d4f36" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"roles": [
"adopter"
],
"address": {
"country": "<string>",
"line1": "<string>",
"line2": "<string>",
"city": "<string>",
"administrative_area": "<string>",
"postal_code": "<string>"
},
"status": "active",
"preferred_contact": [
"email"
],
"custom_fields": {},
"id": "<string>",
"display_name": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"name_prefix": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"name_suffix": "<string>",
"email": "<string>",
"phone": "<string>",
"phone_country": "<string>",
"date_of_birth": "2023-12-25",
"tenant_id": "<string>",
"photo_file_id": "<string>",
"avatar_key": "<string>",
"tags": [
"<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)"
}Authorizations
An API key from Settings, API keys. It starts with rc_live_.
Path Parameters
The person to keep.
Body
The person to fold in and archive. Not the same as the one in the path.
Response
The person you kept. tags is not included here.
Replaced whole when you change it.
adopter, donor, volunteer, foster Every part is optional, and a key not listed here is refused. An empty or null part is removed.
Show child attributes
Show child attributes
A merged-away person is archived.
active, inactive, archived How they like to be reached, each way once. Replaced whole when you change it.
email, phone, text, mail, in_person Values for the custom fields, keyed by field key (see List custom fields). A key that is not a field is refused, and each value must suit its field: text; long text of 5,000 characters at most; a number; true or false; a date; one of a select's options; a list of a multi-select's options; a phone number; an email address; a web address starting http:// or https://; { "country": "US", "state": "ME" } for a country and state; an ID for an organization or person field; a list of volunteer role keys. null clears a value.
The whole name, built from the prefix, first name, last name and suffix: Dr Robin Fields Jr. Empty when there is no name. It cannot be set.
Such as Dr or Ms.
Such as Jr or PhD.
Their primary email address. It must look like an email address.
Their primary phone number. Everything that is not a digit is removed, so (207) 555-0142 is kept as 2075550142. At most 15 digits together with the calling code.
The calling code for the phone, one to three digits: 1 for the US and Canada, 44 for the UK.
A real date, not in the future. Volunteer roles with a minimum age check it.
Your organization's ID.
Their photo's file ID.
A built-in picture shown when there is no photo. It cannot be set here.
The person's tags, in alphabetical order. Present everywhere except in the duplicates list and the answer to a merge.