Start Here

Things you should know

Terms of Service (TOS)

Your use of the RescueGroups.org API means you agree to the API Terms of Service.

The API is RESTful

The RescueGroups.org API follows the Representational State Transfer (REST) and JSON API specifications closely. All request bodies and responses use the JSON data format.

Although a REST API can be implemented in different ways, following REST principals is important so that you (the developer) can understand the basics of how to communicate with the API. This documentation provides additional descriptions of that communication.

We recommend that you do some background reading before continuing if you're not familiar with REST APIs.

Methods and response codes are purposeful

The HTTP methods you use are important; please be sure to follow the allowed methods for the endpoint. Use GET to retrieve data. Remember there is a difference between POST, PUT, and PATCH. Be extra careful with DELETE because we may not be able to restore your data if you accidentally delete it.

Test first!

Please do your developement in a test environment. Some API calls can change data, and well... accidents happen! The RescueGroups.org staff may not be able to recover your data.

RescueGroups.org provides a Test API you may be able to use for your development efforts.

We also recommend that you use a REST client like Postman to mock-up your requests before developing your application.

How to get started

To communicate with the API you need to have an API key or an account (and user credentials). The example Quick Start uses an API Key to access public data.

Request a public API key

If you'd like to access public data from our API you will need an API key. You can request one from our website: https://rescuegroups.org/services/adoptable-pet-data-api/.

API URL

The base of the API on this server is:

https://dev1-api.rescuegroups.org/v5

All requests to this server should begin with this base path.

You may have access to multiple API environments including Production, and Test, each with their own API URL. Be sure to use the correct environment to prevent data loss!

The URL above is the Development environment!

Use a REST client on your desktop first

There are many freely available REST clients you can use to create and validate your API requests. One that we can recommend is Postman. Here's a quick overview of how you can get started (your mileage may vary):

  • Download and install Postman
  • Add a request and set the method (try using a GET request first)
  • Enter the URL which includes the API URL and endpoint path
  • Add the Authorization header with your API key
  • Click Send!

For most REST clients, including Postman, you can make life easier by using Environments. An Environment in Postman can store the API base URL and API key/token as variables, making it easier to manage each individual request. In this documentation you may see environment variables shown with curly brases, like {{url}}.

Frequently asked questions

Do I need an account with RescueGroups.org to use the public API?

No, you only need a public API key.

How do I get a public API key?

Request an API key from RescueGroups.org here: https://rescuegroups.org/services/adoptable-pet-data-api/

I am allowed to have more than one API key?

Generally, you should have only one API key. However, We ask that you use a different API key for each website or service you create. This is because we show the list of API keys to our users, and we want to link to each website, service, and application individually.

Why does the API return a different entity type in the response than the type I provided in my request?

In the cases where your request has changed related data, the API will return what we believe is the highest data that changed.

For example, if you PUT a new picture for an animal, we return the animal (instead of the new picture) because the animal's attributes have changed. We don't want the app to know when to retrieve the animal again.

The response will contain any include so that the related data that was created is always returned with the parent entity.

The endpoint reference will state what entity type will be returned for each endpoint.

Rate limits

Rate limits are important to protect the RescueGroups.org system from misuse.

Please develop your code in such a way that avoid flooding our system, or unecessary requests to the API. For example, cache frequently used data like breeds, species, colors, etc. Although we do not advertise specific rate limits, the API will return 429 Too Many Requests if we see an abnormal number of requests from your key.

Please see the Terms of Service for more information about rate limits.

Getting help

Please join us on our Google Groups created specifically for discussion of the RescueGroups.org API. Your questions and improvement ideas are welcome: https://groups.google.com/a/rescuegroups.org/forum/#!forum/apidev

Requests

Headers

You must provide a Content-Type header with every request. The only content type supported is application/vnd.api+json.

You must provide an Authorization header with every request (except /tokens). Depending on the endpoint you must use either an API key or Bearer token Authorization (but never both).

See the Authorization Use Cases below for more information

Name Example
Content type * Content-Type: application/vnd.api+json
Authorization (API key) ** Authorization: {{apikey}}
Authorization (token) ** Authorization: Bearer {{token}}
* Required
** Either API key or token Authorization header is required on all endpoints except /tokens.

Authorization

API key (access public data)

The most common authorization is to use a public API key. If you are building a public website you most likely will be using the API key authorization. This should be used to search public adoptable pet data and organizations.

