> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rescueconsole.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 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`, by `email` or `phone` (a flag matching either is found), by `name_alias`, or by `date_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_maker` and `aaha_lookup_url`: who made the chip, worked out from the number, and where to look it up when nobody here has registered it.



## OpenAPI

````yaml /api-reference/openapi.json get /api/registry/search
openapi: 3.1.0
info:
  title: RescueConsole API
  version: '2026-09-19'
  description: >-
    Your own organization's records, from your own software. There is no
    sandbox: every request goes to your live organization.
servers:
  - url: https://{organization}.rescueconsole.com
    description: Your own organization's address, the one you sign in at.
    variables:
      organization:
        default: your-rescue
        description: >-
          The first part of the address you sign in at. A key only works at the
          address of the organization it was made in.
security:
  - apiKey: []
tags:
  - name: Animals
    description: The animals in your care, and the ones you have placed.
  - name: Animal notes
    description: Notes written on an animal's record.
  - name: Animal weights
    description: An animal's weight readings, one per weighing.
  - name: Animal medical records
    description: >-
      Vaccines, treatments, procedures, tests, exams and other medical records
      on one animal.
  - name: Animal placements
    description: The people an animal came from or has been placed with, over time.
  - name: Animal nutrition
    description: 'What an animal eats: its feeding list and its diet.'
  - name: Animal relationships
    description: Siblings, parents, offspring and bonded pairs.
  - name: Animal tags
    description: Your own short labels on an animal.
  - name: Breeds
    description: The breed or kind lists your intake form offers for each species.
  - name: Litters
    description: Litters, and the animals born into them.
  - name: Locations and housing
    description: >-
      The places animals are housed at each of your locations: campuses,
      buildings, rooms and cages, the tunnels that join cages into one space,
      and who is in each.
  - name: Foster homes
    description: >-
      The people who foster for you, what each home can take, and the animals
      offered to and placed with them.
  - name: Intakes
    description: >-
      How each animal arrived: the route in, who brought it, why it was given up
      and the state it came in.
  - name: Medical due
    description: >-
      Medical work that is outstanding across all your animals, and one medical
      record added to many animals at once.
  - name: Transports
    description: >-
      Transport runs: a chain of drives, each leg with its own driver, that
      moves animals from one place to another.
  - name: Animal calendar
    description: >-
      The dated things in animal care on one calendar: medical work due,
      adoptions, foster placements starting and ending, arrivals, and meet and
      greets.
  - name: Animal reports
    description: >-
      The operations report: intakes, outcomes, live release rate and the
      animals in your care, each figure with its own definition.
  - name: Adoption applications
    description: >-
      Applications to adopt or foster, from first draft to a decision, and the
      adoption contract signed on an approved one.
  - name: Adoptions
    description: >-
      Animals that went home, what each adopter owes and has paid, and closing
      or reversing the adoption.
  - name: Signed contracts
    description: >-
      Contracts signed on an adoption, a foster placement or an intake, each
      kept exactly as it read when it was signed.
  - name: Contract templates
    description: >-
      The contracts your organization has people sign, with the merge fields
      that fill them in.
  - name: Reconciliations
    description: >-
      A payment processor's settlement lines, matched against the adoption
      payments you recorded.
  - name: Animal custom fields
    description: >-
      The extra fields your organization adds to animals, housing units and
      adoption applications.
  - name: Age groups
    description: >-
      What counts as a baby, an adult or a senior, per species, which fee rules
      and discounts read.
  - name: Animal statuses
    description: >-
      Your organization's status vocabulary for animal records, and what kind of
      status each one is.
  - name: Application stages
    description: >-
      The steps an adoption or foster application moves through before it is
      decided, in your organization's words.
  - name: Behaviour attributes
    description: >-
      The catalogue of behavioural traits, and where a trait with each name may
      be shown beyond the record.
  - name: Cage card templates
    description: >-
      The layouts your organization prints for the kennel door: paper, fields,
      photo and QR code.
  - name: Adoption fee schedules
    description: >-
      The rules that suggest an animal's adoption fee, and the discounts laid
      over them.
  - name: Medical catalogue
    description: >-
      The diagnoses, tests, vaccines, treatments, procedures, conditions and
      medications your medical records pick from.
  - name: People
    description: >-
      The people your organization deals with: adopters, donors, volunteers,
      fosters and everybody else.
  - name: Person notes
    description: Notes written on a person's record.
  - name: Person contacts
    description: >-
      A person's phone numbers and email addresses, one of each kind marked
      primary.
  - name: Person addresses
    description: A person's addresses, one of them primary.
  - name: Person tags
    description: Free-text labels on a person, added and removed one at a time.
  - name: People duplicates
    description: People who look like the same person entered twice, and merging them.
  - name: People custom fields
    description: The fields a person's record carries beyond the standard ones.
  - name: Organizations
    description: >-
      The outside organizations your rescue deals with: veterinary practices,
      partner rescues, shelters, suppliers, employers and agencies.
  - name: Organization locations
    description: An organization's places, one of them the main one.
  - name: Affiliations
    description: >-
      Who works at, volunteers for or otherwise belongs to an organization, now
      or in the past.
  - name: Forms
    description: >-
      The forms your organization publishes, such as an adoption application or
      a volunteer sign-up, and the questions on them.
  - name: Submissions
    description: >-
      What people sent through your forms, and what your team does with each
      one.
  - name: Tasks
    description: >-
      To-dos, on a record or for the whole organization, narrowed to the records
      your key may read.
  - name: Calendar
    description: >-
      The dated work across your organization in one list, narrowed to the areas
      your key may read.
  - name: Activity
    description: >-
      What was created, changed and deleted in your organization, narrowed to
      the areas your key may read.
  - name: Shift schedules
    description: >-
      Schedules: the occasions shifts are grouped under, such as an adoption day
      or Saturday kennel cover.
  - name: Shift windows
    description: >-
      Shifts: a stretch of time at a place, with the volunteer roles it needs
      and how many of each (the address calls a shift a window).
  - name: Shift bookings
    description: >-
      Sign-ups: a person taking a role on a shift, giving it up, and the hours
      they worked.
  - name: Volunteers
    description: >-
      The people who volunteer: where each stands, what they have done, and
      where they would rather work.
  - name: Volunteer roles
    description: >-
      The jobs a volunteer can sign up for, such as Dog walker or Adoption
      counselor.
  - name: Volunteer qualifications
    description: 'Approvals: who may take which role, and at which location.'
  - name: Shift policies
    description: The rules you set for sign-ups and cancellations.
  - name: Shift calendar
    description: Schedules and shifts as calendar items for a date range.
  - name: Shift custom fields
    description: Your own fields on schedules, shifts and sign-ups.
  - name: Events
    description: >-
      The occasions your rescue hosts: adoption days, fundraisers, clinics and
      the rest.
  - name: Events calendar
    description: Your events between two days, as calendar entries.
  - name: Campaigns
    description: >-
      Appeals you raise money for, each with its goal and what it has raised so
      far.
  - name: Donations
    description: 'Gifts of money: how much, from whom, and what they were given to.'
  - name: Donors
    description: The people who have given, with what each has given in all.
  - name: Wish list
    description: The things your rescue needs, and the deliveries that met them.
  - name: Fundraising custom fields
    description: Your organization's own fields on donations and campaigns.
  - name: Message templates
    description: >-
      Saved wording your organization sends again and again, with merge fields
      filled from your records.
  - name: Sending
    description: >-
      Everything here sends real email from your organization, and none of it
      can be unsent.
  - name: Message log
    description: >-
      The email your organization has sent or tried to send, and what became of
      each message.
  - name: Conversations
    description: >-
      The email conversations in your organization's inboxes, and the records
      each one is about.
  - name: Inboxes
    description: >-
      The addresses your organization receives email at, and who may read each
      one.
  - name: Contact preferences
    description: >-
      Whether a person has asked not to be emailed, altogether or about one kind
      of message.
  - name: Suppressions
    description: >-
      Addresses no email goes to, because mail to them bounced or their owner
      asked not to be written to.
  - name: Sender and deliverability
    description: Who your organization's email goes out as, and how much of it arrives.
  - name: Registry flags
    description: >-
      Safety flags your organization files about a person or an animal, which
      other organizations using RescueConsole can see once the flag is vetted
      and shared.
  - name: Registry reviews
    description: >-
      Another organization's vote on a flag it did not file, which decides
      whether the flag becomes active or disputed.
  - name: Registry search
    description: >-
      The lookup by microchip number that anybody may make, with or without a
      key.
paths:
  /api/registry/search:
    get:
      tags:
        - Registry search
      summary: Search the registry
      description: >-
        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`, by `email` or `phone` (a flag matching either
        is found), by `name_alias`, or by `date_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_maker` and `aaha_lookup_url`: who made the chip, worked out from
        the number, and where to look it up when nobody here has registered it.
      operationId: searchRegistry
      parameters:
        - name: microchip_number
          in: query
          required: true
          description: >-
            The chip number, as it was read. Spaces and punctuation do not
            matter.
          schema:
            type: string
          example: '985112009887654'
        - name: subject_type
          in: query
          description: Only flags about a person, or only flags about an animal.
          schema:
            type: string
            enum:
              - person
              - animal
        - name: limit
          in: query
          description: >-
            How many flags to return. 25 unless you say, 100 at most.
            Registrations are not paged: at most 25, most recently updated
            first.
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 25
        - name: offset
          in: query
          description: How many flags to skip, for the next page.
          schema:
            type: integer
            minimum: 0
            default: 0
        - name: email
          in: query
          required: false
          schema:
            type: string
          description: >-
            With a key only. Flags whose email matches, ignoring capital
            letters.
        - name: phone
          in: query
          required: false
          schema:
            type: string
          description: >-
            With a key only. Flags whose phone number matches. Punctuation does
            not matter.
        - name: phone_country
          in: query
          required: false
          schema:
            type: string
          description: >-
            With `phone`: the two-letter country the number belongs to, so the
            same number matches however it was typed.
        - name: name_alias
          in: query
          required: false
          schema:
            type: string
          description: >-
            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.
        - name: date_of_birth
          in: query
          required: false
          schema:
            type: string
            format: date
          description: >-
            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.
      responses:
        '200':
          description: What is known about this chip.
          content:
            application/json:
              schema:
                type: object
                required:
                  - results
                  - registrations
                  - chip_maker
                  - aaha_lookup_url
                  - limit
                  - offset
                  - has_more
                properties:
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/RegistrySearchHit'
                  registrations:
                    type: array
                    items:
                      $ref: '#/components/schemas/RegistryChipRegistration'
                  chip_maker:
                    description: >-
                      The chip's maker, from the number alone. Null when the
                      number does not say.
                    oneOf:
                      - $ref: '#/components/schemas/RegistryChipMaker'
                      - type: 'null'
                  aaha_lookup_url:
                    type: string
                    format: uri
                    description: >-
                      AAHA's microchip lookup, which asks many chip registries
                      at once.
                  limit:
                    type: integer
                  offset:
                    type: integer
                  has_more:
                    type: boolean
                    description: Whether there is another page of flags after this one.
              example:
                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
        '400':
          $ref: '#/components/responses/Problem'
        '403':
          $ref: '#/components/responses/Problem'
          description: >-
            No microchip number was given. A search by a person's details is not
            answered here.
        '429':
          $ref: '#/components/responses/Problem'
          description: Too many lookups from this internet address in the last hour.
      security:
        - {}
        - apiKey: []
