Best Friends Animal Society Scraper avatar

Best Friends Animal Society Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Best Friends Animal Society Scraper

Best Friends Animal Society Scraper

Scrape adoptable pets from Best Friends Animal Society (bestfriends.org) - the largest US animal-welfare organization. Browse adoptable dogs and cats by location, search by name, or fetch individual pet profiles with full metadata, photos, and adoption links.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Scrape Best Friends Animal Society (bestfriends.org) — the largest animal-welfare organization in the United States. Browse adoptable dogs and cats at any of the five Best Friends adoption centers, search adoptable pets by name across all locations, or fetch individual pet profiles with full metadata, photo galleries, and adoption links. Pure HTTP (SSR Drupal site). No auth, no API key, no proxy required.

What this actor does

  • Four modes: byLocation, search, byIds, byUrls
  • Five adoption centers: Salt Lake City, Los Angeles, New York City, Houston, Northwest Arkansas
  • Filters: species (Dog / Cat), age (Baby / Young / Adult / Senior), sex, size (Small / Medium / Large / X-Large)
  • Sorting: A–Z, newest arrivals, longest stay, featured
  • Full profiles: name, species, breeds, birthdate, color, size, status, description, photo gallery, shelter adoption link
  • Typed error records for unresolvable IDs / URLs (recordType error)
  • Empty fields are omitted

Data Source

This actor is a replacement for the slot originally occupied by the RescueGroups (rescuegroups.org) scraper.

  • Original slot: RescueGroups (rescuegroups.org). Its API requires a registration API key — requests without a key return 401 Unauthorized. That violates the free-plan constraint (no actor may require user-supplied credentials), so the slot was replaced.
  • Replacement: Best Friends Animal Society (bestfriends.org) — the largest US animal-welfare organization, in the same pet-adoption category.
  • Data tier: the site is a server-side-rendered Drupal 11 application; listing pages (/<location>/adopt/adoptable-pets) and animal profile pages (/<location>/adopt/<id>/<slug>) are plain SSR HTML that resolves from datacenter IPs.
  • Proxy behavior: none required; works with no proxy. proxyConfiguration is intentionally not required. Requests retry with exponential backoff and rotate user agents on 403/429.
  • Images are served from available-animals.bestfriends.org (S3/CloudFront) and resolve with HTTP 200 from a clean public client — no Referer header, cookies, or signing required.

Output per animal

  • animalId — Best Friends animal ID (numeric, from the profile URL)
  • name — pet name
  • species — Dog / Cat / Bird / etc. (from the profile's "looks like" label)
  • primaryBreed, secondaryBreed — breed(s), e.g. Terrier, Pit Bull + Mix
  • age — Baby / Young / Adult / Senior
  • birthDate — estimated birthdate (ISO YYYY-MM-DD, when published)
  • sex — Male / Female
  • color — coat color
  • size — Small / Medium / Large / X-Large (when published)
  • location — adoption center slug (e.g. salt-lake-city)
  • status — e.g. "In foster", "I'm at a local event; come say hello."
  • description — full adoption description text
  • imageUrl, imageUrls[] — profile photo + gallery (up to 10)
  • adoptUrl — shelter adoption-survey link
  • sourceUrl — canonical profile URL
  • recordType: "animal", scrapedAt

When Fetch full profile details is off, records contain card-level fields only: animalId, name, location, status, imageUrl, primaryBreed, secondaryBreed, age, sex, sourceUrl.

Error records

Unresolvable IDs / URLs emit a typed record with recordType: "error", the failed sourceUrl (or animalId), and an error message. Normal records never contain those fields.

Input

FieldTypeDefaultDescription
modestringbyLocationbyLocation / search / byIds / byUrls
locationstringsalt-lake-cityAdoption center (mode=byLocation, mode=byIds)
searchQuerystringPet name or partial name (mode=search; also narrows mode=byLocation)
animalIdsarrayNumeric animal IDs, e.g. 214192932 (mode=byIds)
startUrlsarrayProfile URLs, e.g. https://bestfriends.org/salt-lake-city/adopt/214157435/amaranth (mode=byUrls)
speciesstringAllDog / Cat
agestringAllBaby / Young / Adult / Senior
sexstringAllFemale / Male
sizestringAllSmall / Medium / Large / X-Large
sortBystringtitletitle / newest / longestStay / featured
enrichDetailsbooleantrueFetch each pet's full profile page
maxItemsint50Hard cap (1–1000)

Example: senior dogs in Los Angeles, longest stay first

{
"mode": "byLocation",
"location": "los-angeles",
"species": "Dog",
"age": "Senior",
"sortBy": "longestStay",
"maxItems": 20
}

Example: name search across all locations

{
"mode": "search",
"searchQuery": "amaranth",
"species": "Cat",
"maxItems": 10
}

Example: lookup by animal ID

{
"mode": "byIds",
"location": "salt-lake-city",
"animalIds": ["214192932", "214157435"]
}

Example: fetch from profile URLs

{
"mode": "byUrls",
"startUrls": [
{ "url": "https://bestfriends.org/salt-lake-city/adopt/214157435/amaranth" },
{ "url": "https://bestfriends.org/houston/adopt/213734892/scampi" }
]
}

Use cases

  • Adoption agencies & rescues — monitor adoptable inventory at Best Friends centers for transfer opportunities
  • Pet marketplaces — syndicate live adoptable listings into adoption feeds
  • Animal-welfare research — analyze breed / age / stay-duration patterns across the largest US shelter network
  • Nonprofit dashboards — daily snapshots of available pets per location for advocacy reporting
  • Content teams — pull names, photos, and bios for adoption-promotion campaigns

FAQ

What is the data source? Best Friends Animal Society's public website (bestfriends.org), a server-side-rendered Drupal site. No API key or registration is required.

Why is this actor replacing "RescueGroups"? The RescueGroups API requires a registered API key — without it every request returns 401 Unauthorized. Best Friends publishes the same category of data (adoptable pets) with zero credentials required.

How fresh is the data? Live. Every run fetches the current pages directly; the actor never caches listings.

How many locations are covered? Five Best Friends adoption centers: Salt Lake City (UT), Los Angeles (CA), New York City (NY), Houston (TX), and Northwest Arkansas. Best Friends Sanctuary (Kanab, UT) animals can be fetched by URL or ID from startUrls, but the sanctuary has no filterable listing page.

What do the filter dropdowns mean? species, age, sex, and size map 1:1 to Best Friends' own listing filters. sortBy maps to the site's sort options (A–Z, newest arrivals, longest stay, featured).

Why are some fields sometimes missing (e.g. size, birthdate)? Best Friends only publishes certain fields (size, birthdate, description) on some profiles. Missing fields are omitted from the record entirely — no null placeholders.

Why don't I see species when profile enrichment is off? Listing cards do not carry the species marker; species is only available from the profile page. Enable Fetch full profile details to include it.

Are the photo URLs accessible? Yes. Images are served from an S3/CloudFront CDN and return HTTP 200 from any public client with no special headers.

Is this affiliated with Best Friends Animal Society? No. This is an independent third-party actor that reads publicly available data from their website.

What happens if the site rate-limits me? The actor retries with exponential backoff and rotates user agents on 403/429 responses; persistent failures surface as typed error records instead of crashing.