Skip to main content
The Animals API gives you access to every animal record in your organization, from intake through outcome. Each record is the single source of truth for that animal across all workspaces — the same record your team edits in the app, your public website reads from, and your medical and placement history is filed against. You can list animals with filters, fetch a single record in full, create new intake records, and update fields as an animal moves through your workflow.
The status field must exactly match a status configured in your organization’s Settings → Animal Statuses. Statuses are case-sensitive and organization-specific. Sending an unrecognized value returns a 422 error. Retrieve your configured statuses from the settings before writing automation that sets status values.

List Animals

Retrieve a paginated list of animal records. Apply filters to narrow results by status, species, or location.

Query Parameters

integer
default:"1"
Page number to retrieve.
integer
default:"25"
Number of records per page. Maximum 100.
string
Filter by animal status (e.g. Available, In Foster). Must match a status configured in Settings → Animal Statuses. Can be specified multiple times to filter by several statuses.
string
Filter by species (e.g. dog, cat, rabbit). Case-insensitive.
string
Filter by the ID of a location or housing unit.
boolean
When true, returns only animals published to your public website. When false, returns only non-public animals.
string
Filter by care state. One of in_care, on_hold, completed, or not_in_care.

Example Request

Response


Retrieve an Animal

Fetch the full record for a single animal by ID.

Path Parameters

string
required
The unique ID of the animal record.

Example Request

Response Fields

string
The unique identifier for this animal record.
string
The working name used internally by your team.
string
The name shown on your public website and cage cards. Defaults to name if not set separately.
string
The animal’s species (e.g. dog, cat, rabbit).
string
Primary breed. May be null if not recorded.
string
The current status, matching one of your configured Animal Statuses.
string
The care state derived from the current status. One of in_care, on_hold, completed, or not_in_care. Drives dashboard counts and public visibility logic.
string
The ID of the location or housing unit where this animal currently resides. May be null.
string (date)
The date the animal arrived, in YYYY-MM-DD format.
string (date)
The animal’s date of birth in YYYY-MM-DD format. May be null if unknown.
string
One of male, female, or unknown.
number
Most recent recorded weight in pounds. May be null if not yet recorded.
string
The animal’s microchip number. May be null.
boolean
Whether this animal is currently published to your public website.
string
Free-text notes visible to your team. May be null.
string (ISO 8601)
Timestamp when the record was created.
string (ISO 8601)
Timestamp when the record was last updated.

Create an Animal

Add a new animal record, typically at intake.

Request Body

string
required
The animal’s internal working name.
string
The name to display publicly. Defaults to name if omitted.
string
required
The animal’s species (e.g. dog, cat).
string
Primary breed description.
string
required
A status that matches one of your configured Animal Statuses.
string
The ID of the location where the animal is housed.
string
required
Intake date in YYYY-MM-DD format.
string
Date of birth in YYYY-MM-DD format. Omit if unknown.
string
One of male, female, or unknown.
number
Weight in pounds at intake.
string
Microchip number, if already known at intake.
boolean
default:"false"
Whether to immediately publish this animal to your public website.
string
Internal notes about the animal.

Example Request

Response

Returns 201 Created with the full animal record as the response body.

Update an Animal

Update one or more fields on an existing animal record. Only fields included in the request body are changed — omitted fields are left as-is.

Path Parameters

string
required
The unique ID of the animal record to update.

Request Body

Include only the fields you want to change. All fields are optional.
string
Updated internal name.
string
Updated public-facing name.
string
New status. Must match a configured Animal Status.
string
Updated location or housing unit ID.
string
Date of birth in YYYY-MM-DD format.
number
Updated weight in pounds.
string
Updated microchip number.
boolean
Set to true to publish to your public website; false to unpublish.
string
Updated internal notes. Passing an empty string clears the notes field.

Example Request

Response

Returns 200 OK with the full updated animal record as the response body.