Token-based authorization (access private data)

If you are making a request on behalf of a user with a RescueGroups.org login you should use the token authorization mechanism. You would use the user-provided credentials to generate a token.

When you make a valid request using a token, the response will include an updated Authorization header. You must update your local cache with the new token. See the tokens endpoint for more information.

Use cases

Here are some examples of when you would use API key or token-based authorization:

Use case Authorization
Requests for public adoptable pet and organization information API key
Rescue/shelter building a public website for showing adoptable pets API key
Add or update an organization's private data Token (created using staff credentials)

Methods

Below are the HTTP Methods that are supported by the API. Each endpoint will show which methods are supported.

Method Description
get The GET method is used to retrieve objects from the database. A GET request uses only the query string. You can use views to filter by commonly used criteria.
post The POST method is used to create an entity. You can also post to the search endpoint to perform an advanced search.
put The PUT method is used to update an entire entity, or create a relationship when you know the entity Id.
patch The PATCH method is used to update the attributes of an entity. Only the provided attributes will be updated on the entity.
delete The DELETE method is used to delete (or mark for deletion) an entity.

Query parameters

Query parameters are provided after the question mark in your request like this:

/public/animals/search/available/dogs/?limit=10&page=2&sort=+distance&fields[animals]=name&include=fosters

Here is the list of valid query parameters:

Parameter Description
page The page of results to return (starting with 1).
limit

The number of data objects to return in the results. The maximum limit for most endpoints is 250, except for static data with limited records, like breeds, colors, patterns, which have no maximum limit.

Zero (0) can be used if you want meta data only, and no records to be returned.

A value that is non-numeric, negative, or higher than the max limit for the endpoint will result in a 400 error response.

sort

A comma separated list of fields to sort the result objects. You can provide multiple sort attributes, each with either ascending (+) or descending (-). Ascending (+) is assumed if the order is not provided, and you must encode + as %2B. It may be easier to leave off the + for ascending sort. Each sort value must be the full field name, like -animals.name.

Also available on some endpoints is random sorting. The endpoint will note if it supports random sorting.

fields[]

A comma separated list of fields to provide in the response. If fields[] is not provided, the default fields will be returned.

Multiple fields[] parameters can be provided like this: fields[animals]=name,fields[fosters]=email

You can find the valid fields in the Schema for each endpoint.

include[]

A comma separated list of includes to provide in the response. If include[] is not provided, the default includes will be returned.

You can find the valid include values in the endpoint reference.

Paging

If you don't provide page or limit in the request URL, the response will be the first page of 25 results. The meta provided in the response will include valuable data that can be used to build paging into your app. See Responses below.

Views

A view is a predefined search that can be specified on the URL. A view is basically a shortcut for using advanced searching with filters. All views can be replicated as filters.

The available views for each endpoint are included in the documentation for that endpoint. Both views and filters control what data objects are included in the response, but cannot be used together.

Views can be used by adding one or more view names to the search endpoint URL.

Advanced searches

Filters

Filters are used in a POST body payload, to the a search endpoint. Both filters and views control what data objects are included in the response, and can be used together.

A filter is made up of three parts:

  • Field name
  • Operation
  • Criteria

Field name

The fieldName is the name of any attribute for the endpoint.

Operation

The operation is the manner in which you want the filter evaluated.

Operation Description
equal The value is the same as the criteria (also used as an "in" operation when the criteria is an array)
notequal The value is different than the criteria
lessthan The value is less than (numerically or alphabetically)
lessthanorequal The value is less or equal to the criteria
greaterthan The value is more than (numerically or alphabetically)
greaterthanorequal The value is more than or equal to the criteria
contains The value contains the provided string (e.g., smithe contains smith)
notcontains The value does not contain the provided string
blank Does not have a value (criteria value is ignored)
notblank Has a value (criteria value is ignored)

Criteria

The criteria is the value to use for the evaluation.

There are also these special criteria that will be replaced by the API during processing:

Parameter Description
rg:contactID The user's current contactId is used
rg:today Today's date (or datetime) is used (Eastern time)

Filter processing

Filter processing is an advanced feature, and is not required. If you do not include the filterProcessing property in your searches, all filters will be evaluated with "and" (i.e, "1 AND 2 AND 3"). The first filter is 1, the second is 2, and so on.

