RescueGroups.org Animals API

Search and retrieve adoptable animal records.

Operations 3

GET /public/animals List Public Animals #
GET /public/animals/{animal_id} Get Public Animal #
POST /public/animals/search/{view_name} Search Public Animals #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/rescuegroups-org-animals-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

rescuegroups-org-animals-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: RescueGroups.org Animals API
  version: 5.0.0
  description: The RescueGroups.org REST API v5 provides access to adoptable pet data including animals, organizations, breeds, species, colors, and patterns. It supports advanced search with geodistance filtering, pagination, and relationship inclusion. API key authorization is used for public data access; bearer token authorization is used for private/write operations.
  contact:
    name: RescueGroups.org Developer Community
    url: https://groups.google.com/a/rescuegroups.org/g/apidev
  license:
    name: RescueGroups.org Terms
    url: https://rescuegroups.org/
servers:
- url: https://api.rescuegroups.org/v5
  description: Production API
- url: https://dev1-api.rescuegroups.org/v5
  description: Development/Test API
security:
- apiKeyAuth: []
tags:
- name: Animals
  description: Search and retrieve adoptable animal records.
paths:
  /public/animals:
    get:
      tags:
      - Animals
      summary: List Public Animals
      description: Retrieve a paginated list of public adoptable animals.
      operationId: listPublicAnimals
      parameters:
      - $ref: '#/components/parameters/pageParam'
      - $ref: '#/components/parameters/limitParam'
      - $ref: '#/components/parameters/sortParam'
      - $ref: '#/components/parameters/fieldsParam'
      - $ref: '#/components/parameters/includeParam'
      responses:
        '200':
          description: A paginated list of animals.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/AnimalListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /public/animals/{animal_id}:
    get:
      tags:
      - Animals
      summary: Get Public Animal
      description: Retrieve a single public adoptable animal by ID.
      operationId: getPublicAnimal
      parameters:
      - name: animal_id
        in: path
        required: true
        schema:
          type: string
        description: The unique animal identifier.
      - $ref: '#/components/parameters/includeParam'
      responses:
        '200':
          description: A single animal record.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/AnimalSingleResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /public/animals/search/{view_name}:
    post:
      tags:
      - Animals
      summary: Search Public Animals
      description: 'Search public adoptable animals using filters, views, and geodistance. Predefined view names include: available, adopted, haspic, cats, dogs, rabbits, and species-specific variants.'
      operationId: searchPublicAnimals
      parameters:
      - name: view_name
        in: path
        required: true
        schema:
          type: string
        description: Predefined view name (e.g., available, adopted, haspic, cats, dogs).
      - $ref: '#/components/parameters/pageParam'
      - $ref: '#/components/parameters/limitParam'
      - $ref: '#/components/parameters/sortParam'
      - $ref: '#/components/parameters/includeParam'
      requestBody:
        content:
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/SearchRequest'
      responses:
        '200':
          description: Matching animals.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/AnimalListResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              status:
                type: string
              title:
                type: string
              detail:
                type: string
    SearchRequest:
      type: object
      properties:
        data:
          type: object
          properties:
            filters:
              type: array
              items:
                $ref: '#/components/schemas/SearchFilter'
            filterProcessing:
              type: string
              description: Boolean expression for filter combination.
            geodistance:
              $ref: '#/components/schemas/GeoDistance'
    SearchFilter:
      type: object
      required:
      - fieldName
      - operation
      properties:
        fieldName:
          type: string
          description: Field name to filter on.
        operation:
          type: string
          enum:
          - equal
          - notequal
          - lessthan
          - greaterthan
          - contains
          - notcontains
          - blank
          - notblank
          - startswith
          - endswith
          description: Filter operation.
        criteria:
          type: string
          description: Filter value or special criteria (e.g., rg:contactID, rg:today).
    AnimalSingleResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Animal'
        included:
          type: array
          items:
            type: object
    AnimalAttributes:
      type: object
      properties:
        name:
          type: string
          description: Animal name.
        birthDate:
          type: string
          format: date
          description: Animal birth date.
        sex:
          type: string
          enum:
          - Male
          - Female
          - Unknown
          description: Animal sex.
        ageGroup:
          type: string
          enum:
          - Baby
          - Young
          - Adult
          - Senior
          description: Age group category.
        sizeGroup:
          type: string
          enum:
          - Small
          - Medium
          - Large
          - Extra Large
          description: Size group category.
        isAdoptionPending:
          type: boolean
          description: Whether adoption is pending.
        isAltered:
          type: boolean
          description: Whether the animal is spayed/neutered.
        pictureCount:
          type: integer
          description: Number of pictures available.
        videoCount:
          type: integer
          description: Number of videos available.
        adoptedDate:
          type: string
          format: date
          description: Date the animal was adopted.
        specialNeedsDetails:
          type: string
          description: Description of any special needs.
        descriptionText:
          type: string
          description: Plain text description of the animal.
        locationCitystate:
          type: string
          description: City and state where the animal is located.
        locationState:
          type: string
          description: State where the animal is located.
        locationDistance:
          type: number
          description: Distance from search location.
        rescueId:
          type: string
          description: External rescue ID.
        url:
          type: string
          format: uri
          description: URL of the animal profile page.
    ResponseMeta:
      type: object
      properties:
        count:
          type: integer
          description: Total number of matching records.
        pageCount:
          type: integer
          description: Total number of pages.
        transactionId:
          type: string
          description: Unique transaction identifier for support requests.
    Animal:
      type: object
      properties:
        id:
          type: string
          description: Unique animal identifier.
        type:
          type: string
          enum:
          - animals
        attributes:
          $ref: '#/components/schemas/AnimalAttributes'
        relationships:
          type: object
          properties:
            breeds:
              $ref: '#/components/schemas/RelationshipData'
            colors:
              $ref: '#/components/schemas/RelationshipData'
            patterns:
              $ref: '#/components/schemas/RelationshipData'
            species:
              $ref: '#/components/schemas/RelationshipData'
            orgs:
              $ref: '#/components/schemas/RelationshipData'
            pictures:
              $ref: '#/components/schemas/RelationshipData'
    AnimalListResponse:
      type: object
      properties:
        meta:
          $ref: '#/components/schemas/ResponseMeta'
        data:
          type: array
          items:
            $ref: '#/components/schemas/Animal'
        included:
          type: array
          items:
            type: object
    RelationshipData:
      type: object
      properties:
        data:
          oneOf:
          - type: object
            properties:
              type:
                type: string
              id:
                type: string
          - type: array
            items:
              type: object
              properties:
                type:
                  type: string
                id:
                  type: string
    GeoDistance:
      type: object
      properties:
        postalcode:
          type: string
          description: Postal code for distance search.
        lat:
          type: number
          description: Latitude for coordinate-based search.
        lon:
          type: number
          description: Longitude for coordinate-based search.
        miles:
          type: integer
          description: Search radius in miles.
        kilometers:
          type: integer
          description: Search radius in kilometers.
  responses:
    NotFound:
      description: Resource not found.
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: Invalid request parameters.
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Missing or invalid authorization.
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    TooManyRequests:
      description: Rate limit exceeded.
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  parameters:
    pageParam:
      name: page
      in: query
      schema:
        type: integer
        minimum: 1
        default: 1
      description: Page number for paginated results.
    includeParam:
      name: include[]
      in: query
      schema:
        type: array
        items:
          type: string
      description: Related entities to include in the response.
    sortParam:
      name: sort
      in: query
      schema:
        type: string
      description: Sort field with optional +/- prefix for direction.
    limitParam:
      name: limit
      in: query
      schema:
        type: integer
        minimum: 1
        maximum: 250
        default: 25
      description: Number of records per page (max 250).
    fieldsParam:
      name: fields[]
      in: query
      schema:
        type: array
        items:
          type: string
      description: Specific fields to return.
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: API key authorization for public data access.
    bearerAuth:
      type: http
      scheme: bearer
      description: Bearer token for private/authenticated data access.