components:
  schemas:
    RegistrySearchHit:
      type: object
      description: >-
        A flag as the public lookup shows it. Nothing else about the flag is
        returned.
      required:
        - id
        - subject_type
        - flag_type
        - severity
        - status
        - created_at
      additionalProperties: false
      properties:
        id:
          type: string
        subject_type:
          $ref: '#/components/schemas/RegistrySubjectType'
        flag_type:
          $ref: '#/components/schemas/RegistryFlagType'
        severity:
          $ref: '#/components/schemas/RegistrySeverity'
        status:
          $ref: '#/components/schemas/RegistryFlagStatus'
        created_at:
          type: string
          format: date-time
    RegistryChipRegistration:
      type: object
      description: >-
        An animal an organization has published under this chip number, so that
        whoever finds it can reach them.
      properties:
        animal_name:
          type:
            - string
            - 'null'
        species:
          type:
            - string
            - 'null'
        breed:
          type:
            - string
            - 'null'
        color_primary:
          type:
            - string
            - 'null'
        color_secondary:
          type:
            - string
            - 'null'
        pattern:
          type:
            - string
            - 'null'
        care_state:
          type: string
          description: >-
            in_care while the animal is in that organization's care; former once
            it is not.
          enum:
            - in_care
            - former
        registered_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        microchip_vendor:
          type:
            - string
            - 'null'
          description: The chip's maker as the organization recorded it.
        chip_maker:
          oneOf:
            - $ref: '#/components/schemas/RegistryChipMaker'
            - type: 'null'
        organization:
          type: object
          properties:
            name:
              type: string
            slug:
              type: string
              description: The first part of the organization's RescueConsole address.
            found_animal_contact:
              description: >-
                The contact the organization gave for a found animal. Null when
                it has not given one.
              oneOf:
                - type: object
                  properties:
                    name:
                      type:
                        - string
                        - 'null'
                    phone:
                      type:
                        - string
                        - 'null'
                    email:
                      type:
                        - string
                        - 'null'
                - type: 'null'
    RegistryChipMaker:
      type: object
      properties:
        name:
          type: string
        lookup_url:
          type:
            - string
            - 'null'
          description: The maker's own lookup page, when it has one.
        from:
          type: string
          description: >-
            How the maker was decided: from the number's manufacturer code, from
            its length, or from the maker the organization recorded.
          enum:
            - iso_code
            - length
            - recorded
    RegistrySubjectType:
      type: string
      description: Whether the flag is about a person or an animal.
      enum:
        - person
        - animal
    RegistryFlagType:
      type: string
      enum:
        - animal_abuse
        - neglect
        - fraud
        - abandonment
        - falsified_application
        - other
    RegistrySeverity:
      type: string
      enum:
        - advisory
        - moderate
        - severe
    RegistryFlagStatus:
      type: string
      description: >-
        pending_review until two other organizations corroborate it (then
        active), or two dispute it (then disputed). Nothing sets revoked at
        present.
      enum:
        - pending_review
        - active
        - disputed
        - revoked
  responses:
    Problem:
      description: What is wrong, in one sentence you can show to a person.
      content:
        application/json:
          schema:
            type: object
            required:
              - error
            properties:
              error:
                type: string
          example:
            error: house_trained must be 1, 0 or null (not assessed)
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: An API key from Settings, API keys. It starts with rc_live_.

````