Below is an example of a search for adoptable cats and dogs. The filter processing specifies that the results should be both Status of Available, and Species either Cat or Dog.

Radius searches

Distance radius searches are available on specific endpoints. They can accomplished by providing a filterRadius object in the POST data. The distance can be miles or kilometers. The results meta will automatically include distance attribute which is the distance from the provided postal code in the same units as your request (miles or kilometers).

In order to make a valid geodistance search you must provide both a location, and distance. Location can be provided as lat and lon, coordinates (lat,lon), or postalcode. Distance can be provided as either miles or kilometers.

Provide ONE of:
lat and lon lat and lon as separate values in the data
coordinates Latitude and longitude together as comma separated (lat,lon)
postalcode A valid US or Canadian postal code (called zip code in the US). We will convert the postal code into latitude and longitude, using the "center", which is not as accurate as the two alternative methods above.

and ONE of:

miles If you provide a miles value, the returned distance attribute will be in miles.
kilometers If you provide a kilometers value, the returned distance attribute will be in kilometers.

Including related data

You may request related entities to be included in the response. For example, with a request for animals, you might want to retrieve breed information at the same time.

To do so, simply add an include paramter with a comma separated list of the includes. The documentation for each endpoint lists the available includes.

If you request an invalid include you will receive a 400 error.

Responses

Response codes

