curl --request GET \
--url https://{organization}.rescueconsole.com/api/registry/search \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{organization}.rescueconsole.com/api/registry/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{organization}.rescueconsole.com/api/registry/search"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"results": [],
"registrations": [
{
"animal_name": "Biscuit",
"species": "dog",
"breed": "Beagle",
"color_primary": "Tricolor",
"color_secondary": null,
"pattern": null,
"care_state": "former",
"registered_at": "2026-04-02T15:12:09.000Z",
"updated_at": "2026-06-18T10:40:51.000Z",
"microchip_vendor": "HomeAgain",
"chip_maker": {
"name": "HomeAgain",
"lookup_url": "https://www.homeagain.com/",
"from": "recorded"
},
"organization": {
"name": "Contoso Animal Rescue",
"slug": "contoso",
"found_animal_contact": {
"name": "Contoso after-hours line",
"phone": "207-555-0199",
"email": "found@contoso.com"
}
}
}
],
"chip_maker": {
"name": "HomeAgain (Destron Fearing)",
"lookup_url": "https://www.homeagain.com/",
"from": "iso_code"
},
"aaha_lookup_url": "https://www.petmicrochiplookup.org/",
"limit": 25,
"offset": 0,
"has_more": false
}{
"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)"
}Search the registry
Searches the registry, which every organization using RescueConsole shares. It answers with a key and without one, and the answer depends on which.
Without a key (or with one that is not valid) it is the lookup the public may make, from a rescue’s own website or anywhere else:
- only by
microchip_number; any other search is refused (403); results: flags that are active and shared with the network, each as a summary only: its ID, subject type, flag type, severity, status and the date it was filed. Never the narrative, the identifiers, the reviews or who filed it;- 60 lookups an hour from one internet address, shared with RescueConsole’s other public chip lookups; after that, 429.
With a key that may read the Registry it is your organization’s own search, as the app’s Registry search page makes it:
- by
microchip_number, byemailorphone(a flag matching either is found), byname_alias, or bydate_of_birth. When more than one is given, the microchip number is used first, then the email and phone, then the name, then the date of birth; the rest are ignored; results: flags that are active and shared with the network, and every flag your own organization filed, whatever its status, each in full: the narrative, the identifiers other rescues are shown, the review counts, and the name and contact of the organization that filed it;- no hourly limit.
A key WITHOUT read on the Registry is refused (403) rather than answered as the public: send no key for the public answer.
Either way, a microchip search also returns:
registrations: animals an organization has chosen to publish under this chip number, with the name, species, breed, colors and pattern, whether the animal is in that organization’s care, and the contact that organization gave for a found animal. No address, no adopter, no history;chip_makerandaaha_lookup_url: who made the chip, worked out from the number, and where to look it up when nobody here has registered it.
curl --request GET \
--url https://{organization}.rescueconsole.com/api/registry/search \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{organization}.rescueconsole.com/api/registry/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{organization}.rescueconsole.com/api/registry/search"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"results": [],
"registrations": [
{
"animal_name": "Biscuit",
"species": "dog",
"breed": "Beagle",
"color_primary": "Tricolor",
"color_secondary": null,
"pattern": null,
"care_state": "former",
"registered_at": "2026-04-02T15:12:09.000Z",
"updated_at": "2026-06-18T10:40:51.000Z",
"microchip_vendor": "HomeAgain",
"chip_maker": {
"name": "HomeAgain",
"lookup_url": "https://www.homeagain.com/",
"from": "recorded"
},
"organization": {
"name": "Contoso Animal Rescue",
"slug": "contoso",
"found_animal_contact": {
"name": "Contoso after-hours line",
"phone": "207-555-0199",
"email": "found@contoso.com"
}
}
}
],
"chip_maker": {
"name": "HomeAgain (Destron Fearing)",
"lookup_url": "https://www.homeagain.com/",
"from": "iso_code"
},
"aaha_lookup_url": "https://www.petmicrochiplookup.org/",
"limit": 25,
"offset": 0,
"has_more": false
}{
"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_.
Query Parameters
The chip number, as it was read. Spaces and punctuation do not matter.
Only flags about a person, or only flags about an animal.
person, animal How many flags to return. 25 unless you say, 100 at most. Registrations are not paged: at most 25, most recently updated first.
1 <= x <= 100How many flags to skip, for the next page.
x >= 0With a key only. Flags whose email matches, ignoring capital letters.
With a key only. Flags whose phone number matches. Punctuation does not matter.
With phone: the two-letter country the number belongs to, so the same number matches however it was typed.
With a key only. Flags about a person whose name contains this, ignoring capital letters: the Also known as name when the filing rescue gave one, otherwise the first and last name.
With a key only, and only when nothing above is given. The full date of birth, YYYY-MM-DD, exactly: it is matched against a scrambled copy, so a flag is found only by somebody who already has the date.
Response
What is known about this chip.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
The chip's maker, from the number alone. Null when the number does not say.
Show child attributes
Show child attributes
AAHA's microchip lookup, which asks many chip registries at once.
Whether there is another page of flags after this one.