The API will return meaningful response codes that should be used to understand how the API handled (or couldn't handle) your request.

In the case of client errors (4XX), the response code along with the response body may provide useful information in resolving the issue with the request.

All unhandled errors on the API side (5XX) are recorded in our system and investigated. However, if you need to contact us regarding the error, please refer to the transactionId from the API response meta so we can identify your request and the resulting error.

Here's a list of the server response codes and when the API returns them. Also see errors below.

Code Title
200 OK The request was processed successfully. The response body will contain the entity that was updated. Please note that the entity type in the response may differ from what was provided in the request. The endpoint reference will state what entity type will be returned for each endpoint.
201 Created The entity was created successfully. The response body will contain the entity that was changed or created. Please note that the entity type in the response may differ from what was provided in the request. The endpoint reference will state what entity type will be returned for each endpoint. The Location header will contain a link to the created entity.
204 No Content The request was processed successfully but no entity is being returned. This response code is used most often after a DELETE request.
400 Bad Request Your request was not valid and was not processed. The request should be changed before being sent again. For example, the endpoint (URL) doesn't exist. The response body may include additional troubleshooting information.
401 Unauthorized The provided authorization was not sufficient for the request. You may have provided an API key when a token was required, or the provided token does not have sufficient permissions to perform the request.
404 Not Found Your request was processed successfully, but we didn't find the entity you were looking for. The response body will contain an empty data object.
405 Method Not Allowed The method is not allowed on the endpoint you requested. For example, you used post, when only get is allowed.
412 Precondition Failed COMING SOON
429 Too Many Requests We've received too many requests from your system. Please fix your application to reduce the number of requests you send to a reasonable number.
500 Internal Server Error An unexpected and uncaught error occured on the RescueGroups.org server. You may open a support ticket concerning the issue so it can be resolved. Please include the transactionId from the response meta to help us troubleshoot the problem.

Headers

Name Description
Authorization (token) An updated Authorization token is returned if the request was valid and used token authorization.
Location A Location header is provided with all POST requests where a data record was created. The URL points to the data object that was created.

Body

The response body will have one or more of three objects: meta, data, and included.

{
    "meta": {},
    "data": {},
    "included": {}
}

Data

The resulting data is contained in the data object. The data will include type and id as well as a link to self.

Fields are included in the attributes object. The relationships object will contain any related keys.

{
  "data": [{
    "type": "animals",
    "id": "8013243",
    "attributes": {
      "name": "Curly",
      "ageGroup": "Young",
      "birthDate": "2016-03-30T00:00:00Z"
    },
    "relationships": {
      "breeds": {
        "data": [{
            "type": "breeds",
            "id": "35"
          },
          {
            "type": "breeds",
            "id": "62"
          }
        ]
      }
    }
  }]
}

Relationships

Any relationships with other objects (ie., fields with a type of "key") will be included in a relationships object. Each object will include the data type and id.

You can use the type and id to find the object if you requested the object as an include. You can also use the related link to request the full object from the API.

"relationships": {
  "breeds": {
     "data": {
       "type": "breeds",
       "id": 78
     }
  },
  "statuses": {
    "data": [
      {
        "type": "statuses",
        "id": "3"
      }
    ]
  }
}

Includes

Any requested includes are provided in the included object. The object also includes a link to self.

"included": [
    {
        "type": "breeds",
        "id": "78",
        "attributes": {
            "name": "Akita"
        }
    }
}

Metadata

Some responses may include a meta object, including a count of the total number of data objects that matched your search (regardless of the limit that was used).

Additionally, each individual data object may include a meta object.

For example, a request to the animals endpoint will return the total number of animals that matched the search (not the number that is included in the results) and an array of the species that are included in the results.

{
  "meta": {
    "count": 34,
    "countReturned": 25,
    "pageReturned": 1,
    "limit": 25,
    "pages": 2,
    "transactionId": "OxXNFbigaFHi"
  }
}
Attribute Description
count The total number of entities that matched query. This value can be used to control the paging of entities in your client application.
countReturned The number of entities included in the response.
pageReturned The page number of the results that were provided in the response.
limit The results limit that was used for your request.
pages The total number of pages using the current limit.
transactionId The identifier for your request. Provide this information if you request help from RescueGroups.org for this specific request.

Error messages

Client errors 4XX

The server may return an error object in the response body. We try to return an error that will be helpful in troubleshooting the issue. For example, we might provide a pointer to the POST data, or a parameter value for a query parameter that was not valid.

The error detail is generally formatted for end-user consumtion.

Example: Error for bad filter field name on POST search

{
  "errors": [
    {
      "status": 400,
      "source": {
        "pointer": "/data/filters/2/fieldName/species.name"
      },
      "title": "Invalid field",
      "detail": "species.name is not a valid filter field"
    }
  ]
}

API system errors 5XX

A 500 error is an error on the RescueGroups.org API side. The error response will include a transactionId which you can provide to RescueGroups.org support to assist us in investigating the system issue.

Interaction Patterns

Although we try to follow best practices and established norms for REST APIs, we thought it would be helpful to describe how to interact with API under certain circumstances, including how to know what data to send to the API, and how the API will respond.

Authorization

The only endpoint that does not require an Authorization header is tokens.

Methods

Be careful to use the correct method when sending requests. For example, there's a big difference between POST and PUT. See the accepted methods and descriptions below.

Views

We've created views to make it easier to complete common searches and avoid having to use advanced filters. The API will combine the filters if you specify multiple views.

You can use views on a POST request and provide additional filters in the POST body. For example, when requesting available animals within a radius, you can use the available view and include the distance criteria in the POST body.

Fields and Includes

You can specify the fields and includes that you want returned with the results. However, if you don't provide that information with your request, the API will return a default set of fields and includes, as described with the endpoints and schemas.

Distance/radius searches

Some endpoints (like animals and organizations) support filtering results by the radius of a postal code. The center of the postal code is used for the distance calculation. You must provide the postal code and either miles or kilometers.

Response Data

When adding or updating data, the API will return the highest level object that has changed. For example, if you add a picture to an animal, the animal object (with all pictures) will be returned. You can use the fields and include parameters on the URL to specify what data you want returned.

Updating relationships

Some relationships are 1-to-1 and should be updated using a single object (not an array). Some relationships are 1-to-many and support an array of objects. Be sure to review the schema to determine if the API is expecting an object or an array of objects.

Endpoint reference

All of the RescueGroups.org API endpoints are listed below for your reference.

Petlists

Petlists

Max limit 250

Endpoints

get /public/petlists/{petlists.keystring}

Get a petlist configuration

put /public/petlists/{petlists.keystring}

Get a petlist configuration


Schema

petlists

Includes

(none)

Views

(none)

Animal breeds

Animal breeds

Max limit 10000

Endpoints

get /public/animals/breeds/

Description coming soon!

get /public/animals/breeds/{breeds.id}

Description coming soon!

get /public/animals/breeds/search/dogs/

Description coming soon!

get /public/animals/breeds/search/{viewName}/

Description coming soon!

post /public/animals/breeds/search/{viewName}/

Description coming soon!

get /public/animals/species/{species.id}/breeds/

Description coming soon!


Schema

breeds

Includes

Include name Description
species

Views

View name Filters
alpacas

1) species.plural equals alpacas

birds

1) species.plural equals birds

cats

1) species.plural equals cats

chickens

1) species.plural equals chickens

chinchillas

1) species.plural equals chinchillas

cows

1) species.plural equals cows

degus

1) species.plural equals degus

dogs

1) species.plural equals dogs

donkeys

1) species.plural equals donkeys

ducks

1) species.plural equals ducks

ferrets

1) species.plural equals ferrets

fish

1) species.plural equals fish

frogs

1) species.plural equals frogs

geckos

1) species.plural equals geckos

geese

1) species.plural equals geese

gerbils

1) species.plural equals gerbils

goats

1) species.plural equals goats

groundhogs

1) species.plural equals groundhogs

guineapigs

1) species.plural equals guineapigs

hamsters

1) species.plural equals hamsters

hedgehogs

1) species.plural equals hedgehogs

hermitcrabs

1) species.plural equals hermitcrabs

horses

1) species.plural equals horses

iguanas

1) species.plural equals iguanas

lizards

1) species.plural equals lizards

llama

1) species.plural equals llama

mice

1) species.plural equals mice

otters

1) species.plural equals otters

pigs

1) species.plural equals pigs

ponies

1) species.plural equals ponies

prairiedogs

1) species.plural equals prairiedogs

rabbits

1) species.plural equals rabbits

rats

1) species.plural equals rats

sheep

1) species.plural equals sheep

skunks

1) species.plural equals skunks

snakes

1) species.plural equals snakes

sugargliders

1) species.plural equals sugargliders

tarantulas

1) species.plural equals tarantulas

tortoises

1) species.plural equals tortoises

turkeys

1) species.plural equals turkeys

turtles

1) species.plural equals turtles


Animal patterns

Animal patterns

Max limit 250

Endpoints

get /public/animals/patterns/

Description coming soon!

get /public/animals/patterns/{patterns.id}

Description coming soon!

get /public/animals/patterns/search/{viewName}/

Description coming soon!

post /public/animals/patterns/search/{viewName}/

Description coming soon!

get /public/animals/species/{species.id}/patterns/

Description coming soon!


Schema

patterns

Includes

(none)

Views

View name Filters
alpacas

1) species.plural equals alpacas

birds

1) species.plural equals birds

cats

1) species.plural equals cats

chickens

1) species.plural equals chickens

chinchillas

1) species.plural equals chinchillas

cows

1) species.plural equals cows

degus

1) species.plural equals degus

dogs

1) species.plural equals dogs

donkeys

1) species.plural equals donkeys

ducks

1) species.plural equals ducks

ferrets

1) species.plural equals ferrets

fish

1) species.plural equals fish

frogs

1) species.plural equals frogs

geckos

1) species.plural equals geckos

geese

1) species.plural equals geese

gerbils

1) species.plural equals gerbils

goats

1) species.plural equals goats

groundhogs

1) species.plural equals groundhogs

guineapigs

1) species.plural equals guineapigs

hamsters

1) species.plural equals hamsters

hedgehogs

1) species.plural equals hedgehogs

hermitcrabs

1) species.plural equals hermitcrabs

horses

1) species.plural equals horses

iguanas

1) species.plural equals iguanas

lizards

1) species.plural equals lizards

llama

1) species.plural equals llama

mice

1) species.plural equals mice

otters

1) species.plural equals otters

pigs

1) species.plural equals pigs

ponies

1) species.plural equals ponies

prairiedogs

1) species.plural equals prairiedogs

rabbits

1) species.plural equals rabbits

rats

1) species.plural equals rats

sheep

1) species.plural equals sheep

skunks

1) species.plural equals skunks

snakes

1) species.plural equals snakes

sugargliders

1) species.plural equals sugargliders

tarantulas

1) species.plural equals tarantulas

tortoises

1) species.plural equals tortoises

turkeys

1) species.plural equals turkeys

turtles

1) species.plural equals turtles


Animal species

Animal species

Max limit 250

Endpoints

get /public/animals/species/

Description coming soon!

get /public/animals/species/{species.id}

Description coming soon!


Schema

species

Includes

Include name Description
breeds
colors
patterns

Views

(none)

Animal species

Animal species

Max limit 250

Endpoints

get /public/orgs/{orgs.id}/animals/species/

Returns only the species that an organization has available for adoption.


Schema

species

Includes

Include name Description
breeds
colors
patterns

Views

(none)

Animal statuses

Animal statuses

Max limit 250

Endpoints

get /public/animals/statuses/

Description coming soon!

get /public/animals/statuses/{statuses.id}

Description coming soon!


Schema

statuses

Includes

(none)

Views

(none)

Animal colors

Animal colors

Max limit 10000

Endpoints

get /public/animals/colors/

Description coming soon!

get /public/animals/colors/{colors.id}

Description coming soon!

get /public/animals/colors/search/{viewName}/

Description coming soon!

post /public/animals/colors/search/{viewName}/

Description coming soon!

get /public/animals/species/{species.id}/colors/

Description coming soon!


Schema

colors

Includes

Include name Description
species

Views

View name Filters
alpacas

1) species.plural equals alpacas

birds

1) species.plural equals birds

cats

1) species.plural equals cats

chickens

1) species.plural equals chickens

chinchillas

1) species.plural equals chinchillas

cows

1) species.plural equals cows

degus

1) species.plural equals degus

dogs

1) species.plural equals dogs

donkeys

1) species.plural equals donkeys

ducks

1) species.plural equals ducks

ferrets

1) species.plural equals ferrets

fish

1) species.plural equals fish

frogs

1) species.plural equals frogs

geckos

1) species.plural equals geckos

geese

1) species.plural equals geese

gerbils

1) species.plural equals gerbils

goats

1) species.plural equals goats

groundhogs

1) species.plural equals groundhogs

guineapigs

1) species.plural equals guineapigs

hamsters

1) species.plural equals hamsters

hedgehogs

1) species.plural equals hedgehogs

hermitcrabs

1) species.plural equals hermitcrabs

horses

1) species.plural equals horses

iguanas

1) species.plural equals iguanas

lizards

1) species.plural equals lizards

llama

1) species.plural equals llama

mice

1) species.plural equals mice

otters

1) species.plural equals otters

pigs

1) species.plural equals pigs

ponies

1) species.plural equals ponies

prairiedogs

1) species.plural equals prairiedogs

rabbits

1) species.plural equals rabbits

rats

1) species.plural equals rats

sheep

1) species.plural equals sheep

skunks

1) species.plural equals skunks

snakes

1) species.plural equals snakes

sugargliders

1) species.plural equals sugargliders

tarantulas

1) species.plural equals tarantulas

tortoises

1) species.plural equals tortoises

turkeys

1) species.plural equals turkeys

turtles

1) species.plural equals turtles


Animals

Public animal data posted by rescues and shelters.

Geodistance Supported
Max limit 250

Endpoints

get /public/animals/

Description coming soon!

get /public/animals/search/{viewName}/

Description coming soon!

post /public/animals/search/{viewName}/

Description coming soon!

get /public/animals/{animals.id}

Description coming soon!

get /public/orgs/{orgs.id}/animals/

Description coming soon!

get /public/orgs/{orgs.id}/animals/search/{viewName}/

Description coming soon!

post /public/orgs/{orgs.id}/animals/search/{viewName}/

Description coming soon!

get /public/orgs/{orgs.id}/animals/{animals.id}

Description coming soon!


Schema

animals

Includes

Include name Description
breeds
colors
patterns
species
statuses
fosters
locations
orgs
pictures
videos
videourls

Views

View name Filters
available

1) statuses.name equals Available

adopted

1) statuses.name equals Adopted

haspic

1) animals.pictureCount greaterthan 0

isspecialneeds

1) animals.isSpecialNeeds equals true

isneedingfoster

1) animals.isNeedingFoster equals true

urgent

1) animals.priority equals 0

iscourtesylisting

1) animals.isCourtesyListing equals true

attending

1) animals.eventsAttendingCount greaterthan 0

alpacas

1) species.plural equals alpacas

birds

1) species.plural equals birds

cats

1) species.plural equals cats

chickens

1) species.plural equals chickens

chinchillas

1) species.plural equals chinchillas

cows

1) species.plural equals cows

degus

1) species.plural equals degus

dogs

1) species.plural equals dogs

donkeys

1) species.plural equals donkeys

ducks

1) species.plural equals ducks

ferrets

1) species.plural equals ferrets

fish

1) species.plural equals fish

frogs

1) species.plural equals frogs

geckos

1) species.plural equals geckos

geese

1) species.plural equals geese

gerbils

1) species.plural equals gerbils

goats

1) species.plural equals goats

groundhogs

1) species.plural equals groundhogs

guineapigs

1) species.plural equals guineapigs

hamsters

1) species.plural equals hamsters

hedgehogs

1) species.plural equals hedgehogs

hermitcrabs

1) species.plural equals hermitcrabs

horses

1) species.plural equals horses

iguanas

1) species.plural equals iguanas

lizards

1) species.plural equals lizards

llama

1) species.plural equals llama

mice

1) species.plural equals mice

otters

1) species.plural equals otters

pigs

1) species.plural equals pigs

ponies

1) species.plural equals ponies

prairiedogs

1) species.plural equals prairiedogs

rabbits

1) species.plural equals rabbits

rats

1) species.plural equals rats

sheep

1) species.plural equals sheep

skunks

1) species.plural equals skunks

snakes

1) species.plural equals snakes

sugargliders

1) species.plural equals sugargliders

tarantulas

1) species.plural equals tarantulas

tortoises

1) species.plural equals tortoises

turkeys

1) species.plural equals turkeys

turtles

1) species.plural equals turtles


Organizations

Rescues and shelters that have accounts with RescueGroups.org.

Geodistance Supported
Max limit 250

Endpoints

get /public/orgs/

Description coming soon!

get /public/orgs/{orgs.id}

Description coming soon!

get /public/orgs/search/{viewName}/

Description coming soon!

post /public/orgs/search/{viewName}/

Description coming soon!


Schema

orgs

Includes

(none)

Views

View name Filters
rescue

1) orgs.type equals Rescue

shelter

1) orgs.type equals Shelters


Schema reference

Animals

Show schema

Attribute name Type Description
activityLevel string Activity Level
Values: Not Active, Slightly Active, Moderately Active, Highly Active
adoptedDate date Adopted Date
adoptionFeeString string Adoption fee
adultSexesOk string Good with adults
Values: All, Men Only, Women Only
ageGroup string General age
Values: Baby, Young Adult, Senior
ageString string Age (years/months)
availableDate date Available Date
birthDate date Birth date
breedPrimary string Primary Breed
breedPrimaryId int Primary Breed Id
breedSecondary string Secondary Breed
breedSecondaryId int Secondary Breed Id
breedString string Breed
coatLength string Coat Length
Values: Short, Medium, Long
colorDetails string Color details
createdDate date Created date
descriptionHtml string Description
descriptionText string Description (no HTML)
distinguishingMarks string Distinguishing marks
earType string Ear type
Values: Cropped, Droopy, Erect, Long, Missing, Notched, Rose, Semi-erect, Tipped, Natural/Uncropped
energyLevel string Energy level
Values: Low, Moderate, High
exerciseNeeds string Exercise needs
Values: Not required, Low, Moderate, High
eyeColor string Eye color
Values: Black, Blue, Blue-brown, Brown, Copper, Gold, Gray, Green, Hazelnut, Mixed, Pink, Yellow
fenceNeeds string Requires home with fence
Values: Not required, Any type, 3 foot, 6 foot
foundDate date Found date
foundPostalcode postalcode Found zip/postal code
groomingNeeds string Grooming needs
Values: Not Required, Low, Moderate, High
housetrainedReasonNot string Reason not housetrained
indoorOutdoor string Indoor/Outdoor
Values: Indoor Only, Indoor/Outdoor, Outdoor Only
isAdoptionPending boolean Adoption pending
isAltered boolean Altered
isBirthDateExact boolean Exact Birth date
isBreedMixed boolean Mixed breed
isCatsOk boolean OK with cats
isCourtesyListing boolean Courtesy Listing
isCurrentVaccinations boolean Current on vaccations
isDeclawed boolean Declawed
isDogsOk boolean OK with dogs
isFarmAnimalsOk boolean Farm Animals OK
isFound boolean Found
isHousetrained boolean Housetrained
isKidsOk boolean Good with kids
isMicrochipped boolean Microchipped
isNeedingFoster boolean Needs a Foster
isSeniorsOk boolean Seniors OK
isSpecialNeeds boolean Has special needs
isSponsorable boolean Allow sponsorship
isYardRequired boolean Requires a yard
killDate string Euthanasia date
killReason string Euthanasia reason
name string Name
newPeopleReaction string Reaction to new people
Values: Cautious, Friendly, Protective, Aggressive
obedienceTraining string Obedience training
Values: Needs training, Has basic training, well trained
ownerExperience string Owner experience needed
Values: None, Species, Breed
pictureCount int Number of pictures
pictureThumbnailUrl string Thumbnail URL
priority string
qualities string Qualities
rescueId string Rescue ID
searchString string Search
sex string Sex
Values: Male, Female
sheddingLevel string Shedding amount
Values: None, Moderate, High
sizeCurrent string Current size
sizeGroup string Size Potential
Values: Small, Medium, Large, X-Large
sizePotential string Potential size
sizeUOM string Size unit of measurement
Values: Centimeters, Hands, Inches, Kilograms, Ounces, Pounds
slug string Slug
specialNeedsDetails string Special needs description
sponsors string Sponsors
sponsorshipDetails string Sponsorship details
sponsorshipMinimum string Sponsorship minimum
summary string Summary
tailType string Tail type
Values: Bare, Bob, Curled, Docked, Kinked, Long, Missing, Short
trackerimageUrl string Tracker image Url
updatedDate date Last updated
url string Webpage
videoCount int Number of videos
videoUrlCount int Number of Video URLs
vocalLevel string Likes to vocalize
Values: Quiet, Some, Lots

Animal Pictures

Show schema

Attribute name Type Description
created date The datetime the picture was created.
large string The URL to a large sized variant of the image.
order int The picture order, where 1 is the first picture the organization wants to show to the public.
original string The URL to the original image.
small string The URL to a small sized variant (thumbnail) of the image.
updated date The datetime the picture was last updated.

Breeds

Show schema

Attribute name Type Description
name string Name

Colors

Show schema

Attribute name Type Description
name string Name

Contacts

Show schema

Attribute name Type Description
email string Email
firstname string First name
fullname string Full name
lastname string Last name
name string Name
phoneCell phone Cell Phone
phoneHome phone Home Phone
salutation string Salutation

Locations

Show schema

Attribute name Type Description
city string City
citystate string City, state
coordinates string Coordinates
country string Country
lat decimal Latitude
lon decimal Longitude
name string Name
phone phone Phone
phoneExt string Phone extension
postalcode postalcode Postal Code
postalcodePlus4 string Postal Code Plus 4
state province State
street string Street
url url Url

Organizations

Show schema

Attribute name Type Description
about string About
adoptionProcess string Adoption Process
adoptionUrl url Adoption Url
city string City
citystate string City, State
coordinates string Coordinates
country string Country
distance decimal Distance from postal code
donationUrl url Donation Url
email email Email
facebookUrl url Facebook Url
fax phone Fax
isCommonapplicationAccepted boolean Common Adoption Application Accepted
lat decimal Latitude
lon decimal Longitude
meetPets string Meet Pets
name string Name
phone phone Phone
postalcode postalcode Postal Code
postalcodePlus4 string Postal Code Plus 4
serveAreas string Areas Served
services string Services
sponsorshipUrl url Sponsorship Url
state province State
street string Street
type enum Type
url url Url

Patterns

Show schema

Attribute name Type Description
name string Name

Species

Show schema

Attribute name Type Description
plural string Plural word
singular string Singular
youngPlural string Plural young word
youngSingular string Singular young word

Statuses

Show schema

Attribute name Type Description
description string Description
name string Name

Change Log

January 25, 2020

Minor but significant updates to the beta. The improvements include:

  • Geolocation now accepts postalcode, coordinates, or lat and lon in order to calculate distance for animals and organizations. Refer to the Endpoint reference for more information about how to perform a distance query for animals or organizations.

October 3, 2019

We're releasing a major update to the beta of our v5 API. The major changes include:

  • All attributes will be returned if no fields are specified.
  • If an attribute or relationship doesn't exist (ie., is null), that element will no longer be returned in the result. This will result in smaller results transfer sizes and easier to read and understand result data.
  • Compression (gzip) has been enabled on the API server.
  • All entity meta properties are now returned as entity attributes. Meta is only provided at the top-level of the response data.
  • The top-level meta data now includes more information about the request and results, including a transactionId that can be used when requesting assistance from RescueGroups.org.
  • We're simplifying the API by removing endpoints that weren't being used.
  • Documentation: Endpoints are now grouped so that all endpoints of the same type (eg., animals) are together.